16-TCP 协议(同时关闭)

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

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

1. 同时关闭

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

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


这里写图片描述
图1 同时关闭

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

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

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

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

2. 总结

  • 同时关闭的含义
  • CLOSING 状态是怎么来的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值