TCP协议——三次握手四次挥手以及为什么要三次、四次

一、TCP报文格式:

(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效, Ack=Seq+1。

(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:

(A)URG:紧急指针(urgent pointer)有效。

(B)ACK:确认序号有效。

(C)PSH:接收方应该尽快将这个报文交给应用层。

(D)RST:重置连接。

(E)SYN:发起一个新连接。

(F)FIN:释放一个连接。

二、三次握手
在这里插入图片描述
为什么要三次而不是两次呢,我的理解是这样的:

1、客户端想要连接服务器,对服务器发起请求
2、服务器同意连接,并发回同意的响应

如果这个时候,没有三次握手,服务器同意的响应在网络上丢包了,客户端会认为服务器拒绝了请求,而服务器则一直在等待客户端发来的数据。
在这里插入图片描述

三、四次挥手
在这里插入图片描述
TCP连接的释放一共需要四步,因此称为四次挥手,我们知道,TCP连接是双向的,因此在四次挥手中,前两次挥手用于断开一个方向的连接,后两次挥手用于断开另一方向的连接。

猜你喜欢

转载自blog.csdn.net/Maix_Y/article/details/85045395