gpt4 book ai didi

tcp - TCP 端点如何知道另一个端点是关闭了连接的两半还是只关闭了一个?

转载 作者:可可西里 更新时间:2023-11-01 02:33:00 28 4
gpt4 key购买 nike

考虑在两个 TCP 端点之间建立的 TCP 连接,其中一个调用:

  1. 关闭():此处,不允许进一步读取或写入。

  2. 关机(fd,SHUT_WR):这会将全双工连接转换为单工连接,其中调用 SHUT_WR 的端点仍然可以读取。

然而,在这两种情况下,FIN 数据包都通过线路发送到对等端点。那么问题来了,接收到FIN的TCP端点如何区分对方端点是使用了close()还是SHUT_WR,因为在后一种情况下应该还是可以发送数据吗?

最佳答案

基本上,答案是,它没有。或者,更确切地说,找出答案的唯一通用方法是尝试发送一些数据,看看您是否收到 ACK 或 RST响应。

当然,应用程序协议(protocol)可能会为连接的一侧提供某种机制,以提前指示它不再希望接收任何更多数据。但 TCP 本身不提供任何此类机制。

关于tcp - TCP 端点如何知道另一个端点是关闭了连接的两半还是只关闭了一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14293120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com