2012/04/09に掲載された記事です
多くのRFCはプロトコルを標準化して相互接続性を確保することを目的としています。「IP」や「TCP」のようなプロトコルも元をたどるとRFCとして標準化されています。ただし、(IEEEなどと比較すると)緩い合意に基づき特に重要な部分に絞って標準化されているため、実際にソフトウェアを作るプログラマーが工夫する余地が多く残っています。単にRFCに書いてあることに従えば相互接続ができるわけではないところがRFCの面白いところで、文章として明記されていない箇所については自分で考えて仕様を決める必要があり、インターネットエンジニアとしての常識力と技術力、自分のソフトウェアこそが正しいのだ、とゴリ押しする度胸などが試されます。ちなみに、インターネットの基本中の基本であるTCPはRFCに書いてあることだけに従ってもインターネットではうまく動作しないケースが多々あると言われています。RFCに準拠しつつ、現実のインターネット上で正常に動作する信頼性の高いソフトウェアを書いたエンジニアは一目置かれる存在です。
RFCにはプロトコル仕様以外を記載した文書も存在します。良くあるのは、すでにRFCで標準化されているプトコロルの運用上の注意点がRFCとして発行されるケースです。比較的緩い合意で動いているインターネットにおいては、往々にして間違った(問題を引き起こしやすい)プロトコルの使い方が横行することがあるためです。
また、変わったRFCとしては RFC1121「Act One - The Poems」のようなポエムなんかもあります。ちなみに、RFC1121著者のジョン・ポステルはRFCによる標準化プロセスを確立した人で「インターネットの神」、ヴィントン・サーフはTCP/IPの設計者の一人で「インターネットの父」などと呼ばれているようです。そして、ジョン・ポステルが死去した際のヴィントン・サーフの追悼文がRFC2468として発行されています。こういった古いRFCを読むと、高度に商業化された現在とは少し違う、インターネットの気持ちがわかるかもしれません。
伝統的に4/1のエイプリルフールには、正式に採番されたジョークRFCも発行されます。毎年楽しみにしている人も多いようです。ジョークといいつつも技術的にマジメに記述されていて、ちゃんと理解するのはなかなか大変です。ちなみに、2012 年のエイプリルフールは以下の 2 本でした。
- RFC6592: The Null Packet(非存在パケット)
- RFC にもしばしば登場するNullの概念ですが、存在しないパケットとはどのようなパケットであるのか定義するRFCはこれまで存在しませんでした。そこで「Null Packet」を明確に定義します。
- RFC6593: Service Undiscovery Using Hide-and-Go-Seek for the Domain Pseudonym System (DPS)
- (DPS実現のためのサービスかくれんぽ)
- DNS(ドメイン名システム)のSRVレコードを利用するなどの手法でサービスディスカバリーが実現でき、ファイル共有やプリンタ共有などのサービスを自動的に検出できます。しかし、世の中には発見されたくないサービスだってあります。このようなサービスのためにDPS(ドメイン偽名システム)を定義します。
注1 Null はコンピュータの世界でしばしば「何もない」ことを意味します。