gpt4 book ai didi

android - 美国运营商(或与此相关的任何运营商)的空闲 TCP 超时

转载 作者:可可西里 更新时间:2023-11-01 02:49:46 25 4
gpt4 key购买 nike

据我了解,运营商会删除所有闲置几分钟的 tcp 连接。这就是为什么如果您想保持从客户端到后端的持久 tcp 连接,则必须双向发送 keep-alive。

我的问题是:保持活跃的时间间隔应该是多少?

最佳答案

需要明确的是,除了端点之外,没有人可以删除 TCP 连接。这是因为 IP 网络协议(protocol)是网络所见的全部,并且在设计上是无状态的。

然而,构成“终点”的可能不是您所期望的。运营商可以在两者之间放置透明代理或带 NAT 的路由器,此时它们确实需要保持状态才能正确转发数据。

NAT 是您最大的问题,因为它更常见,并且如果路由器由于暂时看不到流量而决定放弃连接状态,端点将永远不会知道,直到下一次尝试发送数据。

启用 SO_KEEPALIVE 的默认值为 2 小时。因此,一个表现良好的路由器应该至少保持状态那么长时间,但不要把农场押在它身上。

要回答您的具体问题...如果是我,我会用 15 分钟或更短的时间。

请注意,只有一方需要在工作时通过重新发送数据流的最后 1 个字节来发送保持 Activity 状态,就好像它在网络上丢失了一样。接收方丢弃它,因为它已经看到它,但会发送一个新的 ACK 作为回复,从而导致流量双向传输。

关于android - 美国运营商(或与此相关的任何运营商)的空闲 TCP 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573790/

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