概要
普段プログラミングをしていくなかで、良いライブラリがなかったから自分で書くことや、そもそも機能の標準仕様について調べる時にRFCを使用することがあるかと思います。
そもそもRFCの正式名称やどうやって決めているの?などからはじめ、インターネットの世界を学びます。
RFCとは
RFCとはRequest for Comments(コメントを求める)の略です。
wikipediaには下記のように記載があり、
もともとは技術仕様を公開し、それについての意見を広く募集してより良いものにしていく観点から始められたようである
(引用:https://ja.wikipedia.org/wiki/Request_for_Comments)
RFCにはIETFのものと、他にもPHP,RUST,Vue.jsなどで存在しているようです。
IETFのURLは→ https://tools.ietf.org/html/ にあります。
日本語訳版があるものもあり、こちらでまとめられています。
→ https://www.nic.ad.jp/ja/tech/rfc-jp-links.html
ただ、最近は翻訳技術が優れているので、google翻訳などの翻訳機能で和訳するのが良いと思います。
IETFとは
IETF(The Internet Engineering Task Force)は、インターネット技術の標準化を推進する任意団体(株式会社やNPO法人のように権利の主体になることができる「法人格」を持たないものの、「組織」としての活動実態をある程度認めることができる団体のこと)です。
参加者は企業ではなく、個人単位での参加になります。
ここが技術仕様としてあるのがよく言うRFCですね。
RFCとして主にまとめているものは
・プロトコル関連: TCP/IP、IPV6、HTTPなど
・メールアプリケーション関連: SMTP、POP、IMAPなど
・ドメイン関連: DNS、DHCPなど
・セキュリティー関連: FEP、公開鍵など
・文字符号その他:UFT-7、UTF-8など
です。
#インターネットの世界の統治〜ISOCとIETF〜
IETFはISOC(Internet Society)に属します。
ISOCは、1992年に設立された国際的非営利組織です。
インターネット関連の標準・教育・方針についてリーダーシップを提供していて、
目的は「全世界のあらゆる人々の利益のため、インターネットのオープンな開発/進歩/利用を保証する」ことです。
インターネットの世界をざっくりまとめると、こんな感じになっています。
上から順に説明すると、(W3Cについては次の章で書きます)
ISOC(Internet Society):インターネット統治のトップ。
IAB (Internet Architecture Board):ISOCがインターネットの技術的・工学的開発を監督するために設置した委員会。
配下に多くのタスクフォースを持つ。代表的なものはIETFとIRTF。
IETF(Internet Engineering Task Force):インターネット技術の標準化を推進する任意団体。RFCを管理している。
IESG(Internet Engineering Steering Group):IETFの活動と標準化プロセスの、技術的な側面についての責任を担っているグループ。IETFを監督する。
IRTF(Internet Research Task Force)はIETFの姉妹団体であり、「長期的視野で小規模の研究グループにより、インターネットのプロトコル、応用、アーキテクチャ、技術など、インターネットの未来の革新に重要と思われる研究を推進する」組織です。
IRTFで議論、検討された結果、IETFでの検討や標準化が必要と判断された場合は、IETFに提案され、標準化に向けた議論、検討が開始されることとなります。
詳細は RFC2014 https://www.ietf.org/rfc/rfc2014.txt
IRSG(Internet Research Steering Group):研究グループの管理をしています。また、IRTFを監督しています。
ICANN(Internet Corporation for Assigned Names and Numbers):ドメイン名やIPアドレスの管理、各プロトコルで使われる名前や番号の管理、DNSルートサーバーシステムの運用、これらに関連するポリシー策定の調整などを行なっています。
Steering Groupは運営という意味です。
#ISOCとW3C
ここまでの話だと、HTMLやCSSの仕様を確認するときはW3Cのドキュメントを確認するけどW3CはISOCはどういう関係なの?と疑問に思うかもしれませんので補足します。
まず、W3C(World Wide Web Consortium)は、World Wide Webで使用される各種技術の標準化を推進する為に設立された標準化団体、非営利団体です。
Web標準とガイドラインの作成を通じて、主にその使命を追求しています。
ISOCとW3Cはどちらも、同じ価値観のもと、インターネットとWebをどのように使用するかを推進するオープンスタンダードの促進に取り組んでいます。
W3CはISOCにより支援され、HTML、CSS、SVGなどのweb標準に取り組んでいます。
例えば、HTMLは、従来IETFでRFCとして標準化されていましたが、HTML 3.2以降はW3Cへと引き継がれました。
これらは独立しつつ、連携しながらWEBの世界の標準化に取り組んでいます。
中でもHTMLやCSSなどを扱っているのがW3Cということです。
そしてそれを支援しているのがISOCという関係です。
#引用・参考
インターネットソサエティ
https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%82%BD%E3%82%B5%E3%82%A8%E3%83%86%E3%82%A3
日本ネットワークインフォメーションセンター
http://rfc-jp.nic.ad.jp/what_is_ietf/ietf_section3.html
ISOCとW3Cに関するFAQ
https://www.w3.org/2009/11/isoc-w3c-faq