Request for Comments

IETFによる技術仕様の保存、公開形式

Request for Comments(リクエスト フォー コメンツ、略称:RFC)はIETF(Internet Engineering Task Force)による技術仕様保存、公開形式である。内容には特に制限はないが、プロトコルファイルフォーマットが主に扱われる。RFCとは「コメント募集」を意味する英語の略語であり、もともとは技術仕様を公開し、それについての意見を広く募集してより良いものにしていく観点から始められたようである。全てのRFCはインターネット上で公開されており、誰でも閲覧することができる。

なお、IETF以外の組織・コミュニティにおいても、同様の目的の文書群をRFCと呼称する事例が存在する。

歴史

RFCというコンセプトは、1969年にARPANETプロジェクトにおいて生まれた[1]。今日では、Internet Engineering Task Force (IETF)やインターネットアーキテクチャ委員会 (IAB)、およびコンピュータネットワーク研究者の世界的なコミュニティの公式発表の場となっている。

初期のRFCはタイプライターで執筆され、DARPAの研究者にそれをコピーした紙が配布された。現在のRFCとは異なり、初期のRFCの多くは文字通り実際にコメントを求めるものであり、宣言のような響きを避け、議論を促すために"Request for comments"という名前が付けられた[2][3]。初期のRFCには、特に決まったフォーマットはなかった。現在では、RFCになる前の段階であるインターネットドラフトの文書がこのような形式になっている。ARPANETが1969年12月に稼働し始めると、RFCの配布はARPANET上で行われるようになった。

RFC 1 は、カリフォルニア大学ロサンゼルス校(UCLA)のスティーブ・クロッカーが執筆し、1969年4月7日に発表された「ホスト・ソフトウェア」である[4]。このRFCは、執筆したのはクロッカーであるが、クロッカーとスティーブ・カー、ジェフ・ルリフソンによる初期のワーキンググループでの議論により生まれたものである。

クロッカーが執筆した RFC 3 で「RFCとは何であるか」が最初に定義され、RFCはDARPAのネットワーク・ワーキンググループに帰属するものとされた。ただし、これは正式な委員会ではなく、ARPANETプロジェクトに関心のある研究者のゆるやかな集まりであり、誰でも参加できた。

UCLAにはARPANETの最初のIMP(Interface Message Processor)の一つが置かれていたため、1970年代のRFCの多くもUCLAから発信された。ダグラス・エンゲルバートが所長を務めたスタンフォード研究所オーグメンテイション研究センター(ARC)は、ARPANETの最初の4つのノードのうちの1つであり、初期のRFCもここから発信された。ARCには最初のInterNICが置かれ、エリザベス・J・ファインラー英語版が管理し、他のネットワーク情報とともにRFCを配布した[5]。1969年から1998年までは、ジョン・ポステルがRFCを管理した。1998年にポステルが亡くなると、彼の訃報が RFC 2468 として発表された。

アメリカ連邦政府とのARPANETの契約が切れた後、IETFを代表してインターネットソサエティ南カリフォルニア大学(USC)情報科学研究所(ISI)のネットワーク部門と契約し、IABの指示の下でRFCの発行を行うことになった[6]

RFCの歴史については RFC 2555 に30 Years of RFCsとしてまとめられている。

位置付け

すべての RFC が標準というわけではない(RFC 1796 "Not All RFCs are Standards")。各 RFC には標準化プロセスにおける位置付け (status) が定められている。位置付けは「情報 (Informational)」、「実験的 (Experimental)」、「現状で最良の慣行 (Best Current Practice, BCP)」、「標準化過程 (Standards Track)」、「歴史的 (Historic)」のいずれかである。

「標準化過程」はさらに「標準への提唱 (Proposed Standard, PS)」、「インターネット標準 (Internet Standard, STD)」に分けられる(詳しくはインターネット標準を参照のこと)。

「情報(Informational, Info)」
エイプリルフールのジョーク、プロプライエタリなプロトコル、RFC 1591DNSの構造と権限の委任)のように広く不可欠なものと認められた RFC など、ほとんどあらゆるものが含まれる。「情報」RFC には「参考 (for your information, FYI)」と呼ばれる一連の文書も含まれる。
「実験的(Experimental, Exp)」
インターネットに関して有用と考えられる研究成果や実験結果を広く公開するためのものである。実験的といっても、実際には具体的な手続きをとろうとする者がいないために標準化過程へ昇格していないだけの文書も含まれる。
「現状で最良の慣行(Best Current Practice, BCP)」
「情報」には留まらないが実際にネットワークで使われるデータには影響しない、公的なルールと見なされている実務上の文書などである。またインターネット標準を実践するための技術的な推奨事項も含まれる。
「歴史的(Historic, Hist)」
標準化過程で破棄された文書や標準化以前に公開されていた廃れた RFC に適用される。

なお、非常に古い RFC には「不明 (unknown)」という位置付けのものがあり、もし同じ文書が現在公開されるとしたらどの位置付けになるかは明らかでない。

一風変わったRFC

毎年、エイプリルフールには、ジョーク的な内容を含むRFC(Joke RFC、ジョークRFC)が公開される。[注釈 1]また、インターネットに多大な貢献があった人への追悼のRFCが公開されたこともある。

RFCの一覧

RFCの一覧
RFCタイトル
RFC 3望ましいコメントについての文書。RFCが文字通りの「コメント募集」だった頃の様子が分かる。
RFC 748Telnet ランダム喪失オプション(1978年のジョークRFC)
RFC 768UDP
RFC 783TFTP
RFC 791IP
RFC 792ICMP
RFC 793TCP
RFC 826ARP
RFC 854Telnet
RFC 894IP over Ethernet
RFC 903RARP
RFC 959FTP
RFC 1034
RFC 1035
DNS
RFC 1149鳥類キャリアによるIPデータグラムの標準規格(1990年のジョークRFC)
RFC 1157SNMP
RFC 1179LPR Line PRinter daemon protocol
RFC 1189CMIP
RFC 1242ネットワーク相互接続機器のためのベンチマーク用語
RFC 1305NTP
RFC 1459IRC
RFC 1468インターネットメッセージのための日本語文字符号化ISO-2022-JP
RFC 1808相対URLRFC 3986により破棄)
RFC 1855ネチケットガイドライン
RFC 1866HTML 2.0RFC 2854により破棄)
RFC 1867HTMLにおけるフォームからのファイルアップロード(RFC 2854により破棄)
RFC 1928SOCKS v5
RFC 1939POP Version 3
RFC 1942HTMLにおけるテーブル(RFC 2854により破棄)
RFC 1951Deflate圧縮フォーマット仕様 Version 1.3
RFC 1980HTMLにおけるクライアントサイドイメージマップ(RFC 2854により破棄)
RFC 2058Remote Authentication Dial In User Service (RADIUS)
RFC 2070HTMLの国際化(ISO-8859-1以外の文字セットをHTMLで使えるようにしたもの。「HTML2.x」もしくは「HTML i18n」ともいわれる。RFC 2854により破棄)
RFC 2080RIPng for IPv6
RFC 2083PNG
RFC 2119Key words for use in RFCs to Indicate Requirement Levels
RFC 2131DHCP
RFC 2205RSVP
RFC 2247LDAP/X.500 識別名におけるドメイン名の使用
RFC 2251LDAP v3
RFC 2252LDAP v3: 属性文法の定義
RFC 2253LDAP v3: UTF-8 識別名のストリングリプレゼンテーション
RFC 2254LDAP v3: LDAP 検索フィルタの定義
RFC 2255LDAP URL形式
RFC 2256LDAP v3 で利用される X.500(96) ユーザスキーマの要約
RFC 2318Remote Authentication Dial In User Service (RADIUS)
RFC 2322Management of IP numbers by peg-dhcp(洗濯ばさみ-DHCPによるIPアドレス管理)(1998年のジョークRFC。実装例は#外部リンク参照)
RFC 2324Hyper Text Coffee Pot Control Protocol(1998年のジョークRFC)
RFC 2328OSPF Version 2
RFC 2396URIの一般的書式(RFC 3986により破棄)
RFC 2401IPSec : Security Architecture for the Internet Protocol
RFC 2453RIP Version 2
RFC 2459Internet X.509 Public Key Infrastructure Certificate and CRL Profile
RFC 2460IPv6
RFC 2468IANAを偲ぶ」(IANAの発起者であるジョン・ポステルを悼んで。ヴィントン・サーフ作)
RFC 2527Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework(RFC 3647により破棄)
RFC 2549鳥類キャリアによるIPのサービス品質(1999年のジョークRFC)
RFC 2550Y10K and Beyond(1999年のジョークRFC。2000年問題(Y2K)ではなく10000年問題について)
RFC 2555RFCの30年
RFC 2616HTTP/1.1
RFC 2732URLへのIPv6アドレスによるリテラルを含む書式(RFC 3986により破棄)
RFC 2740OSPF for IPv6
RFC 2795The Infinite Monkey Protocol Suite (IMPS)(1999年のジョークRFC。無限の猿定理の実証で用いることのできるプロトコル)
RFC 2845Secret Key Transaction Authentication for DNS (TSIG)
RFC 2854text/htmlメディアタイプ(IETFにより標準化されたHTMLを破棄し、メディアタイプがtext/htmlである文書の仕様についてはW3Cの仕様書を参照するように定めた)
RFC 2865RADIUS認証プロトコル Remote Authentication Dial In User Service (RADIUS)
RFC 2866RADIUS Accounting
RFC 2930Secret Key Establishment for DNS (TKEY RR)
RFC 3261SIP
RFC 3280Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile(RFC 5280により破棄)
RFC 3305Uniform Resource Identifiers (URIs), URLs, and Uniform Resource Names (URNs): Clarifications and Recommendations(URIURLURNという概念についての考え方)
RFC 3377LDAP v3: 技術仕様
RFC 3411
RFC 3412
RFC 3413
RFC 3414
RFC 3415
RFC 3416
RFC 3417
RFC 3418
SNMP
RFC 3490Internationalizing Domain Names in Applications (IDNA)
RFC 3501IMAP Version 4rev1
RFC 3514The Security Flag in the IPv4 Header(2003年のジョークRFC。このRFCは発行されたその日にFreeBSD上で実装された(すぐにキャンセルされたが))
RFC 3550RTP
RFC 3645Generic Security Service Algorithm for Secret Key Transaction Authentication for DNS (GSS-TSIG)
RFC 3647Internet X.509 Public Key Infrastructure Certificate Policy and Certification Practices Framework
RFC 3751Omniscience Protocol Requirements(2004年のジョークRFC)
RFC 3920
RFC 3921
RFC 3922
RFC 3923
XMPP(Jabberを参照)
RFC 3977NNTP
RFC 3986URIの一般的書式
RFC 3987Internationalized Resource Identifiers(Unicodeの文字を使えるようにしたリソース識別子であるIRIの仕様定義)
RFC 4041Requirements for Morality Sections in Routing Area Drafts(2005年のジョークRFC)
RFC 4042UTF-9 and UTF-18 Efficient Transformation Formats of Unicode(2005年のジョークRFC)
RFC 4158Internet X.509 Public Key Infrastructure:Certification Path Building
RFC 4250
RFC 4251
RFC 4252
RFC 4253
RFC 4254
RFC 4255
RFC 4256
SSH
RFC 4271BGP
RFC 4325Internet X.509 Public Key Infrastructure Authority Information Access Certificate Revocation List (CRL) Extension(RFC 5280により破棄)
RFC 4346TLS
RFC 4627The application/json Media Type for JavaScript Object Notation (JSON)(RFC 7159により破棄)
RFC 4630Update to DirectoryString Processing in the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile(RFC 3280を更新)
RFC 4635HMAC SHA TSIG Algorithm Identifiers
RFC 4824手旗信号によるIPデータグラムの転送(SFSS)(2007年のジョークRFC)
RFC 4844The RFC Series and RFC Editor
RFC 4960SCTP
RFC 5280Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile
RFC 5321SMTP
RFC 5322Internet Message Format
RFC 5652暗号メッセージ構文 (CMS)
RFC 5741RFC Streams, Headers, and Boilerplates
RFC 5914Trust Anchor Format
RFC 5937Using Trust Anchor Constraints during Certification Path Processing
RFC 6818Updates to the Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile(RFC 5280を更新)
RFC 6844DNS Certification Authority Authorization (CAA) Resource Record
RFC 6895Domain Name System (DNS) IANA Considerations
RFC 7158The JavaScript Object Notation (JSON) Data Interchange Format(RFC 7159により破棄)
RFC 7159The JavaScript Object Notation (JSON) Data Interchange Format
RFC 7168Hyper Text Coffee Pot Control Protocol for Tea Efflux Appliances (HTCPCP-TEA)
RFC 7230Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
RFC 7231Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
RFC 7232Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests
RFC 7233Hypertext Transfer Protocol (HTTP/1.1): Range Requests
RFC 7234Hypertext Transfer Protocol (HTTP/1.1): Caching
RFC 7235Hypertext Transfer Protocol (HTTP/1.1): Authentication
RFC 7382Template for a Certification Practice Statement (CPS) for the Resource PKI (RPKI)
RFC 7519JSON Web Token (JWT)
RFC 7540Hypertext Transfer Protocol Version 2 (HTTP/2)
RFC 7541HPACK: Header Compression for HTTP/2
RFC 8058Signaling One-Click Functionality for List Email Headers - メールマガジンメーリングリスト等において、受信者(購読者)がワンクリックのみで登録を解除(配信を停止)できるデータを、メールヘッダーに記載する方法

脚注

注釈

出典

関連項目

外部リンク