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