前端需要掌握的网络知识(2)

在上一篇文章中我们介绍了网络的七层协议,详细介绍了应用层的协议,在这篇文章中我们将先看一看HTTP和HTTPS,然后会看一看其他层的协议。

一:HTTP和HTTPS

  • HTTP(全称:HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信规则的协议。

  • HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),简单讲是HTTP的安全版,HTTP下加入SSL层,HTTPS的安全基础是SSL。https协议需要到ca(Certification Authority-认证机构)申请证书。HTTPS协议的主要作用:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

    技术层面的区别:

a、HTTP发起的请求建立到服务器指定默认端口是80,HTTPS是443;

b、HTTP无需证书,HTTPS需要CA机构颁发的SSL证书;

c、HTTP工作于应用层,HTTPS工作于传输层。

d、http信息是明文传输,https则是具有安全性的ssl加密传输协议。

e、http的连接无状态(对同一个url请求没有上下文关系、每次的请求都是独立的、服务器中没有保存客户端的状态)。

HTTPS工作流程

扫描二维码关注公众号,回复: 3331274 查看本文章

a、浏览器访问https的网站;

b、服务器收到请求,准备证书(包含:算法、公钥、证书有效期);

c、服务器将证书发送到客户端;

d、客户端收到证书,验证(很复杂的过程),验证成功后客户端生成一个随机数,用服务端的公钥对这个随机数加密,然后用hash算法生成签名做成证书。;

e、客户端把自己生成的证书发给服务端,因为只有服务端有私钥,所以只能服务端来解密,这样就保证了即使其他人截获也没用。

f、服务端收到证书后,用私钥验签,并解密出来随机数。这个随机数就是后续网络传输数据使用的对称加密密钥了

g、后面的通信就全部用这个随机数加密传输。


二:传输层

传输层(又称主机到主机传输层)为应用层提供会话和数据报通信服务。传输层承担OSI传输层的职责。传输层的核心协议是TCP和UDP。TCP提供一对一的、面向连接的可靠通信服务。TCP建立连接,对发送的数据包进行排序和确认,并恢复在传输过程中丢失的数据包。与TCP不同,UDP提供一对一或一对多的、无连接的不可靠通信服务。

不论是TCP/IP还是在OSI参考模型中,任意相邻两层的下层为服务提供者,上层为服务调用者。下层为上层提供的服务可分为两类:面向连接服务和无连接服务。

1)面向连接的网络服务

面向连接的网络服务又称为虚电路(Virtual Circuit)服务,它具有网络连接建立、数据传输和网络连接释放三个阶段。是按顺序传输可靠的报文分组方式,适用于指定对象、长报文、会话型传输要求。

面向连接服务以电话系统为模式。要和某个人通话,首先拿起电话,拨号码,通话,然后挂断。同样在使用面向连接的服务时,用户首先要建立连接,使用连接,然后释放连接。连接本质上像个管道:发送者在管道的一端放入物体,接收者在另一端按同样的次序取出物体;其特点是收发的数据不仅顺序一致,而且内容也相同。

2)无连接的网络服务

无连接网络服务的两实体之间的通信不需要事先建立好一个连接。无连接网络服务有3种类型:数据报(Datagram)、确认交付(Confirmed Delivery)与请求回答(Request reply)。

无连接服务以邮政系统为模式。每个报文(信件)带有完整的目的地址,并且每一个报文都独立于其他报文,由系统选定的路线传递。在正常情况下,当两个报文发往同一目的地时,先发的先到。但是,也有可能先发的报文在途中延误了,后发的报文反而先收到;而这种情况在面向连接的服务中是绝对不可能发生的。

1.传输控制协议(TCP)

TCP全称是Transmission Control Protocol,中文名为传输控制协议,它可以提供可靠的、面向连接的网络数据传递服务。传输控制协议主要包含下列任务和功能:

确保IP数据报的成功传递。

对程序发送的大块数据进行分段和重组。

确保正确排序及按顺序传递分段的数据。

通过计算校验和,进行传输数据的完整性检查。

根据数据是否接收成功发送肯定消息。通过使用选择性确认,也对没有收到的数据发送否定确认。

为必须使用可靠的、基于会话的数据传输程序,如客户端/服务器数据库和电子邮件程序,提供首选传输方法。

1)TCP包的结构

TCP数据包头部总长最小为20字节,其结构如图所示。
这里写图片描述

TCP数据包头部结构

源端口:指定了发送端的端口。

目的端口:指定了接受端的端口号。

序列号:指明了段在即将传输的段序列中的位置。

确认号:规定成功收到段的序列号,确认序号包含发送确认的一端所期望收到的下一个序号。

TCP偏移量:指定了段头的长度。段头的长度取决于段头选项字段中设置的选项。

保留:指定了一个保留字段,以备将来使用。

标志:SYN(表示同步)、ACK(表示确认)、PSH(表示尽快地将数据送往接收进程)、RST(表示复位连接)、URG(表示紧急指针)、FIN(表示发送方完成数据发送)。

窗口:指定关于发送端能传输的下一段大小的指令。

校验和:校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性。

紧急:指明段中包含紧急信息,只有当URG标志置1时紧急指针才有效。

选项:指定了公认的段大小,时间戳,选项字段的末端,以及指定了选项字段的边界选项。

2)TCP工作原理

TCP的连接建立过程又称为TCP三次握手。首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;接收方主机在收到这个请求后向发送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立,如图所示。
这里写图片描述

一旦初始的三次握手完成,在发送和接收主机之间将按顺序发送和确认段。关闭连接之前,TCP使用类似的握手过程验证两个主机是否都完成发送和接收全部数据。TCP工作过程比较复杂,包括的内容如下。

TCP连接关闭:发送方主机和目的主机建立TCP连接并完成数据传输后,会发送一个将结束标记置1的数据包,以关闭这个TCP连接,并同时释放该连接占用的缓冲区空间。

TCP重置:TCP允许在传输的过程中突然中断连接。

TCP数据排序和确认:在传输的过程中使用序列号和确认号来跟踪数据的接收情况。

TCP重传:在TCP的传输过程中,如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方。

TCP延迟确认:TCP并不总是在接收到数据后立即对其进行确认,它允许主机在接收数据的同时发送自己的确认信息给对方。

TCP数据保护(校验和):TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。


2.用户数据报协议(UDP)

UDP全称是User Datagram Protocol,中文名为用户数据报协议。UDP 提供无连接的网络服务,该服务对消息中传输的数据提供不可靠的、最大努力传送。这意味着它不保证数据报的到达,也不保证所传送数据包的顺序是否正确。UDP数据包的头部结构如图所示。
这里写图片描述

UDP数据包头部结构

(1)源、目的端口:作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。

(2)用户数据包的长度:标明UDP头部和UDP数据的总长度字节。

(3)校验和:用来对UDP头部和UDP数据进行校验。

这里与TCP是不同的,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须有的。


说了这么多我们总结一下TCP和UDP吧:

看到前面的内容也许你会问:“既然UDP是一种不可靠的网络协议,那么还有什么使用价值或必要呢?”其实不然,在有些情况下UDP可能会变得非常有用。因为UDP具有TCP所望尘莫及的速度优势。虽然TCP中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大地降低了执行时间,使速度得到了保证。


了解了应用层和传输层协议,现在我们来看一看网络层的协议

IP协议

IP协议是将多个包交换网络连接起来,它在源地址和目的地址之间传送一种称之为数据包的东西,它还提供对数据大小的重新组装功能,以适应不同网络对包大小的要求。

IP不提供可靠的传输服务,它不提供端到端的或(路由)结点到(路由)结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。如果出错可以通过ICMP报告,ICMP在IP模块中实现。

功能:

其中包括两个部分:

(1)寻址与路由.

(a)用IP地址来标识Internet的主机:在每个IP数据报中,都会携带源IP地址和目标IP地址来标识该IP数据报的源和目的主机.IP数据报在传输过程中,每个中间节点(IP 网关)还需要为其选择从源主机到目的主机的合适的转发路径(即路由).IP协议可以根据路由选择协议提供的路由信息对IP数据报进行转发,直至抵达目的主机.

(b)IP地址和MAC地址的匹配,ARP协议.数据链路层使用MAC地址来发送数据帧,因此在实际发送IP报文时,还需要进行IP地址和MAC地址的匹配,由TCP/IP协议簇中的ARP(地址解析协议)完成.

(2)分段与重组.

(a) IP数据报通过不同类型的通信网络发送,IP数据报的大小会受到这些网络所规定的最大传输单元(MTU)的限制.

猜你喜欢

转载自blog.csdn.net/qq_40856225/article/details/82470074