OSI 第四层是传输层(Transport layer),用于管理应用程序的连接,保证连接的有效建立,第四层有两个协议
快速但不可靠的 UDP 协议
UDP(user datagram protocol ) 协议是一种无连接的协议,它的目标是快速高效,并不在乎数据有没有被接收方收到,所以它是不可靠的,例如一些互联网广播和电视,重要的是实时发送这些信息,如果丢失一点信息,也并不会停止。
UDP数据报的格式:
源端口号:发送信息的应用程序的地址。
- 目标端口号:接收信息的应用程序的地址。
- Checksum:表示 “校验和”,与 OSI 第 2 层的以太网帧里的 CRC功能类似,也是用于错误校验,确保发送的数据和接收的数据是相同的。
可靠的 TCP 协议
TCP(transmission control protocol)协议非常可靠,发送的每一个数据包都会去确认对方是否收到,如果接收方没有确认,发送方将会重新发送此数据包。
在正式交谈前,TCP 协议会先建立通信,因此发送的前三个数据包都只是用于建立通信,这些都是空的数据包。
一、3次握手建立通信
①客户端 A 发送一个SYN(synchronous)标志,这是一个同步请求,表明客户端 A 想与服务端 B 建立通信。
②接收到请求的服务端 B 将会回复一个 ACK(acknowledgement)标志表示确认,同时还会向客户端 A 发送一个 SYN 标志,询问客户端 A 是否要与自己建立通信,因为 TCP 协议是双全工,连接是双向的,所以需要建立两个连接。
③客户端 A 再次发送 ACK 标志的数据包,接受来自服务端 B 的连接请求。
经过三次握手后,双向通信建立,应用程序之间就可以互传数据包了,在互传的过程中,所有的数据包都会加上 ACK 标志,表示确认收到了先前的数据包。
二、4次挥手终止通信
①客户端 A 发送一个FIN( finish )标志到服务端 B,请求关闭 A 到 B 方向的连接。
②服务端 B 收到 FIN 请求后,回复一个 ACK 标志表示确认关闭 A 到 B 的连接。
③服务端 B 请求关闭 B 到 A 方向的连接,发送一个 FIN 标志给客户端 A。
④客户端 A 回复一个 ACK 标志给服务端 B ,从 B 到 A 的连接被关闭。
在建立连接的三次握手中,第二步的 SYN 和 ACK 标志可以一起设置,是因为此时连接还未成功建立,还没有数据传输。
在断开连接的四次挥手中,第二步的 ACK 标志和第三步的 FIN标志不能合并到一起,是因为从 B 到 A 的方向还有数据传输,服务端 B 将在数据传输完毕后,再向客户端 A 发送 FIN 请求关闭连接。
上一篇:OSI模型第三层网络层中的ARP协议
下一篇:OSI模型第四层传输层中的NAT和端口转发