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

时间:2014-11-06 05:48:27

标签: c performance sockets tcp sctp

我知道SO_REUSEADDR上已经有很多问题了。我仍然无法得到它的优势并且几乎没有问题。

1]当我们没有使用任何逗留选项时,与SO_REUSEADDR相关的危险是什么。

2]是否会出现丢包情况?

3]如果我在端口上得到了一些及时等待状态会发生什么?

4]在TIME_WAIT收到的数据包会怎样?

最后但非常重要

5]在任何时间点都有很多端口处于TIME_WAIT状态会对性能产生什么影响?

1 个答案:

答案 0 :(得分:0)

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

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