Skip to main content

14. IANA考虑 (IANA Considerations)

本章说明SCTP协议在IANA(Internet Assigned Numbers Authority)注册表中的注册要求。

14.1. SCTP块类型注册 (SCTP Chunk Type Registration)

IANA维护SCTP块类型(Chunk Type)注册表。

14.1.1. 块类型值范围

块类型字段:8位值(0-255)

分配策略

0-63    : 已定义的块类型(本RFC定义)
64-126 : 保留供IETF审查使用
127 : 保留用于IETF定义的扩展
128-190 : 保留供IETF审查使用
191 : 保留用于IETF定义的扩展
192-255 : 实验和专用使用

14.1.2. 已定义的块类型

本RFC定义的块类型:

块类型值块类型名称参考章节
0DATA3.3.1
1INIT3.3.2
2INIT ACK3.3.3
3SACK3.3.4
4HEARTBEAT3.3.5
5HEARTBEAT ACK3.3.6
6ABORT3.3.7
7SHUTDOWN3.3.8
8SHUTDOWN ACK3.3.9
9ERROR3.3.10
10COOKIE ECHO3.3.11
11COOKIE ACK3.3.12
14SHUTDOWN COMPLETE3.3.13

注意:块类型12和13在本规范中未使用。

14.2. SCTP块参数类型注册 (SCTP Chunk Parameter Type Registration)

IANA维护SCTP块参数类型注册表。

14.2.1. 参数类型值范围

参数类型字段:16位值(0-65535)

分配策略

0-32767   : 已定义的参数类型
32768-49151 : 保留供IETF审查使用
49152-65535 : 实验和专用使用

14.2.2. 已定义的参数类型

本RFC定义的参数类型:

参数类型值参数名称参考章节
5IPv4 Address3.3.2.1
6IPv6 Address3.3.2.1
7State Cookie3.3.3.1
8Unrecognized Parameters3.3.3.2
9Cookie Preservative3.3.2.1
11Host Name Address3.3.2.1
12Supported Address Types3.3.2.1

14.3. SCTP错误原因代码注册 (SCTP Error Cause Code Registration)

IANA维护SCTP错误原因代码注册表。

14.3.1. 错误原因代码值范围

原因代码字段:16位值(0-65535)

分配策略

0-32767   : 已定义的原因代码
32768-49151 : 保留供IETF审查使用
49152-65535 : 实验和专用使用

14.3.2. 已定义的错误原因代码

本RFC定义的错误原因代码:

原因代码值原因名称参考章节
1Invalid Stream Identifier3.3.10.1
2Missing Mandatory Parameter3.3.10.2
3Stale Cookie Error3.3.10.3
4Out of Resource3.3.10.4
5Unresolvable Address3.3.10.5
6Unrecognized Chunk Type3.3.10.6
7Invalid Mandatory Parameter3.3.10.7
8Unrecognized Parameters3.3.10.8
9No User Data3.3.10.9
10Cookie Received While Shutting Down3.3.10.10
11Restart of an Association with New Addresses3.3.10.11
12User Initiated Abort3.3.10.12
13Protocol Violation3.3.10.13

14.4. SCTP有效载荷协议标识符 (SCTP Payload Protocol Identifiers)

IANA维护SCTP有效载荷协议标识符注册表。

14.4.1. 协议标识符值范围

有效载荷协议标识符字段:32位值(0-4294967295)

用途

  • 标识DATA块中携带的上层协议
  • 允许接收方正确处理有效载荷
  • 与端口号正交,提供额外的多路复用

14.4.2. 注册策略

分配方式

0           : 保留(SCTP未使用)
1-65535 : 标准化协议(IETF审查)
65536- : 先到先得(First Come First Served)

注册要求

  • 协议名称
  • 协议描述
  • 参考文档

14.4.3. 已定义的协议标识符

部分预定义的协议标识符示例:

标识符值协议名称参考
0reserved-
1IUARFC 4233
2M2UARFC 3331
3M3UARFC 4666
4SUARFC 3868
5M2PARFC 4165
6V5UARFC 3807
7H.248-
8BICC-
9TALI-
10DUA-
11ASAP-
12ENRP-
13H.323-
14QIPC-

14.5. 端口号分配 (Port Number Assignment)

14.5.1. SCTP端口号注册

SCTP使用与TCP和UDP相同的端口号空间,但是独立维护。

IANA职责

  • 维护SCTP端口号注册表
  • 接受SCTP端口号分配请求
  • 协调与TCP/UDP端口号的使用

端口号范围

0-1023    : 系统端口(Well Known Ports)- 需要IETF审查
1024-49151: 用户端口(Registered Ports)- 需要IANA审查
49152-65535: 动态/私有端口(Dynamic/Private Ports)- 不需要注册

14.5.2. 推荐实践

端口分配建议

  • 如果协议同时支持TCP和SCTP,应使用相同的端口号
  • 新协议应明确指定是否使用SCTP传输
  • 应在服务注册中标明传输协议(SCTP vs TCP vs UDP)

端口选择考虑

  • 避免与常用TCP/UDP端口冲突(除非有意共享)
  • 考虑防火墙和NAT的兼容性
  • 为服务选择易记的端口号

14.6. 注册更新过程 (Registration Update Process)

14.6.1. 注册新值

过程

  1. 向IANA提交注册请求
  2. 提供必要的文档和技术规范
  3. 经过适当的审查过程(取决于值范围)
  4. IANA分配值并更新注册表

14.6.2. 修改现有注册

允许的修改

  • 更新参考文档
  • 澄清描述
  • 修正错误

不允许的修改

  • 更改已分配的数值
  • 重新定义已有条目的含义

14.6.3. 废弃注册

废弃过程

  • 标记为"已废弃"而非删除
  • 保留历史记录
  • 在注册表中注明废弃原因和替代方案

总结

IANA在SCTP协议管理中的角色:

  1. 注册表维护:维护块类型、参数类型、错误代码等注册表
  2. 值分配:根据定义的策略分配新的标识符值
  3. 文档管理:保存相关参考文档和规范
  4. 协调作用:协调SCTP与其他协议的互操作性

最佳实践

  • 在使用新的块类型或参数前先检查IANA注册表
  • 实验性扩展使用指定的实验范围
  • 标准化扩展需要通过IETF审查过程
  • 保持注册信息的准确性和及时性

重要提示

  • 未注册的值可能在不同实现中冲突
  • 使用保留范围的值需要遵循RFC规定的过程
  • IANA注册表是SCTP互操作性的基础