RFC 文档阅读指导
对于网络技术人员来说,阅读相关的 RFC 文档是不可避免的,但是如何高效地阅读这些技术资料,有哪些可以利用的工具,去哪里快速找到自己想要的东西等等这些,却又是实际会面临的棘手问题。常言道:工具善其事,必先利其器,掌握快速有效阅读RFC的方法,可以提高自己的工作效率,事半功倍,所以结合自己这些年的实践,想分享一些阅读RFC文档的心得体会。
官网资源
https://www.ietf.org/standards/rfcs/
IETF 组织关于 RFC 的一些说明
RFCs
RFC documents contain technical specifications and organizational notes for the Internet.
RFC文档包含针对互联网领域的技术性规范和组织性记录。
RFCs produced by the IETF cover many aspects of computer networking. They describe the Internet’s technical foundations, such as addressing, routing, and transport technologies. RFCs also specify protocols like TLS 1.3, QUIC, and WebRTC that are used to deliver services used by billions of people every day, such as real-time collaboration, email, and the domain name system.
由 IETF 产出的 RFC 文件覆盖了计算机网络中的很多领域。他们描述了互联网的技术基础构件,比如寻址,路由,传输技术等。RFC 还描述了像 TLS1.3, QUIC, WebRTC 等协议,这些协议分发了每天数十亿人使用的各种服务,比如实时合作,电子邮件,域名系统。
Only some RFCs are standards. Depending on their maturity level and what they cover, RFCs are labeled with different statuses: Internet Standard, Proposed Standard, Best Current Practice, Experimental, Informational, and Historic.
只有一些 RFC 是标准。依据成熟度和覆盖范围,RFC 被标记为不同的状态:互联网标准,建议标准,最佳当前实践,试验性,信息性,历史性。
The RFC Series includes documents produced by the IETF, the Internet Architecture Board (IAB), the Internet Research Task Force (IRTF), and independent submitters. All RFCs are published by the RFC Editor, which is the authoritative source for retrieving RFCs.
RFC 系列包含几个组织创建的文档,这些组织有 IETF,IAB,IRTF 和独立提交者。所有的 RFC都由 RFC 编委会发布,他们是获取 RFC 文档的权威机构源。
RFCs usually begin as Internet-Drafts (I-Ds) written by an individual or a small group. In the IETF, these are then usually adopted by a working group, and improved and revised. Less often, I-Ds are considered within the IETF as “individual submissions” sponsored by an Area Director. While not every I-D becomes an RFC, a well-defined set of processes (also documented in RFCs) guides the consideration and progression of a document. When they are published, RFCs are freely available online.
RFC 通常开始于独立作者或者小组撰写的互联网草案。在 IETF 这些草案会被工作组采纳,进而再被改进和修订。比较少少发生的是,互联网草案在 IETF 中被认为是某个领域赞助的独立条件者所作。并不是所有的互联网草案都会变为 RFC 文档,一个被良好定义的过程集合指导考量和增进文档的质量。当他们最终被发布后,RFC 可以被免费获得。
Software developers, hardware manufacturers, and network operators around the world voluntarily implement and adopt the technical specifications described by RFCs.
世界各地的软件开发者,硬件制造商和网络运营商志愿执行和采纳由 RFC 文档描述的技术规范。
The IETF recognizes that security vulnerabilities will be discovered in IETF protocols and welcomes their critical evaluation by researchers. The Internet Engineering Steering Group has provided guidance on how to report vulnerabilities believed to be discovered in IETF protocols.
IETF 识别出IETF 协议中应该披露的安全脆弱性,同时欢迎研究者提出关键性的质量改进。IESG 工作组提供了如何报告脆弱性的指导文档,这些是 IETF 协议被认为应该会披露的。
The first document in this series, RFC 1, was written in 1969. It was soon followed by others, including those that describe the core Internet Protocol (IP) still used in the Internet today. RFCs started as informal technical notes and the name originally stood for “Request For Comments” but now they are simply known as RFCs. The collaborative process used to develop early RFCs remains an important part of the IETF spirit. Today, there are more than 9000 individually numbered documents in the series.
这个系列的第一篇 RFC1 写作于 1969 年。然后不久就出现了后面的文档,包括直到现在互联网领域还在使用的核心 IP 协议。RFC 开始于非正式的技术备忘录,所以 RFC 最原始的名字含义是请求评论文档,但是现在被直接简单定义为 RFC。开发 RFC 的早期合作过程依然保持为 IETF 精神的重要组成部分。今天,RFC 系列独立标记的文档数量已经超过 9000 了。
RFC 文档官方发布站点,也是RFC资料的主要入口。其中这里RFC Editor Official Internet Protocol Standards有完整的的RFC文件列表,并根据Internet Standards, Draft Standards 和Proposed Standards三种状态做了分类,不过平时我们并不会做这种区分,都可以称之为RFC标准。
IETF 上的 datatracker 站点,提供比 rfc-editor 上更加丰富的内容,比如各种 draft,RFC 在发布前的各个 draft 版本及差异比较,rfc 目录结构导读,其实 rfc-editor 有一些连接也指向了 datatracker 站点。
阅读方法
在 IETF 的 blog 站点有篇文章https://www.ietf.org/blog/how-read-rfc/,讲述了如何阅读 rfc,这篇文章提出了很多注意点,建议有空详细阅读一番,可以学到很多方法和技巧。作者Mark Nottingham具有丰富的HTTP领域及相关经验,他的IETF页面介绍在这里https://datatracker.ietf.org/person/Mark%20Nottingham,他的博客在这里https://www.mnot.net/blog/,他的个人介绍在这里https://www.mnot.net/personal/。这篇文章也是搜索如何阅读RFC这个主题下结果最多的文章,有很多网站将这篇文章全文翻译为了中文,比如这里和这里。
实用工具
其实除了发布 RFC 之外,IETF 还有很多工作要做,只不多大多数都要围绕着 RFC来展开,比如互联网草案的撰写和讨论,这是 RFC 发布前必须要经历的。由于分工和协作的要求,以及文档版本归档,版本比较,可读性需求等等,IETF 使用和开发了很多实用的工具,我们在学习和阅读相关文档的时候也能用得上,特别是如果你要动手写一份草案,那这些工具几乎是居家必备了。
IETF Tools Team 就是专门做这些工具开发的工作组,详细介绍看这里, GitHub 上有他们的项目列表。IETF Author Tools 上提供了 RFC 作者可能会使用的格式转换工具,另外这里还有一些工具的介绍。
磨刀不误砍柴工,有了顺手的工具看起 RFC 文档来会得心应手。我记得前些年 RFC 只有单独的一个 TXT 文件,虽然开头有目录介绍,但是阅读起来并不方便,那个时候就有工具(rfcviewer)可以解析 TXT 文档中的目录并展示出来,可以提高阅读的效率,比如这里http://www.rfcreader.com/。现在的文档阅读体验已经远超以前了,可以极大提高工作效率。
其他相关
包含目前为止所有的RFC文档,根据RFC索引值反向排序,正向排序的链接在这里。因为我们一般都会找最新的规范,所以其实反向排序使用起来更方便一些,也有利于追踪最新的RFC进展。
可以通过各种方式下载各种格式的RFC文档,支持rsync工具。文件格式有txt,pdf和xml,其中xml可以通过工具转换为html格式,也就是datatracker上的页面格式。可以看到从RFC8501开始才支持xml格式,也及时从这时候pdf格式文件中也有了目录功能。
一些常见问题及解答,在深入了解RFC之前可以看看这些FAQ,避免少走一些弯路。
RFC文档搜索工具,这里有具体使用说明。虽然使用搜索引擎查找RFC已经比较方便和准确了,特别是如果你在搜索的时候使用site:ietf.org限定机制,就更可以精确控制搜索的范围,但是我们还需要更精确的RFC搜搜,比如对于RFC的一些领域做调研或者查找特定关键字的RFC,这时候上述文档搜索工具就更适合了。搜索的结果提供了如下标准格式,方便进一步索引。