哪里有文档指出 TCP 和 UDP 源端口应超过 1024 且随机?

哪里有文档指出 TCP 和 UDP 源端口应超过 1024 且随机?

我很难找到记录源端口应该是随机的并且在 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 遵循。

答案3

voretaq7 也说过 但要吹毛求疵,这是有技术要求的。历史上,*nix 中的守护进程/服务器在小于 1024 的端口上运行(称为系统端口),因此为了避免冲突,源端口(用户端口)大于 1024(或准确地说是 1024 - 49151)。然而,正如您所说,情况并非总是如此,这取决于实现方式。总而言之,上面的链接提供了 RFC 列表,但可能最具体的是 RFC5226描述了IANA的“专家审核”流程。

相关内容