开发者-导航 猿导航

TCP 连接,三次握手,四次挥手

发布时间:

TCP 标志位总结表 #

标志位 含义 常见场景
SYN 同步序列号 TCP 三次握手,连接建立
FIN 结束传输 TCP 四次挥手,连接关闭
ACK 确认 确认数据包,握手与挥手
PSH 推送数据 即时交付给应用层,实时传输
RST 重置连接 异常终止连接或拒绝请求
URG 紧急数据 处理带外数据(较少使用)

三次握手 #

A:192.168.0.18
B:192.168.0.109

第一次握手(A)-->(B);SYN=true:发起连接

192.168.0.18 --> 192.168.0.109
序列号: 1534555792
确认号: 0
标志位: SYN=true, ACK=false, FIN=false, RST=false, PSH=false, URG=false

第二次握手(B)-->(A);确认号:第一次序列号+1,SYN=true, ACK=true:确认同意连接

192.168.0.109 --> 192.168.0.18
序列号: 1523651839
确认号: 1534555793
标志位: SYN=true, ACK=true, FIN=false, RST=false, PSH=false, URG=false

第三次握手(A)-->(B);确认号:第二次序列号+1,ACK=true:确认连接

192.168.0.18 --> 192.168.0.109
序列号: 1534555793
确认号: 1523651840
标志位: SYN=false, ACK=true, FIN=false, RST=false, PSH=false, URG=false

四次挥手 #

任何一方(客户端或服务器)都可以发起关闭连接的请求

第一次挥手(B)-->(A);ACK=true, FIN=true

192.168.0.109 --> 192.168.0.18
序列号: 3597518325
确认号: 1577851197
标志位: SYN=false, ACK=true, FIN=true, RST=false, PSH=false, URG=false

第二次挥手(A)-->(B);ACK=true

192.168.0.18 --> 192.168.0.109
序列号: 1577851197
确认号: 3597518326
标志位: SYN=false, ACK=true, FIN=false, RST=false, PSH=false, URG=false

第三次挥手(A)-->(B);ACK=true, FIN=true

192.168.0.18 --> 192.168.0.109
序列号: 1577851197
确认号: 3597518326
标志位: SYN=false, ACK=true, FIN=true, RST=false, PSH=false, URG=false

第四次挥手(B)-->(A);ACK=true

192.168.0.109 --> 192.168.0.18
序列号: 3597518326
确认号: 1577851198
标志位: SYN=false, ACK=true, FIN=false, RST=false, PSH=false, URG=false

图示 #

三次握手 四次挥手
三次握手 四次挥手