TCP三次握手与四次挥手

目录
  1. 1. 三次握手
  2. 2. 四次挥手
  3. 3. 参考

三次握手

1.第一次握手

客户端向服务端发送 SYN(Synchronize) 标记设为 1 的TCP包。

Seq(Sequence Number)为由操作系统生成的随机数。然后,客户端进入 SYN_SEND 状态,等待服务器的确认。

2.第二次握手

服务器收到客户端的 SYN 包,会发一个对 SYN 包的确认包(SYN/ACK)回去。

ACK(Acknowledgment Number) 为 x+1(Sequence Number+1),服务器端把 SYN+ACK 报文段发送给客户端,此时服务器进入 SYN_RECV 状态。

3.第三次握手

客户端收到 SYN/ACK 包后,发一个确认包(ACK),通知服务器端连接已建立。

三次握手演示:

1
2
3
4
三次握手    seq       ack
第一次 10000 0
第二次 20000 10000+1=10001
第三次 10001 20000+1=20001

四次挥手

1.第一次,客户端:『没有数据给你了』;
2.第二次:服务端:『收到,我也没有数据给你了』;
3.第三次:服务端:『请求关闭连接』;
4.第四次:客户端:『确认』;

服务端收到后关闭连接,客户端收不到回复了也关闭了连接。

参考

  1. 关于TCP协议,我想你应该懂了!
  2. TCP三次握手连接及seq和ack号的正确理解