社区导航

 

搜索
查看: 4242|回复: 0

[分享] 16-TCP 协议(同时关闭)

[复制链接]

628

TA的帖子

18

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-7-12 09:45 | 显示全部楼层 |阅读模式

有同学会问,为什么不写同时打开?(同时打开指的是两端都是服务器,两端同时向对方建立连接请求)。

一方面,在我们实际生活中几乎遇不到;另一方面,很多操作系统实际都不能正确的支持同时打开,所以,这里就不写了,如果你对这个很感兴趣,请参考《TCP/IP 详解卷1:协议》的 18.8 小节。

1. 同时关闭

同时关闭,指的是已建立连接的两端同时发起主动关闭。

TCP 协议允许这种事情发生。见图 1.



1.png
图1 同时关闭

应用层的进程,同时发出关闭命令,两端均从 ESTABLISHED 变为了 FIN_WAIT1 状态,同时发送 FIN 段给对方。

然而发送完 FIN 段后,并未收到对端的 ack 而是对方发来的一个 FIN 段,于是直接进入 CLOSING 状态,CLOSING 状态是一个新状态,之前我们没有遇到过,只在 TCP 状态机图里看到过。现在你要记住,CLOSING 状态是由于同时关闭导致的。

又过了一会儿,TCP 接收到 ack 后,进入 TIME_WAIT 状态。

因为这种情况很罕见,实验也不好演示,所以大家只要知道就行了。

2. 总结
  • 同时关闭的含义
  • CLOSING 状态是怎么来的


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 1/7 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-5-30 10:23 , Processed in 0.084941 second(s), 21 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表