第1章 インターネットの基本となるプロトコルを理解する
TCP/IPの基礎と現状

 インターネットの成立から20年の歳月が流れた.すなわち,インターネットの根幹技術であるTCP/IPも,それだけの月日を生き延びたということである.技術の世界で20年というと,10数世代にも相当する.これだけ長い間TCP/IPが陳腐化することなく使われているのは,その初期設計の良さと実装のしやすさのたまものである.そして,それらは偶然そのような設計になったのではなく,その背後の“文化”が強く影響した必然なのである.

 本章では,このTCP/IP技術について基礎から解説し,VoIP技術を読み解くための道標とするとともに,TCP/IPが受けた文化的影響などについて考察する.

(編集部)

1 はじめに

 ITバブルが崩壊したにもかかわらず,インターネット業界は騒々しい日々が続いている.xDSLやFTTHなどのブロードバンドが急速に普及しており,新たなアプリケーションが注目されている.その中の一つが,インターネットを使用して音声通信を行うVoIP(Voice over IP)である.

 本号の特集はそのVoIPであるが,それに関する記事の前に,VoIP技術をスムーズに理解するための基礎となるTCP/IPの技術について説明する.VoIPのプロトコルには複数のものがあるが,まず,それらの背景となっているプロトコルの文化について言及する.

 そして,ITU-TとIETFというメジャーな標準化組織,そこにおける標準化過程,標準化の結果としての規格書の構成について説明する.また,現在のインターネットのアーキテクチャと,それを実現するTCP/IPプロトコル群について,それらが設計された理念を出発点として解説する.その後,個別のプロトコルをレイヤ別に詳細に説明していく.

2 プロトコルと文化

2.1 二つの文化

 通信プロトコルとは,通信手順のことである.もともとプロトコルは,外交儀礼とか議定書,協定などの意味をもっていた.それが後に,通信の分野で通信手順を意味する言葉として使用されるようになった.しかしプロトコルは,人間の情報処理を研究する認知科学の分野でも使用される.ここでの意味は,人間が何かの課題を達成するために行ったふるまいのことで,その過程で考えたことを言葉で言ってもらい,その行為を分析することをプロトコル分析と呼ぶ.だから,通信プロトコルの勉強をしようと思って,中身を確かめずに「プロトコル分析」という本を注文すると,発話データから何を読むかなどという本がきてしまう.ご注意を.

 さて,ここでは,世の中のメジャーなプロトコルの背景となっている文化を紹介することにしよう.これは,なぜVoIPのプロトコルがいくつもあるのかを理解するのに役立つ.また,なぜインターネットが現在のようなアーキテクチャになったのかも理解できるであろう.

 プロトコルの重要性は,それが共通に使用できることである.異なるコンピュータやOSがネットワークで相互に接続できないことには,それらの利用価値が下がってしまう.そこで,プロトコルの開発を行っている人や会社,政府は,自分の設計開発したプロトコルを世界標準にしようとする.そこには,大きくわけて二つの文化,すなわち,国際電気通信連合のITU-T(International Telecommunication Union - Telecommunication Standardization Sector)文化と,IETF(Internet Engineering Task Force)文化とが存在する.その文化ごとに,設計されるプロトコルは異なる特徴をもつ.

2.2 ITU-T文化

 ITU-T(http://www.itu.int/)は,通信分野のプロトコル標準化を行う国連の一組織である.以前は,国際電信電話諮問委員会CCITT(仏語Comitォe Consultatif International Tォelォegraphique et Tォelォephoniqueの略)と呼ばれていた.このメンバは各国の通信の主官庁(日本では総務省)や主管庁から承認された事業者,学術団体などの団体である.また,各国にITU-Tに対応する組織があり,日本の場合には,(社)電信電話技術委員会TTC(The Telecommunication Technology Committee)がそれにあたる.これは民間標準化機関であるが,総務省によって国際標準のITU-T勧告(ITUでは,プロトコルを標準として承認すると,それを勧告=recommendationという形で出す)に基づく,唯一の国内標準作成機関として認定されている.

 ITU-Tにおける標準化の特徴は,face-to-faceでじっくりと議論をすることである.そして,その承認は郵便投票によって行ってきた.このため,承認には平均で9か月を要していたが,最近では,インターネットの電子メールを利用したりして,これを短縮する努力がなされている.ITU-Tに対応する日本の組織TTCでは,国内標準を決めるだけではなく,そのプロトコルを国際標準としてITU-Tに提案したり,逆にITU-Tで標準となったプロトコルに対応した国内のプロトコルの規定を行う.

 ITU-T文化では,プロトコルの標準化はきわめて真面目に計画的かつ紳士的に行われる.標準化に参加している人たちは,国の代表として,自国の事情や技術を勧告にできるだけ盛り込もうとして努力する.この結果,できあがった規格は豪華絢爛で機能に富み適用範囲が広いものとなる.しかし,そのために大規模で複雑化することもあり,全部を実装することが困難なこともある.

 ITU-Tの勧告名は,分野別にシリーズ化されて分類されている.分野は勧告名の頭文字によって識別される.代表的なシリーズ名を表1に示す.たとえば,VoIPに使用されているプロトコルにH.323勧告というのがあるが,これは,オーディオビジュアル/マルチメディア関連の勧告ということがわかる.また,G.709であれば,伝送システムか音声符号化の勧告であるということがわかる.

〔表1〕ITU-Tの勧告シリーズ
勧告シリーズ名 内 容
Hシリーズ オーディオビジュアル/マルチメディア関連
Gシリーズ 音声符号化方式関連
Qシリーズ ISDNと電話網の交換方式および信号方式に関する勧告
Vシリーズ アナログモデム関連
Tシリーズ G3/G4ファクシミリ関連
Xシリーズ データ通信網に関する勧告
Iシリーズ サービス総合ディジタル網(ISDN)

 わかりにくいのが,改訂されても勧告が同じ番号をもつことである.番号だけではいったいどの勧告の話をしているのかがわからない.そこで,勧告に年度や勧告書の色をつけて区別をすることがある.たとえば,1993年度に承認されたG.708規格ならばG.708(93)と記述することがある.また,1988年の規格ならばその勧告書の色が青なのでブルーブック版と呼ぶこともある.場合によっては,バージョン番号を規格名の後につけることもある.たとえば,H.323のバージョン2の場合は,H.323.2という具合である.

 ITU-Tの標準化組織の構成を図1に示す.それぞれの勧告は,各研究委員会SG(Study Group)によって標準化されたものである.たとえば,H.323を担当しているのは,SG16である.SGの下には作業部会WP(Working Party)がある.

〔図1〕ITU-Tの構成

2.3 IETF文化

1)標準化組織

 一方,IETF(Internet Engineering Task Force)のほうは,誰でも参加できる.手をあげれば,その時点からプロトコルの提案ができる.こちらのほうはITUのような公的標準(De Dure Standard)ではなく,業界の事実上の標準(De Facto Standard)を決める.IETFはインターネット協会ISOC(Internet Society)配下の組織である.ISOCのURLは,http://ww.isoc.org/である.この構成を図2に示す.標準化のおおまかな方向性は,IAB(Internet Activity Board)委員会が示す.IETFは,標準化を行う分野(エリア)別にいくつものワーキンググループWG(Working Group)に別れている.ワーキンググループのメンバに資格はない.ボランティアベースである.規格を提案したい個人は,インターネットドラフトと呼ばれる文書を提出する.これは,寄書(contribution)とも呼ばれる.

〔図2〕ISOCにおける標準化組織

 提案や議論はおもにメーリングリストで行われる.また,年に3回の顔をあわせたミーティングがある.なお,IESG(Internet Engineering Steering Group)は,IETFの各分野の代表で構成される委員会で,ドラフトを公式文書RFC(Request For Comments)として承認したり,IETF活動の管理を行う.RFCについては以下に詳しく説明する.

2)RFC

 IETFの公式文書RFCは,もともと,“このプロトコルのドキュメントにコメントをください”という意味でRequest for Commentsという名前がつけられた.RFCを公開し,それに対して議論とコメントをつのったのである.ここでは,RFCの種類と標準化過程について説明する.

 インターネットドラフトは,標準化のプロセスを経るとRFCという番号のつけられた文書となる.たとえば,RFC791はIPのプロトコルを規定するRFC,RFC793はTCPのプロトコルを規定するRFCである.ただし,すべてのRFCが標準というわけではなく,いろいろな種類のものがある.これらを図3に示す.たとえば,標準化の過程を経ずにプロトコルなどの情報を公開するInformational RFC,研究の結果や実験的な情報を公開するExperimental RFC,プロトコルの適用方法や利用ガイドラインなどの「その時点での最良の方法」を示すBCP(Best Current Practice)のRFCなどがある.また,標準化を行うRFCの場合には,以下のステップを経る.

〔図3〕RFCの種別と標準化過程

i)Proposed Standard

 標準化するプロトコルの最初のステップとなるRFCである.複数の組織で独立した実装があり,相互接続性の確認がなされていることが条件となる.

ii)Draft Standard

 この段階ではすでにプロトコルが広範囲で使用されている.Draft Standardは,仕様として十分に成熟したもので,実質的には標準とみなすことができる.

iii)Standard

 名実ともに標準プロトコルであり,STD(STandarD)シリーズの番号が割り振られる.しかし,現在,STD番号のあるRFCは62個しかない.

 すでに標準であったものが,別の仕様によって使われなくなった場合などには,そのRFCは,Histrical RFCとなる.これらの種別は各RFC文書のヘッダに書かれている.これらすべてのインターネットドラフトやRFCはIETFのWebページで見ることができる.URLはhttp://www.ietf.org/である.

 なお,毎年4月1日発行のRFCはまじめに読んではいけない.たとえば,RFC3251は,IP上で電気を運ぶプロトコルを規定している.RFC3093はファイアウォールでTCP/IPを透過的に通すためのプロトコルを規定している.また,RFC1149は伝書鳩によるIPデータグラムの伝送について既定している.このような点からも,ITU-TとIETFの雰囲気の違いがわかるであろう.

 ITU-Tのほうのドキュメントと異なり,RFCでは,プロトコルが更新されると新たな番号を付与する.新たなRFC文書のヘッダには,どのRFCを置き換えるのかを明記する.したがって,同じプロトコルに異なるバージョンがあっても混同することは少ない.表2に代表的なプロトコルの例を示す.なお,各プロトコルは一つだけのRFCで規定されているわけではなく,複数のRFCにわたっていることがある.ここでは,おもなものだけを示している.

〔表2〕代表的なプロトコルのRFC番号
プロトコル おもなRFC 旧版RFC
IP(Internet Protocol) RFC791 RFC760
ICMP(Internet Control Message Protocol) RFC792 RFC777,760
TCP(Transmission Control Protocol) RFC793 RFC761
UDP(User Datagram Protocol) RFC768 -
DNS(Domain Name System) RFC1035 RFC882,883,973
HTTP(Hyper Text Transfer Protocol) RFC2616 RFC2068
SMTP(Simple Mail Transfer Protocol) RFC2821 RFC821,974,1869
TELNET(TELecommunication NETwork) RFC854 -
FTP(File Transfer Protocol) RFC959 RFC765
SIP(Session Initiation Protocol) RFC3261 RFC2543

3)ラフコンセンサスとランニングコード

 IETFでの標準化のポリシは,二つのキーワードで表すことができる.それは,ラフコンセンサス(Rough Consensus)とラニングコード(Running Code)である.前者は,キーになる人たちの間でだいたい合意できたようであれば,それを承認しようということである.実際,バブル前は,このようにおおらかなものであったが,バブル以降は,騒々しくなってようすがかわってきている.すなわち,参加者が著しく増え,個人よりも企業の戦略が強く働くようになって,いつまでたってもコンセンサスが得られないという混沌とした状態になっているグループもある.

 後者のラニングコードのほうは,インターネットの標準化では実際に動くコード(プログラム)が最重要であるということを意味する.しかも,独立した実装が複数なければ,標準化の舞台にのせてはもらえない.つまり,標準化が開始されたならば,その時点ですでに相互接続のできる実装があり,ドキュメントには相互接続を妨げるようなあいまいさがないということが検証されている.これらは,ITU-Tとは大きく異なる点である.この比較を表3に示す.

〔表3〕ITU-T文化とIETF文化
ITU-T文化 IETF文化
優先事項 プロトコルの仕様 実装(ラニングコード)
プロトコル承認方 投票 ラフコンセンサス
ドキュメントの入手 有料 無料
標準の種類 De Dure Standard
(国際標準)
De Facto Standard
(事実上の標準)

Copyright 2003 村上健一郎