Telegram Channel
https://laisky.notion.site/The-quantum-state-of-a-TCP-port-29b94af7bedf49beb958045c3c1dbc02

很有趣的关于 linux 上 TCP 本地端口自动分配的文章。

虽然理论上,TCP 连接只要求 (src_ip, src_port, dst_ip, dst_port) 的四元组不同,但实际情况复杂得多,即使使用了 SO_REUSEPORT 也不能保证本地端口一定能被复用,而且虽然 bind(2)/connect(2) 都支持自动分配本地端口,但对应的却是不同的处理逻辑。

这其中的逻辑错综复杂,以至于作者在文章标题中将其戏称为“量子态”。
结论:推荐使用 IP_BIND_ADDRESS_NO_PORT & bind(2) 的方式绑定端口,可以最大化本地端口重用的概率。 The quantum state of a TCP port | Notion
 
 
Telegram Channel