インターネットプロトコルスイート(TCP/IP)
インターネットプロトコルスイート(Internet protocol suite)は、現代の
コンピュータネットワークにおいて不可欠な、
通信プロトコルの集合体です。一般にTCP/IP(Transmission Control Protocol/
Internet Protocol)とも呼ばれ、
インターネットを含む様々なネットワークで標準的に使用されています。このプロトコル群は、異なるハードウェアや
オペレーティングシステム間での円滑な
通信を可能にする基盤技術として機能しています。
概要
インターネットプロトコルスイートは、有線・
無線LAN、
シリアル[[通信]]といった
物理層や
データリンク層の違い、異なるベンダーやOSの違いを吸収し、相互接続性を実現します。プロトコルの仕様は公開されており、誰でも利用することが可能です。
TCP/IPモデル(TCP/IP参照モデル)は、このプロトコルスイートのデータ
通信モデルであり、アプリケーション層、トランスポート層、
インターネット層、リンク層の4層で構成されています。DARPAモデルという名称も知られていますが、これは
インターネット研究開発を推進したDARPA(米国
国防高等研究計画局)に由来します。
各機器は、下位層と上位層の両方のプロトコルに従って
通信を行います。上位層はアプリケーションレベルのデータを扱い、下位層はデータの物理的な転送を担当します。データ転送の際、上位層のデータには下位層のヘッダとフッタが付加される(カプセル化)ことで、階層的な
通信が実現されます。この階層構造をプロトコルスタックと呼びます。
歴史
現在のIPネットワーキングは、
1960年代から
1970年代にかけて発展したLANと
インターネット開発が統合された結果です。
1989年の
ティム・バーナーズ=リーによる
World Wide Webの発明が、
コンピュータとネットワークに革命をもたらしました。
インターネットプロトコルスイートの初期の定義は、1969年5月にRFC 8として公開されたARPA Network Functional Specificationsにまで遡ります。
1970年代初期には、DARPAによる研究から誕生しました。先駆的な
ARPANET構築後、DARPAは様々なデータ転送技術の研究を開始しました。
1972年には、
ロバート・カーンがDARPA情報処理技術室に加わり、衛星
パケット網と地上の無線
パケット網の研究に取り組み、異なるネットワーク間での
通信の重要性を認識しました。
1973年春には、
ヴィントン・サーフがカーンと合流し、
ARPANETの次世代プロトコル設計に取り組みました。
カーンとサーフは、共通の相互接続ネットワークプロトコルを用いることで、ネットワーク間の違いを隠蔽し、
ARPANETにおいて信頼性の責任をネットワークからホストに移すという基本的な改良を解決しました。サーフはユベール・ジメルマンとルイ・プザン(CYCLADESネットワーク設計者)の貢献も重要であるとしています。これにより、ネットワークの役割を最小限に抑え、ほぼすべてのネットワークを統合することが可能になりました。
TCP/IPは、しばしば「2つの空き缶と1本の紐」でも機能すると言われますが、これはその柔軟性と普遍性を象徴するたとえです。また、エイプリルフールネタとして、伝書鳩を利用した「鳥類キャリアによるIP」(RFC 1149)という実装案も存在します。
ルーターは、異なるネットワーク間の
パケット転送を担う
コンピュータであり、それぞれのネットワークにインターフェースを提供します。
ルーターに関する要件はRFC 1812で定義されています。
1973年から1974年にかけて、
スタンフォード[[大学]]のサーフ ネットワーク研究グループによって詳細な構造が設計され、最初のTCP/IP仕様RFC 675が作成されました。
ゼロックス パロアルト研究所における初期のネットワーク研究も同時期に行われ、技術的に重要な影響を与えました。
DARPAは、異なるハードウェア上での実用プロトコル開発のため、BBNテクノロジーズ、
スタンフォード[[大学]]、
ユニヴァーシティ・カレッジ・ロンドンと契約しました。その結果、TCP v1、TCP v2、TCP v3とIP v3の分離、そして最終的にTCP/IP v4という現在の
インターネットで使われる標準プロトコルが開発されました。
1975年には、
スタンフォード[[大学]]と
ユニヴァーシティ・カレッジ・ロンドン間でTCP/IP
通信試験が実施され、
1977年にはアメリカ、
イギリス、
ノルウェー間での3拠点試験も行われました。
1983年1月1日、
ARPANETはTCP/IPに完全に切り替えられました。
1982年
3月、アメリカ国防総省はすべての軍用
コンピュータ網にTCP/IP標準を適用しました。
1983年9月にはTCP/IPに対応した
Unix系OSである4.2BSDが登場し、
大学機関を中心に発展しました。
1985年、
インターネットアーキテクチャ委員会は、
コンピュータ産業向けに3日間のTCP/IPワークショップを開催し、250の業者代表が参加、TCP/IP普及と商用利用の増加に繋がりました。
1994年には
Linux 1.0が公開され、高価だった
UNIXの機能がオープンソースで利用可能になりました。
1995年にはWindows 95にTCP/IP、telnet、ftp、Webブラウザが標準搭載され、一般に広く普及しました。
1999年のWindows 2000ではPOSIXへの対応が始まり、TCP/IPは
UNIXに近いシステムとして提供されました。
2001年にはMac OS Xが
UNIXを基盤として登場しました。
2005年11月9日、カーンとサーフはアメリカ文化への貢献を称え、
大統領自由勲章を授与されました。
日本における普及
1980年代後半には、日本の
大学でも
Unix系OSが用いられ、
大学内ネットワークにTCP/IPが使用されるようになりました。
1988年8月2日には、JUNETに大きく関わった村井純によって、日本からの
インターネットへのTCP/IP接続試験が行われました。
1989年9月には、最初の日本語による解説書「TCP/IP」が西田竹志によって発行されました。1997年
3月には、
全国銀行協会連合会が全銀TCP/IP手順を制定し、電子データ交換におけるTCP/IPの利用が拡大しました。
このように、日本でも
インターネット環境の整備とともにTCP/IPが普及していきました。
IP群はプロトコルとサービスをカプセル化することで抽象化します。上位層のプロトコルは、その目的を達成するために下位層のプロトコルを利用します。IETFは、RFC 1122で定義された4層構造から
インターネットプロトコルスタックを変更していません。IETFは、7層からなる
OSI参照モデルに従うことはせず、標準化過程にあるプロトコル仕様や構造文書を
OSI参照モデルに対して参照することもありません。
RFC 3439では、
インターネット構造に関して、「有害とみなされる階層化」という節で、階層化には概念的・構造的な利点があるものの、実装面では効率を阻害し複雑化を招く場合もあることが明記されています。
一部の教科書では、TCP/IPモデルを7層の
OSI参照モデルに対応付けようとしていますが、これはRFC 1122やIETFの一次情報と矛盾する二次情報です。IETFは、
インターネットプロトコルの開発はOSIに準拠することを意図していないと繰り返し述べています。
実装
TCP/IP(IP + TCPまたはUDP)は、現在ほとんどの商用および非商用のOSに実装されています。OSの利用者は、TCP/IPを利用するために特別な設定や実装を行う必要はほとんどありません。ただし、新しいCPUやFPGA上に新しいOSを作成する場合には、TCP/IPを再設計するか、
LinuxやBSDなどのオープンソース実装を利用する必要があります。
特に広く使われている実装はバークレーソケットであり、商用
UNIX、BSD系PC-
UNIX、macOS、
Linux、Windowsなどで参考にされています。
その他にも、組込みシステム向けのlwIP、
アマチュア無線の
パケット通信で使われるKA9Q、TOPPERSのASPカーネルに搭載可能なTINETなどがあります。
イントラネット
TCP/IPを使用して構築されたプライベートネットワークをイントラネットと呼びます。これは今日のLANにおける事実上の標準となっています。イントラネットで使用される代表的なプロトコルには、E-mail (SMTP/POP3/IMAP4)、ドメイン・ネーム・システム (DNS)、ハイパーテキスト転送プロトコル (HTTP)、ファイル転送プロトコル (FTP)、
インターネット・リレー・チャット (IRC)、ネットワーク・タイム・プロトコル (NTP)などがあります。
追加知識
参考文献として、アンドリュー・S・タネンバウム著『
コンピュータネットワーク第4版』、Douglas E. ComerとDavid L.Stevens著『TCP/IPによるネットワーク構築』シリーズ、W・リチャード・スティーヴンス著『詳解TCP/IP』シリーズなどがあります。
また、Michael J. Donahoo、Kenneth L. Calvert共著『TCP/IPソケットプログラミング C言語編』、小口正人著『
コンピュータネットワーク入門―TCP/IPプロトコル群とセキュリティ』、村山公保著『基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版』、蜷川忠三著『IoT
通信性能解析』なども参考になります。
関連項目
Internet Engineering Task Force (IETF)
TCPやUDPにおけるポート番号の一覧
OSI参照モデル
エンドツーエンド原理
プロトコルスタック
ns