gpt4 book ai didi

sockets - 什么时候需要 TCP 选项 SO_LINGER (0)?

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

我想我理解选项的正式含义。在我现在处理的一些遗留代码中,使用了该选项。客户提示 RST 作为从其一侧关闭连接时对 FIN 的响应。

我不确定我是否可以安全地删除它,因为我不明白什么时候应该使用它。

您能否举例说明何时需要该选项?

最佳答案

设置 SO_LINGER 的典型原因超时为零是为了避免大量连接坐在TIME_WAIT状态,占用服务器上的所有可用资源。

当一个 TCP 连接被干净地关闭时,发起关闭(“主动关闭”)的一端以位于 TIME_WAIT 中的连接结束。几分钟。因此,如果您的协议(protocol)是服务器启动连接关闭的协议(protocol),并且涉及大量短期连接,那么它可能容易受到此问题的影响。

不过,这不是一个好主意 - TIME_WAIT存在是有原因的(以确保来自旧连接的杂散数据包不会干扰新连接)。如果可能,最好将您的协议(protocol)重新设计为客户端启动连接关闭的协议(protocol)。

关于sockets - 什么时候需要 TCP 选项 SO_LINGER (0)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757289/

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