摘要

  • RFC 1459 于 1993 年 5 月发布;在它出现以前,IRC 已经发展和运行了数年。“Experimental”描述的是这份 RFC 的状态,不是说当时还没有可用服务。
  • 作者称 IRC 已连接成全球网络,并报告主网络的平均在线用户数在两年内增长了十倍。文件没有给出统计口径、基数或原始序列,这应视为作者报告,而非独立普查。
  • 同一份文件还留下了增长的技术代价:服务器树需要维护全网状态,作者当时只点名一个现行实现版本,并已承认扩展性问题。

看到一份技术协议的第一号文件,人们很容易把它当成系统的起点。对 IRC 来说,RFC 1459 更像是在运行过程中拍下的一张现场照。这份文件由 J. Oikarinen 和 D. Reed 撰写,发表于 1993 年 5 月,状态栏写着 Experimental。可摘要讲的是更早的历史:IRC 在此前四年间逐步发展,最初实现的用途是在电子布告板系统(BBS)上让用户彼此聊天。RFC 并未发布一项等待第一次部署的设想;它试图描述一项已经在使用中演变的协议。

后来的文件把时间点说得更明确。2000 年的 RFC 2810 说 IRC 自 1989 年开始发展,并称 RFC 1459 是它在 1993 年 5 月的第一份正式文档。这是一份事后回顾,不是完整的上线日志。两份文本合起来可以支持一个谨慎的顺序:先有运行和非正式演进,约四年后才有正式发表的描述。

1993 年的摘要还声称,IRC 当时已经支持一个由服务器和客户端组成的全球网络,并说过去两年主网络的平均用户数增长了十倍。RFC 没有公开起始人数、统计方法或时间序列。这个数字值得保留,因为作者选择把它写进摘要;但它只能归属于作者的报告,不能改写成经过独立核验的全球用户普查。“全球”同样是作者对网络范围的描述,而不是一张经核实的部署地图。

协议描述的服务器结构说明了为什么增长会带来压力。服务器组成一棵生成树:用户连接到服务器,服务器再沿树枝连接其他服务器并转发消息。树结构避免了冗余路径,却没有让全网状态变得轻巧。RFC 1459 第 9.1 节指出,每台服务器都必须知道其他服务器和用户,并及时更新变化。设计目标同时要求路径较短、分支充分,又希望服务器数量保持较少。每个节点既负责让分布式对话继续传递,也要维护一份覆盖范围很广的网络视图。

实现章节又给出一个时间边界。作者写道,当时唯一现行的协议实现是 IRC server 2.8;更早版本可能只支持文档列出的部分命令,而向后兼容也造成协议文字与软件之间的差异。这是作者在那个时间点的实现说明,不是对所有服务器、客户端和分支版本的完整清点。它的价值在于提醒我们:规范文本和实际程序并没有静止在同一个版本上。

Experimental 标签与网络已经运行,回答的是两个不同问题。这个标签不表示 IRC 只是设想;有人使用它也不证明它已成为互联网标准。如今,IETF Datatracker 对 RFC 1459 的记录将其标为 Legacy,并说明它未获 IETF 背书、在 IETF 标准流程中没有正式地位。这是当前记录,不能倒推替代 1993 年的 Experimental 标签;它提醒我们,发表为 RFC 与获批为标准不是一回事。

到 2000 年,相关文档又分别描述了架构、频道管理、客户端协议和服务器协议:RFC 2810、RFC 2811、RFC 2812 与 RFC 2813。这些文件的类别是 Informational;RFC 2810 明确说明它不规定任何互联网标准。文档变得更细,说明书写工作仍在继续;单凭这些文件,不能证明所有地方都在部署,也不能证明机构已经完成标准化采纳。

RFC 1459 留下了一类重要的历史材料:作者在当时记录一个正在运行的服务,同时承认它已经遇到扩展性挑战。其时间线不是“RFC 创造了 IRC”,而是一个协议可以先拥有用户、实现和运维约束,之后才获得第一份正式说明。