7. IANA 考虑 (IANA Considerations)
本节描述与 TCP 相关的 IANA (Internet Assigned Numbers Authority) 注册表和管理事项.
7.1. TCP Header Flags 注册表
IANA 维护 "TCP Header Flags" 注册表, 用于管理 TCP 头部中的控制位分配.
当前已分配的标志:
| 位 (Bit) | 名称 (Name) | 引用 (Reference) | 描述 (Description) |
|---|---|---|---|
| 0 | FIN | RFC 9293 | Finish - 发送方没有更多数据 |
| 1 | SYN | RFC 9293 | 同步序列号 |
| 2 | RST | RFC 9293 | 重置连接 |
| 3 | PSH | RFC 9293 | Push 功能 |
| 4 | ACK | RFC 9293 | 确认字段有效 |
| 5 | URG | RFC 9293 | 紧急指针字段有效 |
| 6 | ECE | RFC 3168 | ECN-Echo |
| 7 | CWR | RFC 3168 | Congestion Window Reduced |
保留位:
- Bits 8-11: 保留供将来使用, 当前必须设置为零.
注册流程:
- 分配新的 TCP 头部标志需要 Standards Action.
- 分配由 IESG 批准.
7.2. TCP Option Kind Numbers 注册表
IANA 维护 "TCP Option Kind Numbers" 注册表.
重要的已分配选项:
| Kind | 长度 (Length) | 名称 (Name) | 引用 (Reference) |
|---|---|---|---|
| 0 | - | End of Option List | RFC 9293 |
| 1 | - | No-Operation | RFC 9293 |
| 2 | 4 | Maximum Segment Size | RFC 9293 |
| 3 | 3 | Window Scale | RFC 7323 |
| 4 | 2 | SACK Permitted | RFC 2018 |
| 5 | N | SACK | RFC 2018 |
| 8 | 10 | Timestamps | RFC 7323 |
| 19 | 18 | TCP-MD5 Signature | RFC 2385 |
| 28 | 4 | User Timeout Option | RFC 5482 |
| 29 | N | TCP-AO | RFC 5925 |
| 34 | N | TCP Fast Open | RFC 7413 |
| 253 | N | RFC3692-style Experiment 1 | RFC 4727 |
| 254 | N | RFC3692-style Experiment 2 | RFC 4727 |
注册流程:
- TCP option numbers 0-255 由 IANA 管理.
- 新选项的分配通常需要 IETF Review 或 RFC 发布.
7.3. TCP Port Number 注册表
IANA 维护 "Service Name and Transport Protocol Port Number Registry".
端口范围:
- 0-1023: System Ports / Well-Known Ports.
- 需要 IETF Review 或 IESG 批准.
- 用于标准服务, 例如 HTTP:80, HTTPS:443, SSH:22.
- 1024-49151: User Ports / Registered Ports.
- 通过 Expert Review 分配.
- 用于特定应用和服务.
- 49152-65535: Dynamic Ports / Private Ports.
- 不分配, 用作临时端口.
- 也称为 Ephemeral Ports.
7.4. 更新和修改 (Updates and Modifications)
RFC 9293 对 IANA 注册表的更新:
-
TCP Header Flags 注册表更新:
- 澄清保留位的状态.
- 确认来自 RFC 3168 的 CWR 和 ECE 标志.
- 更新注册流程说明.
-
TCP Option 注册表维护:
- 确认强制选项 0, 1, 2.
- 引用实验性选项 253, 254 的用法.
-
文档引用更新:
- 将引用从 RFC 793 更新为 RFC 9293.
7.5. 实验性值 (Experimental Values)
RFC 4727 实验性选项:
- Option kinds 253 和 254 保留用于实验.
- RFC 6994 描述实验性选项共享使用的机制.
- 实验性选项不应在生产环境中使用.
7.6. 相关注册表 (Related Registries)
其他相关 IANA 注册表:
- TCP Parameters - 顶层注册表.
- TCP Alternate Checksum Numbers - 备用校验和算法.
- TCP Urgent Pointer - 紧急指针语义.
- TCP Timestamp Option - 时间戳选项参数.
7.7. 注册请求 (Registration Requests)
如何请求新的 TCP 参数:
-
端口号请求:
- 访问 IANA 端口号分配页面.
- 填写服务名, 端口号, 传输协议和描述.
- 提供联系信息和参考文档.
-
Option Kind 请求:
- 通常通过 RFC 发布流程进行.
- 需要 IETF 工作组讨论和共识.
- RFC 草案中必须包含 IANA Considerations 章节.
-
头部标志请求:
- 需要 Standards Track RFC.
- 由 IESG 批准.
- 需要充分的技术理由和社区支持.
7.8. 注册表访问 (Registry Access)
IANA 注册表位置:
Homepage: https://www.iana.org/
TCP Parameters: https://www.iana.org/assignments/tcp-parameters/
Port Numbers: https://www.iana.org/assignments/service-names-port-numbers/
注册表中的实时分配状态由 IANA 维护. 实现者在依赖端口号, TCP 选项或头部标志分配时, 应核对相应 IANA 注册表.