c-使用已经处于TIME_WAIT状态的选项SO_REUSEADDR重用端口是个好主意吗



我知道关于SO_REUSEADDR已经有很多问题了。尽管如此,我还是无法理解它的缺点,也没有什么问题。

1] 当我们不使用任何延迟选项时,与SO_REUSEADDR相关的危险是什么。

2] 是否会出现数据包丢失的情况?

3] 如果我在端口上得到了一些处于时间等待状态的东西,会发生什么?

4] TIME_WAIT中接收到的数据包会发生什么情况?

最后但非常重要的

5] 在任何时间点使许多端口处于TIME_WAIT状态是否会对性能产生影响?

缺点是,您可能会收到用于早期连接而与新连接无关的数据,从而损坏通信会话。TIME_WAIT的全部目的是允许操作系统清除延迟数据。如果接收到针对处于TIME_WAIT状态的IP/端口的数据包,则丢弃该数据包。通过使用SO_REUSEADDR,您可以绕过那个安全陷阱。

如果您有许多端口处于TIME_WAIT状态,则可能会导致端口耗尽,从而在TIME_WAIT中的端口清除之前无法建立新连接。

相关内容

  • 没有找到相关文章

最新更新