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

脚注 編集

注釈 編集

  1. ^ 代表的なものとして鳥類キャリアによるIP

出典 編集

  1. ^ “Stephen D. Crocker, How the Internet Got Its Rules, The New York Times, 6 April 2009”. Nytimes.com. (2009年4月7日). https://www.nytimes.com/2009/04/07/opinion/07crocker.html?_r=1&em 2012年4月3日閲覧。 
  2. ^ Hafner, Katie; Lyon, Matthew (1996). Where Wizards Stay Up Late: The Origins of the Internet.
  3. ^ Metz, Cade (May 18, 2012). “Meet the man who invented the instructions for the Internet”. Wired. https://www.wired.com/2012/05/steve-crocker/ 2018年12月18日閲覧。. 
  4. ^ Crocker, Steve (1969年4月7日). RFC 1 (Report).
  5. ^ Elizabeth J. Feinler (July–September 2010). “The Network Information Center and its Archives”. Annals of the History of Computing 32 (3): 83–89. doi:10.1109/MAHC.2010.54. 
  6. ^ Leslie Daigle (2010年3月). “RFC Editor in Transition: Past, Present, and Future”. The Internet Protocol Journal (Cisco Systems) 13 (1). http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_13-1/131_rfc.html 2011年8月17日閲覧。 

関連項目 編集

外部リンク 編集