導入
| プロトコルスタック | ||||||||||||||
| ||||||||||||||
| インターネットモデル OSIモデル |
インターネット プロトコル スイートは、インターネットで使用されるプロトコル スタックを構成するプロトコルのセットです。
これは、最初に定義された 2 つのプロトコル、TCP (伝送制御プロトコル) と IP (インターネット プロトコル) の名前にちなんで、 TCP/IPと呼ばれることもよくあります。
この主題に関する参照文書は RFC 1122 です。
スタック内のさまざまなプロトコルを 7 つの層に分類する OSI モデルは、インターネット プロトコル スイートを記述するために使用できますが、OSI モデルの層は必ずしもインターネットの習慣と一致するとは限りません (インターネットはTCP/IP には 4 つの層しかありません)。
プロトコル スタックでは、各層がデータ送信に関する多くの問題を解決し、明確に定義されたサービスを上の層に提供します。上位層はユーザーに近く、物理媒体上で送信できるようにデータをフォーマットする下位層のサービスを使用して、より抽象的なデータを管理します。
インターネット モデルは実際的な問題に対処するために作成されましたが、OSI モデルはより理論的なアプローチに対応し、ネットワークの歴史の初期に開発されました。したがって、OSI モデルの方が理解しやすいですが、実際には TCP/IP モデルが最もよく使用されます。 TCP/IP に取り組む前に、OSI モデルについてある程度の知識を持っておくことが最善です。同じ原則が適用されますが、OSI モデルの方が理解しやすいからです。

TCP/IPスタックの層
TCP/IP と OSI プロトコル スイートは正確には一致しないため、TCP/IP スタックの層の定義は議論の対象となる可能性があります…
さらに、OSI モデルは、下位層で現実を表現するのに十分な豊かさを提供しません。トランスポート層とネットワーク層の間にネットワーク相互接続層 (インターネットワーキング) を追加する必要があります。特定のネットワーク タイプに固有であるが、データリンク層の上で動作するプロトコルは、ネットワーク層に属する必要があります。 ARP や STP (ループを回避しながらネットワーク内に冗長パスを提供する) はそのようなプロトコルの例です。ただし、これらはローカル プロトコルであり、相互接続機能の下で動作します。これら 2 つのプロトコル グループ (ICMP などのインターネット接続プロトコル上で動作するプロトコルは言うまでもなく) を同じ層に配置すると、混乱を招く可能性があります。
次の図は、TCP/IP スタック内のさまざまなプロトコルが ISO OSI モデル内のどこに収まるかを示しています。
| 7 | 応用 | 元。 HTTP、HTTPS、SMTP、SNMP、FTP、 Telnet 、NFS |
| 6 | プレゼンテーション | 元。 XDR、ASN.1、SMB、AFP |
| 5 | セッション | 元。 ISO 8327 / CCITT X.225、RPC、 Netbios 、 ASP |
| 4 | 交通機関 | 元。 TCP、UDP、RTP、SPX、ATP |
| 3 | ネットワーク | 元。 IP (IPv4 または IPv6)、ICMP、IGMP、X.25、CLNP、ARP、OSPF、RIP、IPX、DDP |
| 2 | 繋がり | 元。イーサネット、トークンリング、PPP、HDLC、フレームリレー、ISDN (ISDN)、ATM、 Wi-Fi 、 Bluetooth 、 ZigBee 、irDA (Infrared Data Association) |
| 1 | 物理的な | 元。物理ネットワーク (有線、光、無線ネットワークなど) 上で情報を送信するための信号コーディング技術 (電子、無線、レーザーなど) |
通常、OSI モデルの上位 3 層 (アプリケーション、プレゼンテーション、およびセッション) は、TCP/IP の単一のアプリケーション層とみなされます。 TCP/IP には上位層が依存できる統合セッション層がないため、これらの機能は通常、各アプリケーションによって実行されます (または無視されます)。 TCP/IP モデルに従ったスタックの簡略化されたバージョンを以下に示します。
| 5 | 応用 「レイヤー7」 | 元。 HTTP、FTP、DNS (UDP 上で動作する RIP などのルーティング プロトコルもアプリケーション層の一部とみなすことができます) |
| 4 | 交通機関 | 元。 TCP、UDP、RTP (IP 上で動作する OSPF などのルーティング プロトコルもトランスポート層の一部とみなすことができます) |
| 3 | ネットワーク | TCP/IPの場合はIPです。 (ICMP や IGMP などの必須プロトコルは IP 上で動作しますが、依然としてネットワーク層の一部と見なすことができます。ARP は IP 上では動作しません) 。 |
| 2 | 繋がり | 元。イーサネット、トークンリングなど |
| 1 | 物理的な | 元。ローカル ループ(アナログ回線上の変調による伝送: PSTN、デジタル電話回線、ADSL など)、主要な通信幹線 (多重化、交換機などによる伝送)、無線通信ネットワーク (無線、無線電話、衛星など) )。 |
TCP/IP モデルへの別のアプローチは、2 層モデルを提案することで構成されます。実際、IP は物理ネットワークを無視します。また、これはトランスポート層 (TCP または UDP に代表される) に依存するアプリケーション層ではなく、アプリケーションです。したがって、次のようになります。
| アプリケーション | |
| 2 | 交通機関 |
| 1 | IP |
| どうでも |
この表現は IP の概念により忠実です。この「モデル」は OSI モデルよりも古いものであり、それらを一致させようとすることは誤解を招く可能性があることに注意してください。実際、TCP はセッションの概念を導入していますが、TCP は OSI をモデルとしたモデルの TRANSPORT レベルにあります。 OSI モデルに対するこの先行性は、UDP 上のルーティング プロトコルの実装などの特定の矛盾も説明します (RIP は UDP 上で実装されますが、OSPF は OSI モデルの後に到着し、レイヤーごとにテーマを分割したいという要望は直接依存しています) IP上)。 DHCP は UDP、「アプリケーション」レベルでも実装されますが、レベル 3 の構成を提供するのはネットワーク層の役割です。

物理層
物理層は、通信に使用されるメディアの性質 (ケーブル、光ファイバー、または無線リンク) に関する規則などの通信の物理的特性と、コネクタ、コーディングまたは変調のタイプ、信号レベル、波長などの関連する詳細を記述します。 、タイミングと最大距離。
データリンク層
データリンク層は、パケットが物理層上でどのように転送されるか、特にフレーミング(つまり、パケットの開始と終了をマークする特定のビット シーケンス) を指定します。たとえば、イーサネット フレーム ヘッダーには、パケットの宛先がネットワーク上のどのマシンであるかを示すフィールドが含まれています。データリンク層プロトコルの例: イーサネット、ワイヤレス イーサネット、SLIP、トークン リング、ATM。
PPP は、もともと別のデータ リンク プロトコル上で動作するように指定されていたため、もう少し複雑です。
この層は、LLC と MAC に細分される場合があります。

ネットワーク層
本来の定義では、ネットワーク層は、単一のネットワーク全体でパケットをルーティングする問題を解決します。このタイプのプロトコルの例: X.25、 ARPANETの初期接続プロトコル。
ネットワーク相互接続の概念の出現により、この層に機能が追加され、より具体的には、送信元ネットワークから宛先ネットワークへのデータのルーティングが追加されました。これには通常、インターネットとして知られるネットワークのネットワークを介したパケットのルーティングが含まれます。インターネット プロトコル スイートでは、IP は送信元から宛先へのパケットのルーティングを保証し、ICMP (IP 送信に関連する診断メッセージの転送に使用) や IGMP (マルチキャストデータの管理に使用) などの他のプロトコルもサポートします。 ICMP と IGMP は IP の上に位置しますが、ネットワーク層の機能を提供するため、インターネットと OSI モデルの間に互換性がないことがわかります。
IP ネットワーク層は、多くの上位レベルのプロトコルのデータを転送できます。これらのプロトコルは、一意のIP プロトコル番号によって識別されます。 ICMP と IGMP は、それぞれプロトコル 1 とプロトコル 2 です。
トランスポート層
トランスポート層プロトコルは、交換の信頼性(「データは宛先に到着したか?」) などの問題に対処し、データが正しい順序で到着することを保証します。 TCP/IP プロトコル スイートでは、トランスポート プロトコルによって、各データ パケットをどのアプリケーションに配信するかも決定されます。
実際に TCP/IP スタックのこの層に存在する動的ルーティング プロトコルは (IP の上で動作するため)、一般にネットワーク層の一部とみなされます。例: OSPF (IP プロトコル番号 89)。
TCP (IP プロトコル番号 6) は、信頼性の高いバイトストリームを提供する「信頼性の高い」接続指向のトランスポート プロトコルで、データが変更されずに正常に到着することを保証し、損失の場合は再送信し、重複データを破棄します。また、順不同で処理する必要がある「緊急」データも管理します (技術的には帯域外に送信されない場合でも)。 TCP はすべてのデータを正しく順番に配信しようとします。これがその目的であり、UDP に勝る主な利点ですが、ネットワーク層でのデータ レートが高く、損失が大きいリアルタイム ストリーム転送やルーティング アプリケーションにとっては欠点になる可能性があります。
UDP (IP プロトコル番号 17) は、シンプルでコネクションレスの「信頼性の低い」プロトコルです。これは、特に信頼性が低いという意味ではありませんが、パケットが宛先に到着したことを検証せず、パケットの到着を保証しません。順番に。アプリケーションがこれらの保証を必要とする場合は、アプリケーション自体が保証を提供するか、TCP を使用する必要があります。 UDP は通常、TCP による再送信やパケット スケジューリングの処理に必要な時間が利用できないマルチメディアストリーミングアプリケーション (オーディオやビデオなど)、または DNS クエリなどの単純なメカニズムの質問/回答に基づくアプリケーションで使用されます。信頼性の高い接続を確立するためにかかる追加コストは、ニーズに対して不釣り合いです。
TCP と UDP は両方とも多くのアプリケーションで使用されます。任意のネットワークアドレスにあるアプリケーションは、TCP または UDPポート番号によって区別されます。慣例により、ウェルノウン ポートは特定のアプリケーションに関連付けられます。
RTP (リアルタイム プロトコル) は、UDP または TCP と連携して動作するプロトコルで、リアルタイム制約のあるデータの転送に特化しています。通常、これはビデオを転送するために使用され、事前に保存せずに画像と音声の再生を直接同期できるようになります。
SCTP ( Stream Control Transmission Protocol ) は 2000 年に RFC 4960 で定義され、導入テキストは RFC 3286 にあります。SCTP は、TCP と同様のサービスを提供し、信頼性、シーケンスの並べ替え、および輻輳制御を保証します。 TCP はバイト指向ですが、SCTP は「フレーム」(短いシーケンス) を管理します。 SCTP の主な進歩は、接続の一端が複数の IP アドレスで構成されるマルチターゲット通信が可能になったことです。

アプリケーション層
アプリケーション層には、ほとんどのネットワーク プログラムが存在します。
これらのプログラムと使用するプロトコルには、HTTP ( World Wide Web )、FTP (ファイル転送)、SMTP (電子メール)、SSH (安全なリモート接続)、DNS (名前と IP アドレスの照合) などが含まれます。
アプリケーションは通常、TCP または UDP 上で実行され、多くの場合、既知のポートに関連付けられます。例:
- HTTP TCP ポート 80;
- SSH TCP ポート 22。
- DNS ポート UDP 53 ( 512 バイトを超えるゾーン転送およびクエリの場合は TCP 53)。
- RIP UDP ポート 520。
これらのポートは 、Internet Assigned Numbers Authority (IANA) によって割り当てられました。
UNIXでは、ポートとプロトコルの対応付けに使用されるテキストファイル/etc/services があります。
Windows では、%SystemRoot%\System32\drivers\etc にあります。これはサービスと呼ばれるもので、メモ帳で読むことができます。
認証、 BOOTP 、 BOOTPS 、DHCP、エコー、フィンガー、FTP、 Gopher 、HTTPS、IRC、IMAP、IMAPS、 Kerberos 、QOTD、Netbios、NNTP、NFS、POP、POPS、 RTSP 、NTP、SFTP、SNMP、SSH、Telnet、 TFTP 、ウェブスター、Whois、XDMCP、SMTP。
