fin/ack终止序列的tcp计时器值

fin/ack终止序列的tcp计时器值,tcp,timer,Tcp,Timer,我有一个tcp客户端向tcp服务器发送HTTP POST请求。一旦建立连接,数据将从服务器传输到客户端。最后,服务器向客户端发送[FIN,ACK]。客户端发送一个ACK。37秒后,客户机发送[FIN,ACK],但客户机没有从服务器获得ACK,因此客户机继续在指数计时器上重新发送[FIN,ACK]。问题:是否允许客户端以37秒的延迟发送[FIN,ACK]?在这种情况下有没有标准的计时器值?在这种情况下,客户端的预期行为和服务器的预期行为是什么?服务器发送FIN和客户端发送FIN之间的时间没有限制。

我有一个tcp客户端向tcp服务器发送HTTP POST请求。一旦建立连接,数据将从服务器传输到客户端。最后,服务器向客户端发送[FIN,ACK]。客户端发送一个ACK。37秒后,客户机发送[FIN,ACK],但客户机没有从服务器获得ACK,因此客户机继续在指数计时器上重新发送[FIN,ACK]。问题:是否允许客户端以37秒的延迟发送[FIN,ACK]?在这种情况下有没有标准的计时器值?在这种情况下,客户端的预期行为和服务器的预期行为是什么?

服务器发送
FIN
和客户端发送
FIN
之间的时间没有限制。在TCP中,连接的两个方向基本上是独立的,并且连接可以在任意长度的时间内保持这种“半开放”状态

服务器没有理由不为客户端的FIN/ACK发送ACK。如果它由于某种原因破坏了TCB(可能是服务器进程关闭了套接字和/或退出,因此无法从客户端接收进一步的数据),它应该发送RST而不是ACK,但接收FIN/ACK后应该返回一些内容。如果没有返回任何内容,则表示服务器的TCP实现中存在错误