摘要
- IETF现行资料库通常在Internet-Draft发布185天后将其标为过期,除非正式处理状态阻止过期。这个标签描述活跃版本的生命周期,并没有指出哪个机构否决了提案。
- 活跃Repository与Archive承担不同功能。版本会因更新、被替代、出版为RFC或到期而离开活跃资料库,历史版本仍可保存在Archive中。
- 官方历史直接证明两者不可混写:
draft-iab-protocol-maintenance-05过期后继续修订,最终成为RFC 9413;draft-ietf-netvc-testing多次过期,但真正有理由的终止记录是后来单独出现的IESGDead状态。 - 尽调需要一张“草案状态回执”:精确版本、发布日期与到期日、归档和替代链、工作组及文档流状态、采用与Last Call证据、明确处置、实现依赖及结论责任人。
把时钟写成裁决的清单
设想一家设备采购方正在评估一项新协议。分析员打开IETF Datatracker,看见最新Internet-Draft显示Expired,便在风险登记册中写下“IETF已否决”。产品团队据此撤下路线图项目,审计报告再引用这条结论。几个月后,同名草案出现新修订,登记册又把状态改成“IETF重新批准”。
两次判断都越过了证据。第一次把自动到期日变成机构决定,第二次把新文件变成认可。系统观测到的事实——过期与更新——都是真的;它虚构的则是两次授权性结论。
“否决”不是一个没有主语的状态。谁否决了什么?工作组没有采用?主席判断没有rough consensus?Area Director拒绝承接?IESG终止出版请求?作者只是没有在期限内提交新版本?原草案被另一名称替代?还是讨论仍在继续,文件恰好跨过自动时钟?
仅凭Expired无法回答。它最多说明一个生命周期条件发生了。治理记录必须另行寻找真正解释机构行为的事件,并保存决定者、权限范围、适用版本、日期与理由。
Repository、Archive与185天事件
IETF作者资源的现行说明把Internet-Draft Repository与Internet-Draft Archive明确分开。Repository保存活跃版本。出现更新版本、被另一草案替代、出版为RFC或者到期时,该版本不再活跃。Archive则保存各个版本及其渲染形式,只有极少数特殊情况才会移除。
现行规则通常让草案在进入Repository后185天到期。某些正式处理状态会阻止它到期,例如IETF文档流的IESG出版处理,或者Independent Submission Stream中的Independent Series Editor审查。这一点很重要:时钟本身也会读取流程状态,而不是一把对所有文件机械落下的六个月闸刀。
Archive保留文本,不等于把Internet-Draft变成正式档案出版物。同一份现行说明强调,草案仍是work in progress,引用时也不应赋予其他身份。保存回答的是“当时写了什么”,不是“IETF批准了什么”。
再看1996年的RFC 2026第2.2节,差异更清楚。BCP 9当时把Internet-Drafts目录描述为公开演进中文本、接受非正式审阅的工具。草案六个月不变且未获IESG建议出版,就会从目录移除;提交新版本会重新启动期限。RFC 2026还明确说,Internet-Draft没有正式地位,随时可能改变或移除。
基础设施已经演进:现在采用185天表述,也通过Archive长期保存历史版本。但治理边界没有倒转。草案仍不是RFC,资料库到期也仍不能替代可归责的流程决定。
一个标签装不下四种状态
可靠系统至少要把四层事实分开。
第一层是文档身份。draft-example-foo-04不是抽象的“Foo提案”,而是一份具有发布日期、具体字节与引用集合的修订。05版可能修复安全条件、改变消息格式或缩小适用范围。省略版本后缀的评估无法证明自己究竟读了哪份文本。
第二层是资料库生命周期。Active、updated、replaced、published和expired解释某一修订为何仍是活跃副本,或为何离开活跃视图。它们帮助读者寻找当前文件,却不单独表达技术质量或共识。
第三层是流程状态。个人提交、候选工作组采用、已采用的工作组文档、工作组Last Call,以及处于IESG评估中的出版请求,不是同一种机构位置。RFC 2418第7.2节把Internet-Drafts视为工作中的文档;第7.4节另行规定工作组Last Call;第7.5节又把推进文档所需的rough consensus与提交IESG写成独立步骤。
第四层才是处置。有权限的主体可以记录采用、替代、撤回、拒绝承接、批准、出版或终止,并可能留下理由和申诉路径。真正的不利结论应在这一层寻找,不能从生命周期层反推。
四层可以分别变化。工作组仍准备修改的文档可能到期;活跃的个人草案可能没有任何机构承接;已经有人实现的设计可能出版请求失败;过期修订也可能被同名新版本接续。单一红黄绿标签无法诚实承载这些组合。
过期后成为RFC 9413的草案
Maintaining Robust Protocols的官方历史给出了“过期等于否决”的直接反例。05版在2021年7月12日发布,系统于2022年1月13日记录到期。06版在2022年5月10日出现,随后还有07至12版。IAB把文档推进到Community Review和IAB Review,记录共识与批准,并于2023年2月送交RFC Editor。
最终文本在2023年6月出版为RFC 9413。早期到期事件是真实历史;把它写成IAB或IETF否决仍然是错误叙述。时钟既没有阻止后来修订,也没有提前预言审阅和出版结果。
这个案例不证明多数过期草案都会回来。它只证明一个必要而有限的命题:过期与否决在逻辑上不等价。如果数据模型只能先写“否决”,以后再覆盖成“批准”,它丢失的正是治理所需要的事件链。
正确记录会同时保留全部事实:2022年1月13日,05版因自动到期离开活跃状态;5月10日,06版发布;此后的条目分别说明审阅机构和决定;RFC 9413记录最终档案出版结果。每个事件都有自己的时间、主体与含义。
真正终止另有决定者与理由
Video Codec Testing and Quality Measurement的历史展示相反方向。05版在2017年9月过期,06版一个月后出现;06版在2018年5月过期,07版于7月提交并进入工作组Last Call。07版在2019年1月到期时,工作组状态仍记载为已经形成共识、等待write-up。08版随后进入出版程序和IETF Last Call。
真正具有治理意义的不利记录到2020年3月25日才出现。IESG状态改为Dead,Area Director同时写明:在多次尝试推动解决IESG评估意见之后,NETVC工作组仍缺乏完成文档所需的动力。系统在同年8月还记录了一次自动到期。
这时,分析员拥有可以引用的终止证据:日期、流程主体和理由都存在。理由是动力不足以及评估意见未解决,并不等于某个技术定理证明测试方法毫无价值。文档shepherd的记录甚至说明相关方法已被AV1实现者使用。实现依赖、出版处置与资料库到期是三个不同事实。
如果只把最后一次到期叫作“否决”,反而会丢掉最好证据:明确的IESG状态变化和说明。若把更早几次到期叫作否决,则与后续工作继续的事实直接冲突。
复活也不等于批准
这条界线是对称的。过期不能证明否决,新版本也不能证明接受。符合要求的个人可以提交Internet-Draft;新修订可能回应意见、恢复可见性、重启讨论,也可能只是作者保留继续工作的选择。正式地位仍须来自相应流程记录。
文件名也不能独立承担所有证明。draft-ietf-...通常反映工作组采用,但精确工作组状态和历史仍是依据;名称不证明工作组对每句话都存在当前rough consensus,更不证明IESG已批准。Last Call启动特定审阅,也不是最终出版。
running code同样不能伪造机构地位。实现证据对判断互操作性、实际价值与转换成本极其重要。Heng Lu关于Running-Code Primacy的论述正是对纸面权威的必要约束。但实现是部署事实的证据,不是共识记录。成熟做法是同时保存代码和流程,让二者互相检验,而不是互相冒充。
外部采用者也必须承担自己的决定。采购方为了在RFC出版前获得新能力,可以有意锁定某个草案版本。这并非天然不合理,但义务来自采购合同,而不是资料库徽标。合同应写明精确版本、变更规则、兼容测试与退出路径。
主张取消到期的草案仍只是草案
个人草案Removing Expiration Notices from Internet-Drafts主张,在草案已经长期归档的环境中,自动到期失去了原有作用。它指出,过期草案仍被引用,一些系统只是改变展示或搜索方式。这份文档可作为经验丰富的参与者对机制存在分歧的证据。
但它本身也是最新修订已经过期的Internet-Draft。这个巧合既不能用来嘲笑提案,也不能替提案制造权威。IETF没有把它采纳为现行规则。人们可以评价论点,却不能把文档的存在写成“IETF已同意取消到期”。
这恰好体现全文的纪律:草案可以包含很强的推理,却没有正式地位;流程标签可以准确,却不自动裁定技术价值。只有被授权的主体通过可追溯记录把两者连接起来,才形成治理意义上的决定。
草案状态回执
技术清单应保存足够证据,让未参加原讨论的人也能重建结论,而不用猜测某一天的徽标代表什么。
| 字段 | 能证明什么 |
|---|---|
| 精确名称与修订 | 评估的是具体文本,而非漂移中的提案名称 |
| 内容指纹 | 被审阅字节是否与保存版本相同 |
| 发布与到期日期 | 时钟事件及当时适用的规则版本 |
| Repository状态 | 该修订是否仍活跃,以及为何离开活跃状态 |
| Archive位置 | 历史文本和渲染结果在哪里保存 |
| 修订链 | 前后版本的关系,同时避免把它们视为相同文本 |
| 替代关系 | 是否由另一草案名称接续或取代 |
| 文档流、承接者与工作组 | 哪个机构如有,负责下一流程步骤 |
| 采用状态 | 工作组是否把它纳入工作,以及证据是什么 |
| 共识与Last Call | 哪次审阅针对哪个版本,尚有哪些实质异议 |
| IESG或其他文档流处置 | 真正的决定、主体、日期、状态与理由 |
| 出版结果 | 若成为RFC,其编号、文档流与类别 |
| 实现依赖 | 代码、测试、部署或外部引用在状态变化后是否仍相关 |
| 外部采用文书 | 哪份合同或政策选用了哪个版本,如何处理更新 |
| 责任人与复核日 | 状态、实现或引用改变后由谁纠正记录 |
这张回执阻止两种相反错误。把Active、adopted或Last Call写成“IETF批准”,属于权威膨胀;把Expired写成“IETF否决”,属于权威捏造。前者需要正面决定证据,后者需要不利决定证据。时钟都无法单独提供。
来源
- IETF作者资源:提交Internet-Draft
- RFC 2026:Internet Standards Process,第2.2节
- RFC 2418:IETF工作组指南与程序
- Datatracker历史:draft-iab-protocol-maintenance
- RFC 9413:Maintaining Robust Protocols
- Datatracker历史:draft-ietf-netvc-testing
- draft-thomson-gendispatch-no-expiry-03
- RFC 3935:IETF使命声明
- Running-Code Primacy
- Minimum Initial Specification, Localized Future Decision, and Voluntary Adoption
结论
Expired是有用警告:活跃修订越过了新鲜度边界,继续依赖需要重新尽调。它不说明工作为何停止、是否有人判断技术方案,也不证明相关机构曾经作出决定。
可执行规则很简单:把到期当作时钟回执,把处置当作权威回执,两者都要保存。若提案被终止,就写明决定者、流程、版本、日期与理由;若它恢复修订,就记录新版本而不虚构批准;若实现者或采购方继续依赖,就以自身权限记录这项选择。日历可以让文档变旧,却不能替机构投票。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
