我很难找到记录在哪里的源端口应该是随机的并且在1024-65535范围内。
此文件记录在哪个RFC中?
编辑:
特权端口的第一个引用是在RFC2623中。
这似乎更多地取决于TCP / IP的实现,它是事实上的标准。
IANA正在分配端口号(RFC1700)
我很难找到记录在哪里的源端口应该是随机的并且在1024-65535范围内。
此文件记录在哪个RFC中?
编辑:
特权端口的第一个引用是在RFC2623中。
这似乎更多地取决于TCP / IP的实现,它是事实上的标准。
IANA正在分配端口号(RFC1700)
Answers:
您可能正在寻找RFC 6056-传输协议端口随机化建议(“最佳实践”)。
从技术上讲是没有要求的临时端口为> 1024的或随机的(你可以建立一个系统,总是发起从本地端口12,因为你喜欢12号的连接),它只是没有“正常”这样做(和一个可怕的想法一堆原因,其中一些在该RFC中进行了描述。
在RFC 6335中解释这一点:
动态端口范围(49152-65535)中的端口已专门留作本地和动态使用,不能通过IANA进行分配。应用程序软件可以简单地使用本地主机上可用的任何动态端口,而无需进行任何分配。另一方面,应用程序软件不得假定“动态端口”范围内的特定端口号始终始终可用于通信,因此该范围内的端口号不得用作服务标识符。
保留的端口:
用户端口范围(1024-49151)中的端口可通过IANA进行分配,并且在成功分配后可用作服务标识符。
也可以通过IANA分配“系统端口”范围(0-1023)中的端口。由于“系统端口”范围既是最小端口,也是分配最密集的端口,所以新分配的要求比“用户端口”范围的要求更为严格,并且仅在“ IETF审查”或“ IESG批准”过程RFC5226中被授予。
引言解释了这种困惑:
多年来,与传输控制协议(TCP)[RFC0793]和用户数据报协议(UDP)[RFC0768]一起使用的新服务名称和端口号值的分配不够
明确。
看来Windows XP没有遵循RFC6335,但是Solaris 10遵循了。
voretaq7所说的与此有关, 但出于学究,这是一项技术要求。过去,* nix中的守护程序/服务器运行在端口<1024(称为系统端口)上,因此为了避免冲突,源端口(用户端口)应大于1024(或更确切地说是1024-49151),但是并不总是这样。正如您所说,这种情况取决于实现方式。上面的所有链接提供了RFC的列表,但最具体的可能是 RFC5226,它描述了IANA的“专家审核”过程。