我很难找到记录源端口应该是随机的并且在 1024-65535 范围内。
哪个 RFC 中有此记录?
编辑:
特权端口的第一个参考是在 RFC2623 中,
这似乎更多地取决于 TCP/IP 实现,并且它是一个事实上的标准。
IANA 正在分配端口号(RFC1700)
答案1
你可能正在寻找RFC 6056- 有关传输协议端口随机化的建议(“最佳当前实践”)。
从技术上来说,没有要求临时端口应>1024 或随机(您可以构建一个始终从端口 12 发起连接的系统,因为您喜欢数字 12),但这样做并不“正常”(并且由于多种原因,这是一个糟糕的想法,其中一些原因在该 RFC 中有所描述)。
答案2
这RFC 6335正在解释这一点:
动态端口范围 (49152-65535) 中的端口专门留作本地和动态使用,不能通过 IANA 分配。应用软件可以简单地使用本地主机上可用的任何动态端口,而无需进行任何分配。另一方面,应用软件不得假设动态端口范围内的特定端口号始终可用于通信,因此不得将该范围内的端口号用作服务标识符。
保留端口:
用户端口范围 (1024-49151) 内的端口可通过 IANA 分配,并且成功分配后可用作服务标识符。
系统端口范围 (0-1023) 内的端口也可通过 IANA 进行分配。由于系统端口范围是最小且分配最密集的,因此新分配的要求比用户端口范围的要求更严格,并且只能根据“IETF 审查”或“IESG 批准”程序授予RFC5226。
介绍部分解释了这一混淆:
多年来,对于传输控制协议 (TCP) [RFC0793] 和用户数据报协议 (UDP) [RFC0768] 的新服务名称和端口号值的分配一直缺乏
明确的指导。
看起来 Windows XP 没有遵循 RFC6335,但 Solaris 10 遵循。