11-TCP 协议(状态机)

1. TCP 状态机

TCP 协议太复杂了,连接的建立与终止在前面都已经有所介绍,所有的规则都可以用一张 TCP 状态变迁图来表示。


这里写图片描述
图1 TCP 状态机

这张图非常经典,网络上都可以找得到,但是这里我用彩色线条重新画了一遍。接下来就是关于图 1 的几点说明:

  • 绿色粗实线和蓝色粗虚线表示正常的状态变迁。
  • 红色细实线表示异常变迁。
  • 顶层的 CLOSED 状态是一个假想的起点和终点,并不是一个真正的状态。

2. 连接建立和断开时序图

这里再次将三次握手和四次挥手的时序图画出来,同时标记上变迁的状态。如图 2 所示。


这里写图片描述
图2 TCP 正常连接建立和终止对应的状态

3. 状态机解读

图 1 中,可以看到有很多异常的状态变迁,其中有同时打开(两个服务器之间互相请求建立连接);还有同时关闭(进入 CLOSING 状态)。

并不是所有系统都能够实现同时打开的功能,比如早期的内核版本并不支持 LISTEN 到 SYN_SENT 的变迁。

SYN_RCVD 变迁到 LISTEN 状态是有条件的:只有正常的进入到 SYN_RCVD 状态时(即蓝色粗虚线,从 LISTEN 进入 SYN_RCVD),然后收到 RST 段,就又可以回到 LISTEN 状态。

4. 总结

  • 掌握 TCP 的 11 种状态
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值