インターネットプロトコルスイート(一般にTCP/IPとして知られる)は、インターネットや類似のコンピュータネットワークで使用される通信プロトコルを機能基準に基づいて整理するためのフレームワークです。このスイートの基盤となるプロトコルは、伝送制御プロトコル(TCP)、ユーザーデータグラムプロトコル(UDP)、およびインターネットプロトコル(IP)です。このネットワークモデルの初期バージョンは、米国国防総省の 国防高等研究計画局(DARPA)が研究開発資金を提供していたため、国防総省(DoD)インターネットアーキテクチャモデルとして知られていました。
インターネット プロトコル スイートは、データのパケット化、アドレス指定、送信、ルーティング、受信方法を指定するエンドツーエンドのデータ通信を提供します。この機能は、各プロトコルのネットワーク範囲に応じて関連するすべてのプロトコルを分類する4 つの抽象化レイヤーに整理されています。 [ 1 ] [ 2 ]特定のアプリケーションに対するレイヤーの実装は、プロトコル スタックを形成します。最下位から最上位まで、レイヤーは、単一のネットワーク セグメント (リンク) 内にとどまるデータの通信方法を含むリンク レイヤー、独立したネットワーク間のインターネット ワーキングを提供するインターネット レイヤー、ホスト間の通信を処理するトランスポート レイヤー、およびアプリケーションのプロセス間のデータ交換を提供するアプリケーション レイヤーです。
インターネットプロトコルスイートとその構成プロトコルの基盤となる技術標準は、インターネット技術タスクフォース(IETF)によって維持管理されています。インターネットプロトコルスイートは、より包括的な汎用ネットワークシステムの参照フレームワークであるOSIモデルよりも以前に存在していました。

インターネット プロトコル スイートは、1960 年代後半に国防高等研究計画局 ( DARPA ) が後援したコンピュータ ネットワークの研究開発に端を発しています。1968 年 8 月、 BBN は、現代のインターネットの前身であるARPANET用のインターフェース メッセージ プロセッサ(IMP)を構築する企業としてARPAに選ばれました。 [ 3 ] [ nb1 ] IMP は、今日ルーターとして知られるゲートウェイの最初の世代でした。Frank HeartとBob Kahnのリーダーシップの下、1969 年 9 月から 12 月にかけて、約 100 万米ドルで 4 台の IMP が製造されました。[ 5 ] [ 6 ]最初の IMP は1969 年 9 月にカリフォルニア大学ロサンゼルス校に出荷され、2 台目は1 か月後にスタンフォード研究所に出荷されました。 [ 7 ] 2 つの IMP 間の最初のメッセージは「LO」、つまり音声的には「Hello」でしたが、UCLA の研究者が「LOGIN」コマンドの入力を完了する前に SRI ホストがクラッシュしました。[ 8 ] [ 9 ]
DARPAが1969年に先駆的なARPANETを開始した後、スティーブ・クロッカーはホスト間プロトコルであるネットワーク制御プログラム(NCP)を開発した「ネットワークワーキンググループ」を設立した。[ 10 ] 1970年代初頭、DARPAはモバイルパケット無線、パケット衛星サービス、ローカルエリアネットワーク、および公共および民間のドメインにおけるその他のデータネットワークなど、他のいくつかのデータ伝送技術に取り組み始めた。1972年、ボブ・カーンはDARPA情報処理技術局に加わり、衛星パケットネットワークと地上無線パケットネットワークの両方に取り組み、両方で通信できることの価値を認識した。1973年の春、スタンフォード大学のヴィントン・サーフは、インターネットワーキングを可能にするARPANETの次世代プロトコルの設計という目標でカーンと協力し始めた。[ 11 ] [ 12 ]彼らは、サーフが議長を務める国際ネットワークワーキンググループ(INWG)を通じて、国際研究コミュニティの経験を活用した。INWGには、ARPANETコミュニティ、ゼロックスPARC、英国、フランスの研究者が含まれていた。[ 13 ] [ 14 ] [ 15 ]
1973年の夏、カーンとサーフは、ローカルネットワークプロトコル間の違いを共通のインターネットワークプロトコルを使用することで隠蔽し、既存のARPANETプロトコルのようにネットワークが信頼性の責任を負うのではなく、この機能をホストに委任するという根本的な再定式化に取り組んだ。[ 15 ]サーフとカーンは、1974年5月に発表されたこの設計に重要な影響を与えたINWGの数名のメンバーに感謝している。[ 16 ]この伝送制御プログラムの最初の仕様は、 1974年12月にスタンフォード大学のサーフ、ヨーゲン・ダラル、カール・サンシャインによって書かれた。 [ 17 ]
DARPAは1975年にBBN Technologies、スタンフォード大学、ユニバーシティ・カレッジ・ロンドンと契約し、複数のハードウェア・プラットフォーム上でプロトコルの運用バージョンの開発を開始した。 [ 18 ]いくつかのバージョンは、インターネット実験ノート(IEN)シリーズを通じた議論によって開発された。 [ 19 ]当初、後のプロトコル・スイートの前身である伝送制御プログラムは、信頼性の高いバイト・ストリーム・サービスのみを提供し、データグラムは提供しなかった。[ 20 ]プロトコルの経験が増えるにつれて、協力者たちは、機能のレイヤーを個別のプロトコルに分割し、データグラム・サービスに直接アクセスできるようにすることを推奨した。支持者には、ゼロックスPARCのボブ・メトカーフ、ヨーゲン・ダラル、ジョン・ショックなどが含まれる。 [ 21 ] [ 22 ] [ 23 ]パケット音声作業に必要としていたダニー・コーエンも支持した。南カリフォルニア大学情報科学研究所のジョナサン・ポステルは、インターネット開発を記録し、促進してきた技術的かつ戦略的な文書シリーズであるRequest for Comments (RFC)を編集した。 [ 24 ]ポステルは、「我々は階層化の原則に違反することで、インターネットプロトコルの設計を台無しにしている」と述べた。[ 25 ]異なるメカニズムをカプセル化することで、上位層が下位層から必要なものだけをアクセスできる環境を作ることを意図していた。モノリシックな設計は柔軟性に欠け、スケーラビリティの問題につながる。1978年に書かれたバージョン 4では、ポステルは伝送制御プログラムを 2 つの独立したプロトコルに分割した。コネクションレス層としてのインターネットプロトコル(IP) と、信頼性の高いコネクション指向サービスとしての伝送制御プロトコル(TCP) である。[ 26 ] [ 27 ] [ 28 ] [ nb 2 ]

ネットワークの設計には、エンドノード間でトラフィックを効率的に送信およびルーティングする機能のみを提供し、その他のすべてのインテリジェンスはネットワークのエッジ、つまりエンドノードに配置する必要があるという認識が含まれていました。このエンドツーエンドの原則は、ドナルド・デイヴィスのアイデアに基づいて、ルイ・プーザンとヒューバート・ツィンマーマンがCYCLADESネットワークで開拓しました。[ 30 ] [ 31 ]この設計を使用すると、他のローカル特性に関係なく、同じ原則を使用する他のネットワークをARPANETに接続することが可能になり、カーンの当初のインターネットワーキングの問題が解決されました。TCPの最初のゲートウェイソフトウェアを書いたバージニア・トラバースは、ユニバーシティ・カレッジ・ロンドンや、大西洋衛星ネットワーク接続のためのオスロのノルウェー国防研究所など、大規模なテストに必要なポイントにソフトウェアをインストールするために、米国とヨーロッパのサイトを数か月かけて旅しました。[ 34 ]
インターネットプロトコルバージョン4(IPv4)は1983年にARPANETに導入され、インターネットで使用されるネットワーク層プロトコルを形成しました。当初はDODインターネットアーキテクチャモデル[ 35 ]と呼ばれていましたが、伝送制御プロトコルとともにTCP/IPとして一般的に知られるようになりました。
1975年には、スタンフォード大学とユニバーシティ・カレッジ・ロンドン間で2つのネットワークによるIP通信テストが実施された。1977年11月には、米国、英国、ノルウェーの拠点間で3つのネットワークによるIPテストが実施された。1978年から1983年にかけて、複数の研究センターで他のいくつかのIPプロトタイプが開発された。[ 19 ]
ルーターと呼ばれるコンピュータには、各ネットワークへのインターフェースが備わっている。ルーターはネットワークパケットをネットワーク間で送受信する。[ 36 ]元々ルーターはゲートウェイと呼ばれていたが、他の種類のゲートウェイとの混同を避けるために用語が変更された。[ 37 ]
1982 年 3 月、米国国防総省は TCP/IP をすべての軍事コンピュータ ネットワークの標準として宣言しました。[ 38 ] [ 39 ] [ 40 ]同年、ノルウェー ( NORSARおよびNDRE ) とユニバーシティ カレッジ ロンドンのPeter Kirsteinの研究グループがこのプロトコルを採用しました。[ 41 ] ARPANET のNCPから TCP/IP への移行は、新しいプロトコルが恒久的にアクティブ化された 1983 年 1 月 1 日の旗の日に正式に完了しました。[ 38 ] [ 42 ]
1985年、インターネット諮問委員会(後にインターネットアーキテクチャ委員会)は、コンピュータ業界向けに3日間のTCP/IPワークショップを開催し、250社のベンダー代表が参加し、プロトコルの普及を促進し、商用利用の増加につながった。1985年、最初のInterop会議は、TCP/IPのより広範な採用によるネットワークの相互運用性に焦点を当てた。この会議は、初期のインターネット活動家であるダン・リンチによって設立された。当初から、IBMやDECなどの大企業が会議に参加した。[ 43 ] [ 44 ]
IBM、AT&T、DECは、競合する独自のプロトコルを持っていたにもかかわらず、TCP/IPを採用した最初の大企業でした。IBMでは、1984年からバリー・アップルマンのグループがTCP/IPの開発を行いました。彼らは社内政治を乗り越え、MVS、VM、OS/2などのさまざまなIBMシステム向けのTCP/IP製品を次々と提供しました。同時に、FTP SoftwareやWollongong Groupなどのいくつかの小規模企業が、 DOSおよびMicrosoft Windows向けのTCP/IPスタックの提供を開始しました。[ 45 ]最初のVM/CMS TCP/IPスタックはウィスコンシン大学から生まれました。[ 46 ]
初期の TCP/IP スタック実装で有名なプログラマーもいます。IBM リサーチの Jay Elinsky と Oleg Vishnepolsky は、それぞれ VM/CMS と OS/2 用のソフトウェアを作成しました。[ 47 ] 1984 年、MITの Donald Gillies は、1983~84 年に MIT の John Romkey が保守していた IP/PacketDriver レイヤー上で動作するntcpマルチ接続 TCP を作成しました。Romkey は 1986 年に FTP Software を設立した際にこの TCP を活用しました。 [ 48 ] [ 49 ] 1985 年以降、Phil Karn はアマチュア無線システム用のマルチ接続 TCP アプリケーション (KA9Q TCP) を作成しました。[ 50 ]
TCP/IPの普及は、1989年6月にカリフォルニア大学バークレー校がBSD UNIX向けに開発したTCP/IPコードをパブリックドメインに公開することに同意したことでさらに加速した。IBMを含む様々な企業ベンダーが、このコードを商用TCP/IPソフトウェアに組み込んだ。1990年代前半に消費者の間で主流だったPCオペレーティングシステムであるWindows 3.1では、ピーター・タタムがリリースしたTrumpet Winsock TCP/IPスタックが、家庭ユーザーにインターネットをもたらす鍵となった。Trumpet Winsockは、シリアル接続(SLIPまたはPPP)上でTCP/IP操作を可能にした。当時の一般的な家庭用PCには、RS-232ポートを介して接続されたHayes互換の外部モデムがあり、 8250または16550 UARTを備えていたため、このタイプのスタックが必要だった。その後、マイクロソフトはWindows for Workgroups 3.11向けに独自のTCP/IPアドオンスタックをリリースし、Windows 95にはネイティブスタックを搭載しました。これらの出来事により、IBMのSystems Network Architecture (SNA)を含むマイクロソフトベースのネットワーク、およびDigital Equipment CorporationのDECnet、Open Systems Interconnection(OSI)、Xerox Network Systems (XNS)などの他のプラットフォームにおいて、 TCP/IPが他のプロトコルよりも優位に立つことが確固たるものとなりました。
それにもかかわらず、1980年代後半から1990年代初頭にかけて、 OSIモデルとインターネットプロトコルスイートのどちらの標準が最良かつ最も堅牢なコンピュータネットワークをもたらすかという問題で、エンジニア、組織、国家の間で意見が二分された。[ 51 ] [ 52 ] [ 53 ]
インターネットプロトコルスイートとその構成プロトコルの基盤となる技術標準は、インターネット技術タスクフォース(IETF)に委任されている。[ 54 ] [ 55 ]
インターネットプロトコルスイートの特徴的なアーキテクチャは、そのコア機能を構成するプロトコルの動作範囲に大きく分割されている点です。スイートの定義仕様はRFC 1122と1123で、リンク層、IP層、トランスポート層、アプリケーション層の4つの抽象化層(および関連プロトコル)とサポートプロトコルについて概説しています。[ 1 ] [ 2 ] IETFはこの構造を一度も変更していないため、これらの仕様は長年にわたって有効です。このようなネットワークモデルとして、インターネットプロトコルスイートは、一般的なネットワークシステムのためのより包括的な参照フレームワークであるOSIモデルよりも先に登場しました。[ 53 ]
IPv4アドレス枯渇などの問題に対処するために、後継のインターネットプロトコルバージョン6 (IPv6)が開発されました。[ 56 ]


エンドツーエンドの原則は、時間の経過とともに進化してきました。その当初の表現では、状態の維持と全体的なインテリジェンスはエッジにあり、エッジを接続するインターネットは状態を保持せず、速度とシンプルさに重点を置いていると想定されていました。ファイアウォール、ネットワークアドレス変換、Webコンテンツキャッシュなどの現実世界のニーズにより、この原則は変更を余儀なくされました。[ 57 ]
堅牢性の原則は、「一般に、実装は送信動作においては保守的であり、受信動作においては寛容でなければならない。つまり、整形式のデータグラムを送信することに注意を払う必要があるが、解釈可能なデータグラムであれば何でも受け入れなければならない(例えば、意味が明確な技術的エラーには異議を唱えない)。」と述べている。[ 58 ]: 23「この原則の2番目の部分もほぼ同じくらい重要である。他のホスト上のソフトウェアには、合法ではあるが不明瞭なプロトコル機能を利用することが賢明でない欠陥が含まれている可能性がある。」[ 1 ]: 13
カプセル化は、プロトコルとサービスを抽象化するために使用されます。カプセル化は通常、プロトコル群を一般的な機能のレイヤーに分割することと整合しています。一般的に、アプリケーション(モデルの最上位レベル)は、一連のプロトコルを使用してデータを下位レイヤーに送信します。データは各レベルでさらにカプセル化されます。
初期のアーキテクチャ文書であるRFC 1122と1123は、「インターネットホストの要件」というタイトルで、階層化よりもアーキテクチャの原則を重視しています。[ 59 ] RFC 1122/23は、レイヤーを参照するセクションで構成されていますが、文書には他の多くのアーキテクチャの原則も参照されており、階層化は強調されていません。レイヤーには番号ではなく名前が付けられており、次のように4層モデルが大まかに定義されています。[ 1 ] [ 2 ]
リンク層のプロトコルは、ホストが接続されているローカルネットワーク接続の範囲内で動作します。この領域はTCP/IPではリンクと呼ばれ、スイートの中で最も下位のコンポーネント層です。リンクには、ルータを経由せずにアクセスできるすべてのホストが含まれます。したがって、リンクのサイズはネットワークハードウェアの設計によって決まります。原則として、TCP/IPはハードウェアに依存しないように設計されており、事実上あらゆるリンク層技術の上に実装できます。これには、ハードウェア実装だけでなく、仮想プライベートネットワークやネットワークトンネルなどの仮想リンク層も含まれます。
リンク層は、同一リンク上の2つの異なるホストのインターネット層インターフェース間でパケットを転送するために使用されます。リンク上でのパケットの送受信プロセスは、ネットワークカードのデバイスドライバ、ファームウェア、または専用チップセットによって制御できます。これらのチップセットは、フレーミングなどの機能を実行してインターネット層パケットを送信用に準備し、最終的にフレームを物理層に送信して伝送媒体に転送します。TCP/IPモデルには、インターネットプロトコルで使用されるネットワークアドレス指定方式を、メディアアクセスコントロール(MAC)アドレスなどのリンク層アドレスに変換するための仕様が含まれています。ただし、それより下のレベルの他のすべての側面は、暗黙的に存在するものと想定されており、TCP/IPモデルでは明示的に定義されていません。
TCP/IPモデルのリンク層は、OSIモデルの第2層において対応する機能を持つ。
インターネットワーキングでは、送信元ネットワークから宛先ネットワークへデータを送信する必要があります。このプロセスはルーティングと呼ばれ、階層型IPアドレスシステムを用いたホストのアドレス指定と識別によって実現されます。インターネット層は、異なるIPネットワーク上に存在するホスト間で、信頼性の低いデータグラム伝送機能を提供します。これは、データグラムを適切なネクストホップルータに転送し、そこから宛先へ中継することで実現されます。インターネット層は、複数のネットワークをまたいでパケットを送信する役割を担っています。この機能により、インターネット層は異なるIPネットワーク間の相互接続、すなわちインターネットワーキングを可能にし、インターネットそのものを構築します。
インターネット層は、様々なトランスポート層プロトコルを区別しません。IPは、様々な上位層プロトコルのデータを伝送します。これらのプロトコルはそれぞれ固有のプロトコル番号で識別されます。例えば、インターネット制御メッセージプロトコル(ICMP)とインターネットグループ管理プロトコル(IGMP)は、それぞれプロトコル1と2です。
インターネットプロトコルはインターネット層の主要構成要素であり、ネットワークホストを識別し、ネットワーク上でホストの位置を特定するための2つのアドレス体系を定義しています。ARPANETとその後継であるインターネットの元のアドレス体系は、インターネットプロトコルバージョン4(IPv4)です。IPv4は32ビットのIPアドレスを使用するため、約40億のホストを識別することができます。この制限は、128ビットアドレスを使用するインターネットプロトコルバージョン6 (IPv6)の標準化により、1998年に解消されました。IPv6の実運用実装は、2006年頃に登場しました。
トランスポート層は、アプリケーションがタスク固有のデータ交換に使用するデータチャネルを確立します。この層は、基盤となるネットワークやユーザーデータの構造、情報交換のロジスティクスに依存しないエンドツーエンドのメッセージ転送サービスという形で、ホスト間の接続を確立します。トランスポート層における接続性は、TCPで実装されるコネクション指向型と、UDPで実装されるコネクションレス型に分類できます。この層のプロトコルは、エラー制御、セグメンテーション、フロー制御、輻輳制御、およびアプリケーションアドレス指定(ポート番号)を提供する場合があります。
アプリケーションにプロセス固有の伝送チャネルを提供するために、このレイヤーはネットワークポートの概念を確立します。これは、アプリケーションが必要とする各通信チャネルに個別に割り当てられる番号付きの論理構造です。多くの種類のサービスにおいて、これらのポート番号は標準化されているため、クライアントコンピュータはサービス検出やディレクトリサービスを介さずに、サーバコンピュータの特定のサービスにアクセスできます。
IPはベストエフォート型の配信しか提供しないため、一部のトランスポート層プロトコルは信頼性を提供する。
TCPは、信頼性の高いバイトストリームを提供する上で、数多くの信頼性の問題を解決するコネクション指向プロトコルです。
より新しいストリーム制御伝送プロトコル(SCTP)もまた、信頼性の高いコネクション指向型の伝送メカニズムです。TCPのようにバイトストリーム指向ではなく、メッセージストリーム指向であり、単一の接続上で複数のストリームを多重化して伝送します。また、マルチホーミングにも対応しており、接続の終端を複数のIPアドレス(複数の物理インターフェースを表す)で表現できるため、いずれかのIPアドレスが故障しても接続が中断されることはありません。SCTPは当初、電話アプリケーション( IP上でSS7を伝送するため)向けに開発されました。
信頼性は、高レベルデータリンク制御(HDLC)などの信頼性の高いデータリンクプロトコル上でIPを実行することによっても実現できる。
ユーザーデータグラムプロトコル(UDP)は、コネクションレスのデータグラムプロトコルです。IPと同様に、ベストエフォート型の信頼性の低いプロトコルです。信頼性は、チェックサムアルゴリズムを使用したエラー検出によって確保されます。UDPは通常、ストリーミングメディア(オーディオ、ビデオ、 VoIPなど)のように、信頼性よりも時間通りの到着が重要なアプリケーション、または、DNSルックアップのような単純なクエリ/レスポンスアプリケーションで使用されます。このようなアプリケーションでは、信頼性の高い接続を確立するためのオーバーヘッドが不釣り合いに大きくなります。リアルタイムトランスポートプロトコル(RTP)は、UDP上で使用されるデータグラムプロトコルで、ストリーミングメディアなどのリアルタイムデータ向けに設計されています。
特定のネットワークアドレス上のアプリケーションは、TCPポートまたはUDPポートによって区別されます。慣例として、特定のよく知られたポートは、特定のアプリケーションに関連付けられています。
TCP/IPモデルのトランスポート層、またはホスト間層は、OSIモデルの第4層、つまりトランスポート層にほぼ相当します。
QUICは、代替トランスポートプロトコルとして急速に台頭している。技術的にはUDPパケットを介して伝送されるが、TCPに比べてより優れたトランスポート接続性を提供することを目指している。HTTP /3はQUICのみを介して動作する。
アプリケーション層には、下位レベルのプロトコルによって確立されたネットワーク接続を介してユーザーサービスを提供したり、アプリケーションデータを交換したりするために、ほとんどのアプリケーションで使用されるプロトコルが含まれます。これには、ルーティング プロトコルやホスト構成などの基本的なネットワーク サポート サービスが含まれる場合があります。アプリケーション層プロトコルの例としては、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、シンプル メール転送プロトコル(SMTP)、動的ホスト構成プロトコル(DHCP) などがあります。[ 64 ]アプリケーション層プロトコルに従って符号化されたデータは 、トランスポート層プロトコル ユニット (TCP ストリームや UDP データグラムなど) にカプセル化され、下位レベルのプロトコルを使用して実際のデータ転送が行われます。
TCP/IPモデルは、データのフォーマットや表示に関する具体的な事項を考慮せず、OSIモデルのようにアプリケーション層とトランスポート層の間に追加の層(プレゼンテーション層とセッション層)を定義しません。TCP/IPモデルによれば、これらの機能はライブラリやアプリケーションプログラミングインターフェースの領域です。TCP/IPモデルのアプリケーション層は、OSIモデルの第5層(セッション層)、第6層(プレゼンテーション層)、第7層(アプリケーション層)を組み合わせたものとよく比較されます。
アプリケーション層プロトコルは、多くの場合、特定のクライアント/サーバーアプリケーションに関連付けられており、一般的なサービスには、インターネット割り当て番号機関(IANA)によって予約された既知のポート番号があります。たとえば、ハイパーテキスト転送プロトコルはサーバーポート80を使用し、Telnetはサーバーポート23を使用します。サービスに接続するクライアントは通常、一時的なポート、つまり、アプリケーションで設定された特定の範囲からランダムまたはトランザクションの期間中のみ割り当てられるポート番号を使用します。
アプリケーション層では、TCP/IP モデルはユーザー プロトコルとサポート プロトコルを区別します。[ 1 ] : §1.1.3サポート プロトコルは、ネットワーク インフラストラクチャ システムにサービスを提供します。ユーザー プロトコルは、実際のユーザー アプリケーションに使用されます。たとえば、FTP はユーザー プロトコルであり、DNS はサポート プロトコルです。
アプリケーションは通常、エンドポイント IP アドレスやポート番号などのトランスポート層接続の主要な特性を認識していますが、アプリケーション層プロトコルは一般的に、通信するための安定したネットワーク接続を提供するブラックボックスとしてトランスポート層 (およびそれより下位) プロトコルを扱います。トランスポート層および下位層は、アプリケーション層プロトコルの詳細には関心がありません。ルーターやスイッチは通常、カプセル化されたトラフィックを検査せず、単にその経路を提供するだけです。ただし、一部のファイアウォールや帯域幅制限アプリケーションは、ディープパケットインスペクションを使用してアプリケーションデータを解釈します。例として、リソース予約プロトコル(RSVP) があります。[ 65 ]また、 NAT の影響を受けるアプリケーションでは、アプリケーションペイロードを考慮する必要がある場合もあります。
インターネットプロトコルスイートは、長期間にわたる研究開発資金によって進化を遂げました。この過程で、プロトコルコンポーネントの詳細や階層構造は変化しました。さらに、業界団体による並行研究や商業的利益が設計上の特徴をめぐって競合しました。特に、国際標準化機構(ISO)の取り組みは、同様の目標を掲げながらも、ネットワーク全般というより広い範囲を対象としていました。表面上は似ているものの、細部において大きく異なっていた2つの主要な階層構造の学派を統合しようとする試みは、独立した教科書著者が簡略化された教育ツールを開発するきっかけとなりました。
以下の表は、そのような様々なネットワークモデルを示しています。レイヤー数は3層から7層まで様々です。
ネットワークモデルの中には教科書から引用されているものもあり、それらはRFC 1122やその他のIETF一次資料の意図と矛盾する可能性のある二次資料である。[ 74 ]
OSIモデルにおける上位3層、すなわちアプリケーション層、プレゼンテーション層、セッション層は、トランスポート層の上にアプリケーション層のみを持つTCP/IPモデルでは区別されていません。X.400などの一部の純粋なOSIプロトコルアプリケーションではこれらが統合されていますが、TCP/IPプロトコルスタックがトランスポート層の上にモノリシックなアーキテクチャを強制する必要はありません。例えば、NFSアプリケーションプロトコルは、外部データ表現(XDR)プレゼンテーションプロトコル上で動作し、XDRはリモートプロシージャコール(RPC)と呼ばれるプロトコル上で動作します。RPCは信頼性の高いレコード伝送を提供するため、ベストエフォート型のUDPトランスポートを安全に使用できます。
さまざまな著者が TCP/IP モデルを異なる方法で解釈しており、リンク層、または TCP/IP モデルのどの側面が OSI レイヤー 1 (物理層) の問題をカバーしているか、または TCP/IP がリンク層の下にハードウェア層が存在することを前提としているかについて意見が分かれています。いくつかの著者は、現代の標準 (たとえば、IEEEおよびITUによる) で一般的に参照されているため、OSI モデルのレイヤー 1 と 2 を TCP/IP モデルに組み込もうと試みています。これは多くの場合、リンク層またはネットワーク アクセス層が OSI モデルのレイヤー 1 と 2 に分割された 5 層のモデルになります。[ 75 ]
IETF のプロトコル開発は厳密な階層化には関心がありません。一部のプロトコルは OSI モデルにきれいに適合しない可能性がありますが、RFC では OSI モデルに言及したり、古い OSI のレイヤー番号を使用したりすることがあります。IETF は、インターネット プロトコルとアーキテクチャの開発は OSI に準拠することを意図していないと繰り返し述べています[ 54 ] 。インターネット アーキテクチャを参照する RFC 3439 には、「階層化は有害であると考えられる」というタイトルのセクションがあります。[ 74 ]
例えば、OSI参照モデルのセッション層とプレゼンテーション層は、TCP/IP参照モデルのアプリケーション層に含まれると考えられています。セッション層の機能は、HTTPやSMTPなどのプロトコルに見られ、 Telnetやセッション開始プロトコル(SIP)などのプロトコルではより顕著です。セッション層の機能は、TCP/IP参照モデルのトランスポート層に含まれるTCPおよびUDPプロトコルのポート番号によっても実現されています。プレゼンテーション層の機能は、TCP/IPアプリケーションにおいて、データ交換にMIME規格を用いることで実現されています。
もう 1 つの違いは、ルーティング プロトコルの扱い方です。 OSI ルーティング プロトコルIS-ISはネットワーク層に属し、パケットをあるルータから別のルータに配信するためにCLNSに依存せず、独自のレイヤ 3 カプセル化を定義します。 対照的に、OSPF、RIP、BGPおよび IETF によって定義されたその他のルーティング プロトコルは IP 上で転送され、ルーティング プロトコル パケットを送受信するためにルータはホストとして機能します。 その結果、ルーティング プロトコルはアプリケーション層に含まれます。[ 36 ] Tanenbaum のComputer Networksなど一部の著者は、ルーティング プロトコルがルータの転送プロセスによって行われる決定に情報を提供するという理由から、ルーティング プロトコルを IP と同じ層で説明しています。
IETFプロトコルは、汎用ルーティングカプセル化(GRE)などのトンネリングプロトコルに見られるように、再帰的にカプセル化することができます。GREは、ネットワーク層でのトンネリングにOSIが使用するのと同じメカニズムを使用します。
インターネット プロトコル スイートは、一般的に特定のハードウェアまたはソフトウェア環境に依存しません。コンピュータ ネットワーク上でパケットを送受信できるハードウェアとソフトウェア レイヤーが存在するだけで十分です。そのため、このスイートは事実上すべてのコンピューティング プラットフォームで実装されています。TCP/IP の最小限の実装には、インターネット プロトコル(IP)、アドレス解決プロトコル(ARP)、インターネット制御メッセージ プロトコル(ICMP)、伝送制御プロトコル(TCP)、ユーザー データグラム プロトコル(UDP)、およびインターネット グループ管理プロトコル(IGMP) が含まれます。[ 76 ] IP、ICMP、TCP、UDP に加えて、インターネット プロトコル バージョン 6 では、近隣探索プロトコル(NDP)、ICMPv6、およびマルチキャスト リスナー ディスカバリ(MLD) が必要であり、多くの場合、統合されたIPSecセキュリティ レイヤーが付属しています。
その後、1966 年 6 月に、デイビスは 2 番目の内部文書「デジタル通信ネットワークの提案」を執筆し、その中で、ユーザーが送信したいメッセージの小さな部分である「パケット」という言葉を作り出し、また、ユーザー機器とパケット ネットワークの間に位置する「インターフェース コンピュータ」の概念も導入しました。
著者らは、国際ネットワークプロトコルの初期段階の議論において有益なコメントをくれた多くの同僚、特にR. Metcalfe、R. Scantlebury、D. Walden、H. Zimmerman、断片化と会計の問題について建設的なコメントをくれたD. DaviesとL. Pouzinに感謝したい。そして、S・クロッカーは、結社の設立と崩壊について論評した。
スタンフォード大学、BBN、ユニバーシティ・カレッジ・ロンドンで同時実装を開始しました。そのため、インターネットプロトコルの開発は最初から国際的な取り組みでした。
1970年代初頭、プーザン氏はフランス、イタリア、イギリスの拠点を結ぶ革新的なデータネットワークを構築した。そのシンプルさと効率性は、数十台だけでなく数百万台のマシンを接続できるネットワークへの道を示した。それはサーフ博士とカーン博士の想像力を掻き立て、彼らはその設計の一部を、現在インターネットを支えるプロトコルに取り入れた。
データグラムの着想は 2 つのソースから得られました。 1 つは Donald Davies の研究です。彼はデータグラム ネットワークのシミュレーションを行っていましたが、実際に構築したことはなく、技術的に実現可能だと思いました。 2 番目の着想は、私はシンプルなものが好きだということでした。エンドツーエンド プロトコルの 2 つのレベルを重ねる本当の技術的な動機は見当たりませんでした。 1 つで十分だと思いました。
ネットワークのすべてのユーザーは、何らかのエラー制御を自ら行う必要があります。
1982年3月 – ノルウェーがARPANETから離脱し、SATNET上のTCP/IPを介してインターネット接続となる。 1982年11月 – UCLがARPANETから離脱し、インターネット接続となる。
{{cite journal}}: CS1メンテナンス: DOIは2025年7月現在非アクティブです(リンク)ネットワーク。