アプリケーション層には非常に多くのプロトコルがあります。おそらくRFCとして公式に規格化されているプロトコルより、特定の企業システムやネットワークアプリケーションごとに定義された独自プロトコルのほうが多いでしょう。トランスポート層以下のプロトコルはOSやネットワーク機器の標準機能で、そこに手を入れるのは難しいからでしょう。

 例えばIPv6が出始めの頃は、ルーターがプロトコル番号41(IPv6)を認識せず、パケットを廃棄してしまうケースがよくありました。新しい何かのプロトコルを策定しようとすると、そういった問題に遭遇します。

 そのためトランスポートに枯れたTCP/UDPを利用し、アプリケーション層で独自のプロトコルを考えるほうが対応しやすいのです。

▼RFC
インターネットで使うプロトコルなどの技術仕様文書です。番号で管理され、多くのプロトコルの標準仕様がこの文書で規定されています。RFCはRequest For Commentsの略で、IETF(Internet Engineering Task Force)が管理しています。
▼難しいから
例えば「IPv10」や「NgTCP」とでも呼ぶようなプロトコルを作っても、通信経路すべてのネットワーク機器やOSが対応しないと通信できないからです。

テキストで表現される

 もう1つ、アプリケーション層のプロトコルヘッダーはほとんどテキストで表現されているという特徴があります(図6-1)。これはトランスポート層以下のプロトコルヘッダーが、ビットやバイト単位で表現されているのと対照的です。

図6-1●アプリケーション層のプロトコルヘッダー
アプリケーション層のプロトコルヘッダーはテキストで構成されているものが多い。メールのSMTPヘッダー、WebのHTTPヘッダーなどだ。ともにBNF記法と呼ばれる形式で記述方法が規定されている。様々なヘッダーがあり、L2~4より情報量が一気に増える。
[画像のクリックで拡大表示]

 HTTPヘッダーもSMTPヘッダーも、すべてテキストで人間が読める形式です。テキストで記述することにより、開発やデバッグが容易になるという利点があります。

 またこうした記述のルールは、BNF記法で定義されています。BNF記法で定義したHTTPが広がったため、多くの人がHTTPと同様な形でプロトコルを策定した結果、大半のプロトコルはヘッダーをテキストで表現するようになったと筆者は想像しています。

▼BNF
Backus-Naur Formの略です。プログラミング言語の仕様記述などに使われます。

この先は会員の登録が必要です。有料会員(月額プラン)は申し込み初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら