我想请社区帮助我找到以下问题的答案:
- 根据RFC 6056操作系统应该为每个传输层连接伪随机地选择临时端口。对于 TCP(一种有状态协议),情况很清楚:临时端口被分配给 5 元组 {协议、源 IP、源端口、目标 IP、目标端口},直到连接断开。但是,UDP 是一种无状态协议,没有 UDP 连接。因此,对于我来说,不清楚在 UDP 的情况下如何分配临时端口。每个请求都不同吗?它是否随机分配给 5 元组并保留,直到在超时期间没有收到任何数据包?
- 各种操作系统(例如Windows,Unix,Linux)的实现是否存在差异?
答案1
根据https://www.cymru.com/jtk/misc/ephemeralports.html根据操作系统的不同,选择策略在随机和顺序之间变化。根据我的观察,每个请求的 UDP 源端口都不同。