https://laisky.notion.site/The-quantum-state-of-a-TCP-port-29b94af7bedf49beb958045c3c1dbc02
很有趣的关于 linux 上 TCP 本地端口自动分配的文章。
虽然理论上,TCP 连接只要求
这其中的逻辑错综复杂,以至于作者在文章标题中将其戏称为“量子态”。
结论:推荐使用
很有趣的关于 linux 上 TCP 本地端口自动分配的文章。
虽然理论上,TCP 连接只要求
(src_ip, src_port, dst_ip, dst_port)
的四元组不同,但实际情况复杂得多,即使使用了 SO_REUSEPORT
也不能保证本地端口一定能被复用,而且虽然 bind(2)
/connect(2)
都支持自动分配本地端口,但对应的却是不同的处理逻辑。这其中的逻辑错综复杂,以至于作者在文章标题中将其戏称为“量子态”。
结论:推荐使用
IP_BIND_ADDRESS_NO_PORT
& bind(2)
的方式绑定端口,可以最大化本地端口重用的概率。