四次挥手
来源:4-4 TCP传输可靠性-排序、丢弃、重发
慕斯卡6699853
2018-10-24
老师,在第四次挥手时,如果客户端发送一个FIN命令,他就断开输出流了,那后面当客户端收到服务端的两个回送命令时,客户端怎么可以又向服务端发送一个ACK命令
写回答
2回答
-
Qiujuer
2018-10-25
理论来说 FIN 命令发送后的一段时间内是处于等待的时间,在某些语言或者机器上会有超时机制,会等待一段时间;
在等待时间内如果客户端有回送一个命令代表收到,但是没有回送客户端关闭的话,代表此时还有数据没传输完成;此时服务器,会尝试更改其等待操作的时间,一般会改成2小时,但不是绝对。
如果客户端一句也没有回送命令,此时也会进入等待阶段,但是等待时间不会太长,一般在几分钟内得到相应。
如果没有得到响应则会尝试进行关闭操作;也有可能是抛出异常的操作。
这取决于具体的语言,与系统内部实现有所不同。
在某些极端情况下,可能在上述情况下都会出现无限等待的情况。此时就需要借助心跳包与当前客户端活跃性扫描的机制来进行强制关闭操作了。
222021-07-16 -
g29tony
2019-09-17
这个问题很刁钻 哈哈
00
相似问题