インターネット・プロトコル・スイート (英 : Internet protocol suite )は、インターネット を含む多くのコンピュータネットワーク において、標準的に利用されている通信プロトコル のセットである。TCP/IPプロトコル あるいは単にTCP/IP (Transmission Control Protocol / Internet Protocol ) とも呼ばれる。従来のインターネットワーキング の手法は、このTCP/IPプロトコルに基づいている[ 1] 。元々は確固たる仕様や定義はなく、IP やTCP やUDP などの仕様中に個々に、あるいは暗黙の前提として存在していたものだが、後から RFC 1122 で1つにまとめられた。これに対応する参照モデル はTCP/IPモデル と呼ばれる。
概要
有線、無線などの物理層の違い、イーサネット 、モデム によるシリアル通信 などの物理層とデータリンク層の違い、異なるベンダや、異なるオペレーティングシステム (OS) の間であっても、インターネット・プロトコル・スイートに対応している機器同士であれば、相互に通信することが可能となる。プロトコルの仕様は公開されている[ 注釈 1] 。
インターネット・プロトコル・スイートにおけるデータ通信のモデル は、TCP/IPモデル (TCP/IP参照モデル)と呼ばれ、アプリケーション層、トランスポート層、インターネット層、リンク層の4層で構成されている[ 2] 。DARPAモデル という呼称でも知られるが、これはインターネット の研究開発を行っていたDARPA に由来する[ 3] 。
各機器は、下位層プロトコル と上位層プロトコル の両方に従って通信を行っている。上位層はより理論的なデータを処理する一方で、データを物理的に転送するためには、下位層プロトコルに従う必要がある。そのため、データを転送する際は、上位層のプロトコルに基づくデータの先頭と末尾に、より下位層のプロトコルに基づくヘッダとフッタを付与していく(カプセル化 )。この階層的な通信規約の設計をプロトコルスタック と呼ぶことがある。
歴史
現在のIPネットワーキングは、1960年代 と1970年代 に発展し始めたLocal Area Network (LAN) とインターネットの開発が統合されたものである。それは1989年 のティム・バーナーズ=リー によるWorld Wide Web の発明と共にコンピュータ 及びコンピュータネットワーク に革命をもたらした。
インターネット・プロトコル・スイートの最初期の定義は、G. Delocheが記述し、1969年5月に RFC 8 として発行された、ARPA Network Functional Specificationsにまで遡ることができる[ 4] 。
インターネット・プロトコル・スイートは、1970年代初期に米国国防高等研究計画局 (DARPA) による研究から登場した。1960年代後半に先駆的なARPANET の構築後、DARPAはその他様々なデータ転送技術における研究を開始した。1972年 、ロバート・カーン (Robert E. Kahn) はDARPA情報処理技術室 (IPTO: Information Processing Technology Office) に雇われた。そこで彼は衛星パケット網と地上の無線パケット網の研究に取り組み、それらを横断して通信ができる事の価値を認識した。1973年 春、ヴィントン・サーフ (Vinton Cerf。その当時既に完成していたARPANET Network Control Program (NCP) プロトコルの開発者)は、ARPANETの次世代プロトコルを設計する事を目標に、オープン・アーキテクチャ 相互接続モデルに取り組むためにカーンと合流した。
1973年の夏までに、カーンとサーフはすぐに基本的な改良を解決した。ネットワーク・プロトコル間の違いは、共通の相互接続ネットワーク・プロトコルを用いる事で隠蔽された。そしてARPANETにおいては、信頼性についてネットワークが責任を持つ代わりに、ホストが責任を持つようになった。サーフはユベール・ジメルマン とルイ・プザン (CYCLADES ネットワーク設計者)が、この設計に対して重要な役割を果たした功績を認めている。
ネットワークの役割を最低限まで減らす事で、それらの特性が何であろうとも、ほぼ全てのネットワークを統合できるようになった。それによりカーンの当初の問題も解決した。よく言われる事は、TCP/IP(サーフとカーンの取り組みの最終成果)は「two tin cans and a string」(2つの空き缶と1本の紐、すなわち糸電話 )でも機能するだろうという事である。エイプリルフールネタではあるが、伝書鳩を用いて稼動するための実装案「鳥類キャリアによるIP 」さえ存在する。(RFC 1149 [ 5] [ 6] )
(その他の型のゲートウェイ との混同を避けるためにゲートウェイ から改名された)ルーター と呼ばれるコンピュータはそれぞれのネットワークにインタフェース を提供し、ネットワーク間で行き来するパケット を転送する。ルーターに関する必要条件は RFC 1812
[ 7] で定義された。
その着想は1973–1974年度にスタンフォード大学 のサーフ ネットワーク研究グループによってより詳細な構造が作り上げられ、最初のTCP/IP仕様 RFC 675
[ 8] を生み出した。(PARC Universal Packet プロトコル群を生み出した、ゼロックス パロアルト研究所 における初期のネットワーク研究も、大半が同時期に行われ技術的に重要な影響を与えた。人々はその2つに注目した。)
その後、異なったハードウェア上の実用プロトコルを開発するため、DARPAはBBNテクノロジーズ 、スタンフォード大学およびユニヴァーシティ・カレッジ・ロンドン と契約した。4バージョンが開発された。TCP v1、TCP v2、1978年 春にはTCP v3とIP v3に分離、そして安定版のTCP/IP v4 - これは今日のインターネットでもまだ使われる標準プロトコルである。
1975年 、スタンフォード大学とユニヴァーシティ・カレッジ・ロンドン間で、2拠点のTCP/IP通信試験が実施された。1977年 11月 、アメリカ 、イギリス 、ノルウェー 間で、3拠点のTCP/IP試験が実施された。1978年 から1983年 にかけて、複数の研究施設でその他いくつかのTCP/IPの試作が開発された。1983年1月1日 、ARPANETはTCP/IPへ完全に切り替えられた[ 9] 。
1982年 3月 、アメリカ国防総省は全ての軍用コンピュータ網のためにTCP/IP標準を作成した[ 10] 。
1983年9月 にTCP/IPに対応したUnix系 OSである4.2BSD が登場した。この時期のUnix系OSは大学機関を中心に発展してきた経緯がある。
1985年 、インターネットアーキテクチャ委員会 は、コンピュータ産業のために3日間のTCP/IPワークショップを挙行した。250の業者代表が参加し、TCP/IPの普及を助け、商用利用の増加に繋がった。
1994年 にLinux 1.0が公開され、高価だったUNIX の機能のかなりの部分がオープンソース で利用できるようになった。
1995年 にWindows 95 でTCP/IP, telnet, ftp, ウェブブラウザ 等を標準搭載し、一般的な通信として広く使えるようになった。
1999年 にはWindows 2000 でPOSIX への対応を始め、TCP/IPを始めUNIXにより近いシステムとして提供している[ 11] 。
2001年 Macintosh のOSであるMac OS X がUNIXを土台としている。
2005年 11月9日 、アメリカ文化への貢献を称え、カーンとサーフに大統領自由勲章 が授与された。
日本における普及
(上の節で1983年に4.2BSDが登場したことおよび当時は大学を中心に発展した経緯を説明したが)1980年代 後半には日本の大学 でもUnix系OSが用いられているところでは大学内ネットワークにTCP/IPが用いられるようになった。1988年 8月2日 、JUNET に大きく関わった村井純 によって日本からのインターネットへのTCP/IP接続試験が行われた。
1989年 9月 、最初の日本語による解説書である西田竹志 著「TCP/IP」が発行された。
1997年 3月 、全国銀行協会 連合会が傘下銀行の企業・銀行相互間のオンラインデータ交換において使用できる新しい標準通信プロトコルとして、全銀TCP/IP手順 を制定した。それまで利用されてきた全銀手順 に代わり、電子データ交換 でもTCP/IPが使われるようになった。
こうして日本でも次第にインターネットを取り巻く環境の整備が進むとともにTCP/IPが普及していくことになった。
(日本におけるインターネットの歴史については日本のインターネット を参照)
インターネット・プロトコル・スイートの階層
2つのホストが2つのルータ を経由してネットワーク接続する場合に、それぞれのホップで使用する階層毎に対応する階層同士で論理的に接続される概念図
任意のデータがUDP データグラム中に、UDP データグラムがIP パケット中にカプセル化される概念図
IP群はプロトコルとサービス をカプセル化 する事によって抽象化する。通常、より上位層のプロトコルはその目的の達成に役立てるために、より下位層のプロトコルを用いる。これまで IETF はインターネット・プロトコル・スタックを RFC 1122 で定義された4層から変更した事はない。IETFは、7層からなるOSI参照モデル に従うような試みはせず、また標準化過程 (Standards Track) にあるプロトコル仕様やその他の構造上の文書をOSI参照モデルに対して参照する事もしない。
4. アプリケーション
DNS , TFTP , TLS/SSL , FTP , Gopher , HTTP , IMAP , IRC , NNTP , POP3 , SIP , SMTP , SNMP , SSH , TELNET , ECHO , RTP , PNRP , rlogin , ENRP , OSPF , IS-IS , BGP
3. トランスポート
TCP , UDP , DCCP , SCTP , IL , RUDP , QUIC
2. インターネット
IP上で稼動するOSPFや・TCP上で稼動するBGPなどの(インターネット・)ルーティング・プロトコル もインターネット層の一部であるとも考えられる[ 12] [ 13] [ 14] 。
IP (IPv4 , IPv6 ), ICMP [ 15] , IGMP [ 16]
ARP とRARP はIPの下、リンク層の上で動作するため、それらはどこか中間に属すると考えられる。
1. リンク
イーサネット , Wi-Fi , トークンリング , ARP[ 17] , PPP , SLIP , FDDI , ATM , フレームリレー , SMDS
RFC 3439 では、インターネット構造に関して、第3章の序文に "Layering Considered Harmful (有害とみなされる階層化)" と題された節があり、「階層化」という考え方には概念的、構造的な種々の利点がある一方で、実装面では層単位で同じような最適化が繰り返し発生することで効率的な実装を阻害し複雑化を招いたり、低層部分のみに存在するデータにアクセスできない場面が発生するなど、インターネット・プロトコルの目指す「単純化」という原則に反する場合もあることが明記された[ 18] 。
TCP/IPモデルとOSI参照モデル
いくつかの教科書ではTCP/IPモデルを7層のOSI参照モデルへ対応付ける事を試みた事がある。その対応付けは、インターネット・プロトコル・スイートのリンク層 を物理層 の上のデータリンク層 へ、またインターネット層 はOSI参照モデルのネットワーク層 へ割り当てられる事が多い。それらの教科書は RFC 1122 やその他 IETF の一次情報の意図と矛盾する二次情報である。
IETFは再三にわたりインターネット・プロトコルと構造の開発はOSIに準拠する事は意図しない という事を述べている。
実装
TCP/IP(正確には IP + (TCP or UDP))は今日、ほとんどの商用および非商用のOS に実装されている。ほとんどのOSの利用者は、TCP/IPを利用するために探したり、自分で実装する必要は無い。ただし、OSを提供していない新しいCPUや、FPGAの上にCPUを設計して新しいOSを作る場合には、TCP/IPを再設計するか、Linux, BSDなどのオープンソースのインターネット・プロトコル・スイートをコンパイルできるようにする場合がある。
特に広く使われている実装はバークレーソケット である。全ての商用UNIX、BSD系 のPC-UNIX 、BSDに基づいたmacOS はもとより、LinuxなどのUnix系OSや、Unix系でなかったWindowsなどでも参考にしている。
その他の実装には、組込みシステム のために設計されたオープンソースのプロトコル・スタックであるlwIP 、アマチュア無線のパケット通信 で使われているKA9Q(en:KA9Q 、KA9Qは開発者Phil Karnのコールサインである)、TOPPERS のASPカーネル などに搭載可能なTINET[ 19] などがある。
イントラネット
TCP/IPを使用して構築されたプライベートネットワークをイントラネット と呼び、これは今日のLAN における事実上の標準 と言える。イントラネットで用いられるプロトコルの代表例を下記に挙げる。
追加知識
アンドリュー・S・タネンバウム 『コンピュータネットワーク第4版』日経BP社、2003年。ISBN 978-4822221065 。
Douglas E. Comer 、David L.Stevens 著、村井純, 榎本博之 訳『TCP/IPによるネットワーク構築 Vol.I 原理・プロトコル・アーキテクチャ 第4版』共立出版、2002年。ISBN 978-4320120549 。
Douglas E. Comer, David L.Stevens 著、村井純, 榎本博之 訳『TCP/IPによるネットワーク構築 Vol.II 設計・実装・内部構造』共立出版、1995年。ISBN 978-4320027343 。
Douglas E. Comer, David L.Stevens 著、村井純, 榎本博之 訳『TCP/IPによるネットワーク構築 Vol.III Windowsソケットバージョン クライアントサーバプログラミングとアプリケーション』共立出版、2001年。ISBN 978-4320029996 。
Douglas E. Comer, David L.Stevens 著、村井純, 榎本博之 訳『TCP/IPによるネットワーク構築 Vol.III Linux/POSIXソケットバージョン クライアントサーバプログラミングとアプリケーション』共立出版、2003年。ISBN 978-4320120846 。
Joseph G. Davies, Thomas F. Lee (2003). Microsoft Windows Server 2003 TCP/IP Protocols and Services Technical Reference . ISBN 0-7356-1291-9
Craig Hunt (1998). TCP/IP Network Administration . O'Reilly. ISBN 1-56592-322-7
W・リチャード・スティーヴンス 著、橘康雄, 井上尚司 訳『詳解TCP/IP Vol.1 プロトコル』、ピアソンエデュケーション』2000年。ISBN 978-4894713208 。
W・リチャード・スティーヴンス, ゲーリー・R. ライト 著、徳田英幸, 戸辺義人 訳『詳解TCP/IP Vol.2 実装』ピアソンエデュケーション、2002年。ISBN 4894714957 。
W・リチャード・スティーヴンス 著、中本幸一, 田中伸佳, 石川裕次 訳『詳解TCP/IP Vol.3 トランザクションTCP、HTTP、NNTP、UNIXドメインプロトコル』ピアソンエデュケーション、2002年。ISBN 4894716674 。
Ian McLean (2000). Windows(R) 2000 TCP/IP Black Book . Coriolis Group. ISBN 1-57610-687-X
Michael J. Donahoo、Kenneth L. Calvert:「TCP/IPソケットプログラミング C言語編」、オーム社、ISBN 978-4-274-06519-4 (2003年)。
小口正人:「コンピュータネットワーク入門―TCP/IPプロトコル群とセキュリティ」、サイエンス社、ISBN 978-4781911663 (2007年)。
村山公保:「基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版」、オーム社、ISBN 978-4274050732 (2015年)。
蜷川忠三:「IoT通信性能解析」、コロナ社、ISBN 978-4339009446 (2021年)。
関連項目
脚注
注釈
^ 1980年代の業界バズワードであるオープンシステム (「ネオ ダマ」の「オ」)のいう「オープン」と、ある程度関連している。
出典
^ Stallings, William (2016). Foundations of modern networking : SDN, NFV, QoE, IoT, and Cloud . Florence Agboma, Sofiene Jelassi. Indianapolis, Indiana. ISBN 978-0-13-417547-8 . OCLC 927715441 . https://www.worldcat.org/oclc/927715441
^ R. Braden (October 1989). Requirements for Internet Hosts―Communication Layers (英語). doi :10.17487/RFC1122 . RFC 1122 . 2007年9月15日閲覧 。
^ “The TCP/IP Guide - TCP/IP Architecture and the TCP/IP Model ”. www.tcpipguide.com . 2021年8月23日 閲覧。
^ ARPA Network Functional Specifications (PDF) (英語). May 1969. doi :10.17487/RFC0008 . RFC 0008 。
^ D. Weitzmann (1 April 1990). A Standard for the Transmission of IP Datagrams on Avian Carriers (英語). doi :10.17487/RFC1149 . Request for Comments 1149. 2007年11月20日閲覧 。
^ Bergen Linux User Group (April 2001). “The informal report from the RFC 1149 event ”. 2008年1月18日 閲覧。
^ F. Baker (June 1995). Requirements for IP Routers (英語). doi :10.17487/RFC1812 . Request for Comments 1812. 2008年1月18日閲覧 。
^ Vinton Cerf; Yogen Dalal; Carl Sunshine (December 1974). Specification of Internet Transmission Control Protocol (英語). doi :10.17487/RFC0675 . Request for Comments 675. 2008年1月18日閲覧 。
^ “Internet History ” (英語). The Living Internet . Internet History, Who invented the Internet, When was the Internet invented . 2006年1月30日 閲覧。
^ Ronda Hauben. “From the ARPANET to the Internet ”. TCP Digest (UUCP). 2007年7月5日 閲覧。
^ “Microsoft Releases Windows 2000 to Manufacturing ” (英語). Stories (1999年12月15日). 2017年8月29日 閲覧。
^ Chao, Lee (2009-12-21) (英語). Networking Systems Design and Development . CRC Press. p. 45. ISBN 978-1-4200-9160-1 . https://books.google.com/books?id=MyzNBQAAQBAJ&newbks=0&printsec=frontcover&pg=PA45
^ Chao, Lee (2015-09-22) (英語). Cloud Computing Networking: Theory, Practice, and Development . CRC Press. ISBN 978-1-4822-5482-2 . https://books.google.com/books?id=dtyYCgAAQBAJ&newbks=0&printsec=frontcover&pg=PA46
^ Silva, Mário Marques da (2018-09-03) (英語). Cable and Wireless Networks: Theory and Practice . CRC Press. p. 308. ISBN 978-1-315-36217-5 . https://books.google.com/books?id=kkQPEAAAQBAJ&newbks=0&printsec=frontcover&pg=PA308
^ Requirements for IP Version 4 Routers (英語). June 1995. sec. 4.3. doi :10.17487/RFC1812 . RFC 1812 。
^ Requirements for IP Version 4 Routers (英語). June 1995. sec. 4.4. doi :10.17487/RFC1812 . RFC 1812 。
^ Requirements for IP Version 4 Routers (英語). June 1995. sec. 3.3.2. doi :10.17487/RFC1812 . RFC 1812 。
^ R. Bush; D. Meyer (December 2002). Some Internet Architectural Guidelines and Philosophy (英語). sec. 3. doi :10.17487/RFC3439 . RFC 3439 . 2007年11月20日閲覧 。
^ “TINET ”. TOPPERSプロジェクト . TOPPERS Project, Inc. 2014年3月26日 閲覧。
参考文献
Internet History -- Pages on Robert Kahn, Vinton Cerf, and TCP/IP (reviewed by Cerf and Kahn).
Forouzan, Behrouz A. (2003). TCP/IP Protocol Suite (2nd ed.). McGraw-Hill. ISBN 0-07-246060-1
外部リンク