Tcp的 十中状态

2018-01-09  本文已影响0人  yeathMe
image

tcp第十一种状态:

CLOSING:这种状态较特殊,属于一种较罕见的状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。

当客户端一方调用了close之后关闭了单方连接,此时客户端状态变为fin_wait_1,如果此时客户端socket调用send发送数据,底层操作系统根据当前tcp状态 判断得知 客户端已经关闭了发送数据的功能,所以此时程序就会出错。

上一篇 下一篇

猜你喜欢

热点阅读