谁首先在客户机-服务器连接中设置tcp FIN标志

谁首先在客户机-服务器连接中设置tcp FIN标志,tcp,client-server,Tcp,Client Server,谁应该首先设置TCP FIN标志。服务器完成发送数据,或客户端收到完整数据 这取决于应用层协议从 TCP连接通常是 使用特殊程序终止 每一方都独立关闭 这是链接的结束。它通常 从一个应用程序开始 处理发送到其TCP层的信令 不再需要该会话。 该设备将FIN消息发送到 告诉其他设备它想要 结束连接,即 承认。当客户做出响应时 设备准备好了,它也会发送一个FIN 这是公认的;等了一会儿 确认的时间段 收到后,会话将关闭 实际上,它通常应该是客户端,但没有理由必须是客户端。FIN在该端的应用程序请求关

谁应该首先设置TCP FIN标志。服务器完成发送数据,或客户端收到完整数据


这取决于应用层协议从

TCP连接通常是 使用特殊程序终止 每一方都独立关闭 这是链接的结束。它通常 从一个应用程序开始 处理发送到其TCP层的信令 不再需要该会话。 该设备将FIN消息发送到 告诉其他设备它想要 结束连接,即 承认。当客户做出响应时 设备准备好了,它也会发送一个FIN 这是公认的;等了一会儿 确认的时间段 收到后,会话将关闭


实际上,它通常应该是客户端,但没有理由必须是客户端。

FIN
在该端的应用程序请求关闭连接时发送。这也不必在从另一方收到
FIN
后立即发生-一方可以发送
FIN
,然后另一方在发送自己的
FIN
之前发送更多数据

一旦TCP连接建立起来,它就完全对称了——任何一方都不能区分为“服务器”或“客户端”。这意味着任何一方都可以发送第一个
FIN
。由于主机在发送
FIN
后无法在连接上发送更多数据,因此通常是首先知道自己没有更多数据要发送的那一方这样做


有一个很好的实际理由可以设计一个网络协议,使客户机是第一个关闭连接的客户机——“第一个关闭者”最终处于
TIME\u WAIT
状态,时间是最大段生存期的两倍,即几分钟。这会在这几分钟内占用少量资源,但如果这种情况发生在服务器端,服务器每秒处理数百个连接,那么这些
TIME\u WAIT
套接字将很快累积起来。最好将这一负担分配给客户。

更多关于时间的详细信息请参见此处:@caf请看他们说双方都有时间之苦_WAIT@entropy:不,没有。无论如何,您可以随时查阅包含TCP状态图的任何参考,以查看它是第一个进入
TIME\u WAIT
的closer。第二个闭合器通过
CLOSE\u WAIT
LAST\u ACK