Help us understand the problem. What is going on with this article?

RFC標準を調べるための知識やツール

はじめに

本記事では、RFC (Request for Comments) で提案・標準化された仕様を探して読むための基礎知識や、Web上で利用できるツール等について記します。

想定読者は、Web技術に関わるエンジニアで、RFCを参照して標準仕様を調べる機会がある人です。

ここに書かないこと

  • RFCとは何か
  • Internet-Draft (I-D) 段階の議論の追い方
  • I-Dから標準化のプロセスに乗るまでの細かい流れ

基礎知識

RFCの種類

すべてのRFCが仕様として標準化されるというわけではありません。
RFCは次のように、いくつかのCategoryに分類されます。

Category 説明
INTERNET STANDARD 国際標準とすべき仕様の最上位。STD番号が割り振られる
PROPOSED STANDARD 複数の組織での独立な実装と、それらの相互接続性が確認されているもの
EXPERIMENTAL 標準化が目的ではない調査や検討などを含む文章。特定の企業が自社の仕様を公開する際にも用いられる。
INFORMATIONAL 標準化が目的でない情報提供が目的の文章。公式度が低い前提。
HISTORICAL 標準化の過程がわかるよう、過去の議論を残すための文章。
BEST CURRENT PRACTICE 現時点での最良の実践。IETFが支持する技術的関連情報を発行するためにRFC1818(BCP:1)で定められた。BCP番号が割り振られる。
UNKNOWN 1990年以前のRFCのうち、未分類のもの

この内、仕様として標準化されるものは上の2つです。
この2つのCategoryをまとめて、 Standards Track と記すこともあります。

標準化のプロセスは、 PROPOSED STANDARDINTERNET STANDARD のように進行します。

NOTE:

  • RFC2026では PROPOSED STANDARDINTERNET STANDARD の間に位置するものとして DRAFT STANDARD というCategoryも定められていましたが、RFC6410によって削減されました。ただし、古いRFCではまだこのCategoryのものも見られます。

注意点:文書の状態

古いRFCは、後のRFCによって更新 (= Update) されたり、廃止 (= Obsolete) されることがあります。
特に、古い技術系の記事などで言及されているRFCを素直に辿ると、それがout-of-dateなものであっても気づけないことがあります。
従って、あるRFCを見るときに、それが後のRFCによって更新・廃止されていないかがわかるツールを使うことが大事だと思います。

RFCの構成

1つのRFC文書は概ね次のような構成になっています。

ヘッダ                // RFC番号やCategory, Obsoletes, Updates情報など
タイトル
Abstract
Status of This Memo  // 定型文
Copyright Notice     // 定型文
Table of Contents
1. Introduction
  1.1. Conventions and Terminology  // 助動詞の使い方(RFC2119 or 8174)を定義した定型文
  :
:                    // 本文
Acknowledgements
Author's Address

仕様の強制力を表す助動詞の使い方

RFC文書内で、個々の仕様の強制力を表すための助動詞の使い方がRFC2119で定められ、RFC8174で更新されました。

キーワード 意味
"MUST", "REQUIRED", "SHALL" 仕様の絶対的な要請事項
"MUST NOT", "SHALL NOT" 仕様の絶対的な禁止事項
"SHOULD", "RECOMMENDED" 特定の状況下では、特定の項目を無視する正当な理由が存在するかもしれないが、 異なる選択をする前に、当該項目の示唆するところを十分に理解し、慎重に重要性を判断しなければならない
"SHOULD NOT", "NOT RECOMMENDED" 特定の状況下では、特定の動作が容認できる、ないし、非常に有用である、というような正当な理由が存在するかもしれないが、その動作を実装する前に、当該項目の示唆するところを十分に理解し、慎重に重要性を判断しなければならない
"MAY", "OPTIONAL" 選択的。該当のオプションを含まない実装は、それを含む他の実装との相互運用に備えなければならない(MUST)。同様に、オプションを含む実装は、それを含まない他の実装との相互運用に備えなければならない(MUST)。

ツール

いくつか知っているものを、オススメ順に挙げます。

RFC Editor

https://www.rfc-editor.org/

検索コンソールがなかなか高機能で使いやすいです。

機能・特長:

  • キーワード検索
  • Category (※ただし、このツール上は "Status" となっている) や公開日での絞り込み
  • 検索結果画面でのObsoletes, Updates, Errataの表示

このサイトには他に、全RFCの一覧ページなどもあります。

RFC Reader

http://www.rfcreader.com/

単一ページを読む際に、左サイドペインに目次が表示されます。RFCは長いものが多いので便利です。
会員機能もあり、お気に入りやブックマーク機能もあるようです。

検索結果一覧も見やすいのですが、RFC Editorと比べるとUpdates, Errata, Categoryといった情報が不足しています。

IETF Tools

https://tools.ietf.org/

いわば本家サイトです。
RFC一覧ページはObsoletes, Updates, Category (= Status)の情報もあり、網羅性があります。

https://tools.ietf.org/html/ には検索フォームがありますが、キーワード検索のみで、Internet Draft段階のものも結果に含まれるので、標準を調べたい人には使いづらいのではないでしょうか。

様々なツールがありますが、 https://ietf.org/how/tools/ で主だったツールが解説されているようです。

IETF Datatracker

https://datatracker.ietf.org/

RFC, Internet Draftだけでなく、会議のアジェンダや議事録、スライド資料なども検索できるオンラインデータベースです。
上のIETF Toolsのページ中では、「IETF Database」という名前でリンクされています。

機能・特長:

  • キーワード検索
  • 検索結果画面でのObsoletes, Updates, Errataの表示
  • 著者やWG、地域などでの絞り込み

RFC Editor同様に検索結果画面の情報がリッチで見やすいですが、Categoryでの絞り込みなどには対応していません。
IETF関係者が使う上では有用性がありそうだと思いました。


IETF Toolsには、他にも色々なツールがありますが、まだ試せていません。

その他のツールについて

他にも、「RFC Viewer」などで検索すると多数ヒットします。

日本語訳について

その他、個人サイトなどでRFCの翻訳を公開しているものもたくさん見られます。

終わりに

ここに掲載した以外に有益な情報がありましたら、お知らせ頂けると嬉しいです。
コメントや編集リクエストを歓迎します。

参考

progrhyme
Software Engineer. Was @key-amb
https://progrhy.me/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした