摘要

  • RFC 1 在 ARPANET 真正运行前公开了主机软件问题;RFC 3 允许不完整想法甚至尚无答案的问题进入记录,同时保留编号、作者、机构、日期、标题和分发路径。
  • 出版使提议可查、可试、可反驳,并不使它天然成为正式决定。后来 RFC 体系增加状态、审查、发布流与档案稳定性,继续区分讨论、实验和 Internet Standard。

文件比网络先到

RFC 1 的日期本身就是证据。1969 年 4 月,第一个 Interface Message Processor 还要数月才会抵达 UCLA。题为 Host Software 的文本并非描述一个成熟系统,而是在端到端实验尚不可行时,先把多个站点必须共同解决的问题放到同一张纸上。

Crocker 区分了设备承包方与主机小组的责任。Bolt Beranek and Newman 负责分组交换设备,初始站点需要就主机软件达成协作。参与者已经开会,一个更小的工作组继续讨论,但术语、要求与机制仍在形成。RFC 1 的作用,是让各方能够针对同一版本工作。

这份记录所证明的范围很窄:某位具名作者、在某家机构、于某个日期提出了这些内容。它不证明各站点同意、代码已经实现,也不证明最终网络保留了全部方案。正因为没有把起点伪装成终点,后人才能看见设计如何改变。

RFC 3 把门槛降到一句话

RFC 3 直接规定了笔记制度。Network Working Group 的成员资格并不封闭,任何站点的任何人都可以提交。哲学立场可以没有完整例子,具体技术可以没有冗长背景,明确问题甚至可以还没有尝试回答。Crocker 鼓励“及时”胜过“精雕细琢”,最低长度只需一句。

然而,低门槛没有取消凭据。每份笔记仍须带系列名称和编号、作者与所属机构、日期和标题;文件送往明确的接收者,再由各站点本地复制。暂时不成熟,不等于匿名、不可引用或只存在于口头回忆里。

“Request for Comments”因而同时完成两件事。编号给陈述一个稳定地址,“征求意见”则声明它还等待回应。没有编号,反驳无法锁定版本;没有暂定状态,反驳又像是在挑战一个其实并不存在的正式权威。

纸面会意外制造权威

RFC 3 说出了写作中的权力偏差:文字一旦印出来,读者容易把它当作权威;作者也会因为作品不够完整而不愿公开。两者会形成闭环——文件越正式,资历较浅的人越不敢修改;反对越少,文件越像已经获得共识。

RFC 2555 收录的回忆补上了制度背景。最初的工作组年轻、松散、没有章程,并不知道是否会有“正式协议设计者”出现。Crocker 担心自己组织编号会显得在夺取无权拥有的控制。“Request”这个词是刻意的降调:它打开对话,不宣布统治。

解决办法并非抛弃格式。编号、署名和日期提供责任与记忆;暂定身份限制格式能够借来的权力。形式负责让话留下,状态负责告诉读者这句话可以承受多大的信赖。

分发和保管是两种网络

一份及时的笔记若到不了能够测试它的人手中,就没有价值。RFC 3 指定接收者,并允许站点自行复制。Crocker 后来解释,各机构直接相互寄送,以避免等待中心再次分发;SRI 的 Network Information Center 则保管完整集合。

同一制度使用了两种拓扑。点对点传递缩短回应时间,中心档案保障日后可检索。若所有文件必须先过一个中心,对话会变慢;若只有分散副本没有共同档案,版本与先后关系会丢失。

今天的邮件列表、代码仓库和问题跟踪器承担快速交流,出版物提供稳定节点。只留下最终规范,反对意见和取舍依据会消失;只留下聊天记录,则没人知道哪一版最终获得可依赖的地位。

RFC 编号不是标准级别

RFC 系列后来极其成功,编号因此带上权威感。但编号只标识系列中的文件,并不单独说明成熟度、共识或规范效力。RFC 1796 特意澄清:并非所有 RFC 都是标准。Informational、Experimental 和 Standards Track 共享出版渠道,状态必须跟随引用。

引用时去掉状态,会让实验像义务,也会让信息性说明被当作失败的标准。负责任的问题应当是:它属于哪种发布,更新或取代了谁,由什么流程批准,运行中的实现采用了哪一版。

RFC 1 无需被称为标准也很重要。它把多个主机必须协同的问题暴露出来。后续答复、实现和新文件决定哪些想法能够留下;编号只是让这条变化路径可以被观察。

暂时系列变成永久档案

Crocker 在三十周年回顾中说,他原以为这些笔记只会存在一年左右,等网络跑起来便自然消失。结果,系列活过了原始设备、最初的 Host-to-Host 协议和创办它的小组。

RFC 8700 描述了变化后的分工。粗糙想法更多在邮件、工作组和 Internet-Drafts 中流动;RFC 通过明确发布流、审查和编辑成为规范化档案。全球实现者需要稳定文本,不能每次重新谈判协议含义。

这不是对 1969 年规则的否定,而是记录的生命周期。问题刚出现时,需要低成本公开不确定性;全球系统准备依赖时,需要高质量稳定语义。把最终审查提前压在第一个问题上,会把讨论赶回私域;把早期随意性带进最终规范,则让每个实现者独自猜测。

回应可能是一段代码

“意见”不一定写在原文边缘。另一份 RFC 可以修正术语或替代方案;一次实现可以暴露文字遗漏的冲突;一台主机上线可以把漂亮设计变成可观察的失败。对话横跨文件和运行系统。

因此,孤立的一份 RFC 很少是完整决策记录。读者需要追踪 updates、obsoletes、状态、相关草案、实现报告和实际行为。最早的编号是进入讨论的地址,而不是讨论本身。

Crocker 给没有正式授权的小组提供了一种不冒充权威也能前进的方式:把不确定性署名、定时、编号,让别人回答,再让互操作的机器提供另一张收据。制度合法性来自这条可追踪链,而不是第一份文件的语气。

来源