TCP三次握手 四次挥手以及状态集转换

本文详细解析了TCP协议中的三次握手和四次挥手过程,包括每次握手和挥手的具体步骤、控制字段的作用以及状态集转换。深入理解这些机制对于网络编程和故障排查至关重要。

三次握手

  • 第一次握手:
    发送请求链接控制字段syn,请求建立连接 (客户端 ---- 服务端)
    根据数据包编号发送数据 seq=x
  • 第二次握手:
    发送确认控制字段ack和请求连接控制字段syn (服务端 ---- 客户端)
    根据数据包编号进行确认 ack=x+1
    根据数据包编号发送数据 seq=y
  • 第三次握手:
    发送确认控制字段ack (客户端 ---- 服务端)
    根据数据包编号进行确认 ack=y+1
    根据数据包编号发送数据 seq=x+1

在这里插入图片描述

控制字段

对网络通讯有控制管理作用 0-关闭 1-开启

  • syn:请求建立连接控制字段
  • fin :请求断开连接控制字段
  • ack:传输数据确认控制字段

序列号:传输数据编号,便于重组数据
确认号:确认下一次发送数据包编号

状态集转换(五种)

①closed ②listen ③syn_sent ④syn_rcvd ⑤established

客户端初始状态:closed
服务端初始状态:closed ----> listen

  • 第一次握手:发送syn信息 客户端 ---- 服务端
    客户端状态:closed ----> syn_sent
  • 第二次握手:发送syn ack信息 服务端 ---- 客户端
    服务端状态:listen ----> syn_rcvd
  • 第三次握手:发送ack信息 客户端 ---- 服务端
    客户端状态:syn_sent ----> established
    服务端状态:syn_rcvd ----> established

在这里插入图片描述

四次挥手

  • 第一次挥手
    发送请求断开控制字符fin和确认控制字段 (客户端 ---- 服务端)
  • 第二次挥手
    发送确认控制字段ack (服务端 — 客户端)
  • 第三次挥手
    发送请求断开控制字段fin和确认控制字段 (服务端 ---- 客户端)
  • 第四次挥手
    发送确认控制字段 (客户端 ---- 服务端)
    在这里插入图片描述在这里插入图片描述

状态集转换(六种)

①fin_wait1 ②clsoe_wait ③fin_wait2 ④last_ack ⑤time_wait ⑥closing
客户端初始状态:established
服务端初始状态:established

正常情况:

  • 第一次挥手: 发送fin ack信息 客户端 — 服务端
    客户端状态:established —> fin_wait1
  • 第二次挥手:发送ack信息 服务端 — 客户端
    服务端状态:established —> close_wait
    客户端状态:fin_wait1 —> fin_wait2
  • 第三次挥手:发送fin ack信息 服务端 — 客户端
    服务端状态:close_wait —> last_ack
  • 第四次挥手:发送ack信息 客户端 — 服务端
    客户端状态:fin_wait2 —> time_wait —> closed
    服务端状态:last_ack —> closed
    在这里插入图片描述

特殊情况:

  • 第一次挥手: 发送fin ack信息 客户端 — 服务端
    客户端状态:established —> fin_wait1
  • 第二次挥手:发送fin ack信息 服务端 — 客户端
    客户端状态:fin_wait1 —> closing
    服务端状态:close_wait —> last_ack
  • 第三次挥手:发送ack信息 客户端 — 服务端
    客户端状态:closing —> time_wait —> closed
    服务端状态:last_ack —> closed

在这里插入图片描述

为什么挥手是四次,握手是三次?

挥手时,需要有数据传输确认阶段

有没有可能时三次挥手

有可能,省略第二次
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值