1. 简介 (Introduction)
多年来,用于传输控制协议 (TCP) [RFC0793] 和用户数据报协议 (UDP) [RFC0768] 的新服务名称和端口号值的分配一直没有明确的指南。新的传输协议已经添加——流控制传输协议 (SCTP) [RFC4960] 和数据报拥塞控制协议 (DCCP) [RFC4342]——以及像 DNS SRV 记录 [RFC2782] 这样的新机制也已经开发出来,每个都有单独的注册表和单独的指南。社区还认识到需要超越分配的额外程序,特别是修改、撤销和释放。
本文档中指定的程序简化的一个关键要素是为所有 IETF 传输协议建立相同的分配程序。本文档使 TCP 和 UDP 的 IANA 程序与 SCTP 和 DCCP 的程序保持一致,从而为所有传输协议(包括尚未定义的未来协议)的所有请求建立了请求者和 IANA 遵循的单一流程。
除了详细说明服务名称和端口号初始分配的 IANA 程序外,本文档还规定了直到现在一直以临时方式处理的分配后程序。这些程序包括:取消分配不再使用的端口号;将分配给一个不再使用的服务的端口号用于另一个服务;以及 IANA 可以单方面撤销先前端口号分配的程序。第 8 节讨论了这些程序的具体细节,以及请求者和 IANA 针对所有当前和未来传输协议的所有请求所遵循的流程。
IANA 是分配服务名称和端口号的权威机构。用于存储这些分配的注册表由 IANA 维护。对于 IETF 工作组开发的协议,IANA 现在还提供服务名称和端口号"早期分配" [RFC4020] 的方法,如第 8.1 节所述。
本文档通过淘汰 IANA 分配指南 [RFC2780] 的第 8 节和第 9.1 节来更新 IANA 的 UDP 和 TCP 端口号程序。(请注意,IANA 分配指南中与 IPv4 头中协议字段值相关的其他部分也在 2008 年 2 月更新了 [RFC5237]。)本文档还更新了 DCCP [RFC4340] [RFC5595] 和 SCTP [RFC4960] 的 IANA 分配程序。
轻量级用户数据报协议 (UDP-Lite) 与 UDP 共享端口空间。UDP-Lite 规范 [RFC3828] 说:"UDP-Lite 使用 IANA 为 UDP 分配的相同端口号值集"。因此,对 UDP 程序的更新也会导致对 UDP-Lite 程序的相应更新。
本文档还澄清了什么是服务名称以及如何分配它。这将影响 DNS SRV 规范 [RFC2782],因为该规范只是简要提到服务的符号名称在"分配的号码" [RFC1700] 中定义,而没有说明它在那份 230 页文档中指的是哪一节。DNS SRV 规范可能指的是端口分配列表(在 Unix 上称为 /etc/services),或者"协议和服务名称"部分,或者两者,或者其他某个部分。此外,"分配的号码" [RFC1700] 已被淘汰 [RFC3232],并已被在线注册表 [PORTREG] [PROTSERVREG] 取代。
新传输协议的开发是 IETF 不经常进行的一项重大工作。如果将来标准化了新的传输协议,预计它将尽可能遵循这些关于使用服务名称和端口号的指南和实践,以保持一致性。
在撰写本文档时,"专家评审"团队(包括 IANA 的端口评审团队)的内部程序尚未在任何 RFC 中记录,本文档不会改变这一点。