Request for Comments
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)」、「標準への草稿 (Draft Standard, DS)」、「インターネット標準 (Internet Standard, STD)」に分けられる(詳しくはインターネット標準を参照のこと)。
- 「情報(Informational, Info)」
- エイプリルフールのジョーク、プロプライエタリなプロトコル、RFC 1591(DNSの構造と権限の委任)のように広く不可欠なものと認められた 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 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 | 相対URL(RFC 3986により破棄) |
RFC 1855 | ネチケットガイドライン |
RFC 1866 | HTML 2.0(RFC 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(URI、URL、URNという概念についての考え方) |
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 |
脚注編集
注釈編集
- ^ 代表的なものとして鳥類キャリアによるIP
出典編集
- ^ “Stephen D. Crocker, How the Internet Got Its Rules, The New York Times, 6 April 2009”. Nytimes.com. (2009年4月7日) 2012年4月3日閲覧。
- ^ Hafner, Katie; Lyon, Matthew (1996). Where Wizards Stay Up Late: The Origins of the Internet.
- ^ Metz, Cade (May 18, 2012). “Meet the man who invented the instructions for the Internet”. Wired 2018年12月18日閲覧。.
- ^ Crocker, Steve (April 7, 1969). RFC 1 .
- ^ 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.
- ^ Leslie Daigle (2010年3月). “RFC Editor in Transition: Past, Present, and Future”. The Internet Protocol Journal (Cisco Systems) 13 (1) 2011年8月17日閲覧。
関連項目編集
- インターネット標準
- Internet Experiment Note (IEN) - インターネットの開発の最初期に発行されていた類似の文書
外部リンク編集
- Request for Comments (RFC) (英語、IETF)
- RFC Editor (英語)
- IETFとRFC (2001.8、江崎浩、社団法人ネットワークインフォメーションセンター(JPNIC))
- インターネットセキュリティに関する RFC (独立行政法人 情報処理推進機構(IPA))
- 槻ノ木隆のBBっとWORDS その65「RFCのプロセス」 (2006.2、槻ノ木隆、BB Watch、Impress Watch)
- RFC日本語版リスト - Ishida Soによるリンク集。
- ジョーク RFC(よっち@ほ~む)