TCP通信握手&挥手

                                                                      TCP通信握手&挥手

参考博文:https://www.cnblogs.com/bj-mr-li/p/11106390.html

一、TCP报文结构

报文解析

1、序列号(4个字节)也就是大家经常看到的seq

2、确认号(4个字节)也就是大家经常看到的小写的ack

3、TCP首部固定20个字节 + TCP数据部分

4、标记位: 

   (A)URG:紧急指针(urgent pointer)有效。
   (B)ACK:确认序号有效。
   (C)PSH:接收方应该尽快将这个报文交给应用层。
   (D)RST:重置连接。
   (E)SYN:发起一个新连接。
   (F)FIN:释放一个连接。

 

二、三次握手报文交互

1、客户端发起TCP连接(第一次握手),TCP报文SYN=1

2、服务端收到TCP报文(第二次握手),返回ACK=1,SYN=1

3、客户端发起确认报文(第三次握手),通信连接建立

TCP通信握手&挥手_第1张图片

三、四次挥手

1、客户端发起连接终止(第一次挥手),客户端进入终止等待1状态

2、服务端接收到终止报文,服务端通知应用进程,回包确认接收到终止报文(第二次挥手),服务端状态进入关闭等待状态

3、客户端接收到报文,客户端进入终止等待2状态

4、此时服务端如果仍然有数据需要传输,此时并未中断连接,仍然可以做数据传输

5、服务端发送终止报文(三次挥手),服务端进入最后确认状态

6、客户端端接收到第报文,发送确认报文(第四次挥手),状态变更为等待关闭状态,在2MSL时间后关闭

7、服务端接收到确认报文关闭连接状态

TCP通信握手&挥手_第2张图片

 

 

你可能感兴趣的:(TCP/IP协议栈)