IANA 的协议注册表(Protocol Registries)是什么?
更新时间
IANA 的协议注册表是众多互联网协议所使用的协议名称与号码注册表的中央仓库。它的作用是让同一个参数值在整个互联网范围内只对应一种含义,避免不同实现各自定义、互相冲突。当你在实现或调试某个协议、需要确认某个字段的编号或名称是否已被占用时,可以到 IANA 的协议注册表页面查询已有的分配记录;如果某个值尚未分配且协议允许,页面也提供了申请分配的入口。同一站点还提供时区数据库(Time Zone Database)。
协议注册表里有什么
协议注册表按协议组织,每个协议下再按参数类别划分。典型内容包括:
- 名称与号码的对应关系:某个协议字段可取的编号、关键字或操作码,以及每个值代表什么。
- 分配状态:某个值是否已分配、由谁登记、引用哪份规范文档。
- 参考规范:该注册表依据的 RFC 或其他标准文档,便于核对定义来源。
因此,注册表本身不是协议规范,而是规范中“参数取值”部分的集中登记处。查注册表时通常要配合对应的 RFC 一起看。
怎么查一个协议参数
- 确定协议与参数类别:先明确你要查的是哪个协议、哪一类参数(例如消息类型、错误码、选项编号)。
- 进入协议注册表页面:在 IANA 的 Protocol Registries 入口找到对应协议,打开其注册表列表。
- 定位具体注册表:选择与你要查的参数对应的那张表,查看已分配的值、名称和参考文档。
- 核对规范:用表中给出的参考文档确认该值的语义和使用条件,避免只看编号不看定义。
- 确认未分配后再考虑申请:如果目标值在表中为空或标注未分配,且协议允许新增,再走申请流程。
预期结果是:你能拿到一个可核对的值—名称—规范三者对应关系,而不是凭记忆或从其他实现里反推。
申请分配前要注意什么
页面提供“Apply for an assignment”入口,但申请是否可行取决于具体注册表的分配政策(例如是否需要先发布规范、是否要求专家评审、是否只允许特定范围的取值)。这些政策写在对应注册表或相关 RFC 中,申请前应先读清楚,否则容易在提交后被退回。注册表页面本身不替代政策文档。
容易混淆的边界
IANA 的职能不止协议注册表,还包括域名和号码资源,三者不要混为一谈:
| 职能 | 管什么 | 典型内容 |
|---|---|---|
| 协议分配 | 协议中的名称与号码 | 协议注册表、时区数据库 |
| 域名 | DNS 根区相关管理 | 根区管理、顶级域数据库、.int 与 .arpa 注册表、IDN 实践库 |
| 号码资源 | 全球 IP 与 AS 号空间 | 向区域互联网注册机构(RIR)的分配、滥用信息 |
查协议参数时用协议注册表;查 IP 或 AS 号分配去向时用号码资源相关页面;查顶级域归属时用域名相关页面。走错入口会找不到你要的表。
一个具体场景
例如你需要为一个自定义协议字段选定一个编号,先到对应协议的注册表确认候选值是否已被占用;若已被占用,换一个未分配值;若该注册表要求先有规范文档才能申请,就先完成文档再提交。这样做的价值在于:你选的值有公开记录可查,其他实现方也能在同一个注册表里看到它,减少互操作时的歧义。
时区数据库是同一站点下的另一项资源,与协议参数注册表用途不同,查时区规则时直接用它,不要到协议注册表里找。