14. IANA 考虑
本章描述 SCTP 协议在 IANA (Internet Assigned Numbers Authority) 注册表中的注册要求.
14.1. SCTP Chunk Type 注册
IANA 维护 SCTP Chunk Type 注册表.
14.1.1. Chunk Type 值范围
Chunk Type 字段: 8-bit value (0-255)
分配策略:
- 0-63: 已定义 chunk 类型 (由本 RFC 定义)
- 64-126: 保留用于 IETF Review
- 127: 保留用于 IETF 定义的扩展
- 128-190: 保留用于 IETF Review
- 191: 保留用于 IETF 定义的扩展
- 192-255: 实验和私有使用
14.1.2. 已定义 Chunk Types
本 RFC 定义的 chunk 类型:
| Type | Name | Reference |
|---|---|---|
| 0 | DATA | 3.3.1 |
| 1 | INIT | 3.3.2 |
| 2 | INIT ACK | 3.3.3 |
| 3 | SACK | 3.3.4 |
| 4 | HEARTBEAT | 3.3.5 |
| 5 | HEARTBEAT ACK | 3.3.6 |
| 6 | ABORT | 3.3.7 |
| 7 | SHUTDOWN | 3.3.8 |
| 8 | SHUTDOWN ACK | 3.3.9 |
| 9 | ERROR | 3.3.10 |
| 10 | COOKIE ECHO | 3.3.11 |
| 11 | COOKIE ACK | 3.3.12 |
| 14 | SHUTDOWN COMPLETE | 3.3.13 |
注: Chunk type 12 和 13 在本规范中未使用.
14.2. SCTP Chunk Parameter Type 注册
IANA 维护 SCTP Chunk Parameter Type 注册表.
14.2.1. Parameter Type 值范围
Parameter Type 字段: 16-bit value (0-65535)
分配策略:
- 0-32767: 已定义 parameter type
- 32768-49151: 保留用于 IETF Review
- 49152-65535: 实验和私有使用
14.2.2. 已定义 Parameter Types
本 RFC 定义的 parameter type:
| Type | Name | Reference |
|---|---|---|
| 5 | IPv4 Address | 3.3.2.1 |
| 6 | IPv6 Address | 3.3.2.1 |
| 7 | State Cookie | 3.3.3.1 |
| 8 | Unrecognized Parameters | 3.3.3.2 |
| 9 | Cookie Preservative | 3.3.2.1 |
| 11 | Host Name Address | 3.3.2.1 |
| 12 | Supported Address Types | 3.3.2.1 |
14.3. SCTP Error Cause Code 注册
IANA 维护 SCTP Error Cause Code 注册表.
14.3.1. Error Cause Code 值范围
Cause Code 字段: 16-bit value (0-65535)
分配策略:
- 0-32767: 已定义 cause code
- 32768-49151: 保留用于 IETF Review
- 49152-65535: 实验和私有使用
14.3.2. 已定义 Error Cause Codes
本 RFC 定义的 error cause code:
| Code | Name | Reference |
|---|---|---|
| 1 | Invalid Stream Identifier | 3.3.10.1 |
| 2 | Missing Mandatory Parameter | 3.3.10.2 |
| 3 | Stale Cookie Error | 3.3.10.3 |
| 4 | Out of Resource | 3.3.10.4 |
| 5 | Unresolvable Address | 3.3.10.5 |
| 6 | Unrecognized Chunk Type | 3.3.10.6 |
| 7 | Invalid Mandatory Parameter | 3.3.10.7 |
| 8 | Unrecognized Parameters | 3.3.10.8 |
| 9 | No User Data | 3.3.10.9 |
| 10 | Cookie Received While Shutting Down | 3.3.10.10 |
| 11 | Restart of an Association with New Addresses | 3.3.10.11 |
| 12 | User Initiated Abort | 3.3.10.12 |
| 13 | Protocol Violation | 3.3.10.13 |
14.4. SCTP Payload Protocol Identifiers
IANA 维护 SCTP Payload Protocol Identifier 注册表.
14.4.1. Protocol Identifier 值范围
Payload Protocol Identifier 字段: 32-bit value (0-4294967295)
用途: 标识 DATA chunk 中承载的上层协议, 使接收方能够正确处理 payload, 且与端口号正交.
14.4.2. 注册策略
分配:
- 0: Reserved (SCTP 不使用)
- 1-65535: 标准化协议 (IETF Review)
- 65536-: First Come First Served
注册要求: 协议名称, 描述, 参考文档.
14.4.3. 已定义 Protocol Identifiers
预定义 protocol identifier 示例:
| ID | Protocol | Reference |
|---|---|---|
| 0 | reserved | - |
| 1 | IUA | RFC 4233 |
| 2 | M2UA | RFC 3331 |
| 3 | M3UA | RFC 4666 |
| 4 | SUA | RFC 3868 |
| 5 | M2PA | RFC 4165 |
14.5. 端口号分配
14.5.1. SCTP 端口号注册
SCTP 使用与 TCP 和 UDP 相同的端口号空间, 但独立维护.
IANA 职责: 维护 SCTP 端口号注册表, 接受分配请求, 与 TCP/UDP 使用情况协调.
端口号范围:
- 0-1023: System Ports (Well Known) - 需要 IETF Review
- 1024-49151: User Ports (Registered) - 需要 IANA Review
- 49152-65535: Dynamic/Private Ports - 无需注册
14.5.2. 推荐实践
端口分配建议: 如果协议同时支持 TCP 和 SCTP, 使用相同端口号; 新协议应明确指定传输协议.
14.6. 注册更新过程
14.6.1. 注册新值
流程: 向 IANA 提交请求, 提供文档, 接受审查, IANA 分配值并更新注册表.
14.6.2. 修改现有注册
允许: 更新参考文档, 澄清描述, 纠正错误. 不允许: 更改已分配值, 重新定义现有条目.
14.6.3. 废弃注册
标记为 "deprecated" 而不是删除, 保留历史记录, 注明原因和替代方案.
总结
IANA 在 SCTP 协议管理中的角色: 注册表维护, 值分配, 文档管理, 协调.
最佳实践: 使用新类型前检查 IANA 注册表, 实验使用实验范围, 标准化扩展需要 IETF review, 维护准确的注册信息.