インターネット通信プロトコルについて

一般的に、通信プロトコル は、通信システムの複数のエンティティーが情報を送信できるようにするルールのシステムです。 インターネットには、多くの状況に対処するための大規模なプロトコル・スイートがあります。 ウェブベースのアプリケーションやプログラミング・インターフェースを作成する際、ソフトウェア開発者は一般的にこれら3つの通信プロトコルを使い、ネットワークの状態やデータ・パケットがネットワーク上を移動する方法を記述する:

  • ICMP (Internet Control Message Protocol)。RFC 792 で定義されているインターネット・プロトコル・スイートの一部です。
  • TCP, Transmission Control Protocol
  • UDP, User Datagram Protocol
  • TCP-UDP-ICMP、すべて IPv4 IANAに登録されているプロトコル

API 呼び出しなどの特定の実装に使用されるプロトコルは、ネットワークの全体的な動作に影響を与える可能性があります。 そのため、両者の基本的な違いを理解することは価値があります。 詳細情報が必要な場合は、プロトコルについて詳しく説明された良質な記事が、インターネット上で多数公開されています。

ICMP

ICMP は_制御プロトコル_であり、ネットワーク自体の状況に関する情報を伝送するように設計されています。 これは基本的に、ネットワーク層 (OSI レイヤー 3) のネットワークのエラー報告とエラー制御のプロトコルです。 実際に最もよく知られている ICMP の例として、pingtraceroute ユーティリティーがあります。 ping ユーティリティーは ICMP を使用して、リモート・ホストの応答性とプローブ・メッセージの往復時間全体を調べます。 traceroute ユーティリティは、ICMPを使用して、ICMPパケットが目的地まで移動する際のネットワーク経路を発見し、トレースします。

開発者が知っておく必要があるのは、ICMPパケットには TCP、または UDP、ポート番号が関連付けられていないということだ。ポート番号はレイヤー4 _(トランスポート層)の_構成要素だからである。

TCP および UDP

Transmission Control Protocol ( TCP ) と User Datagram Protocol ( UDP ) はどちらもOSIレイヤー4のトランスポート・プロトコルである。 これらのプロトコルは、実際のデータを渡すために使用されます。 開発者の視点から見た TCP と UDP の主な違いは、パケット順序の扱い方である。

TCP は、コネクション指向プロトコルであるため、送信されたすべてのパケットが適切な順序で宛先に到達することが保証されます。

一方、UDP はコネクションレス・プロトコルです。 通信はデータグラム指向であるため、整合性は単一のデータグラムでのみ保証されます。 データグラムは、宛先に到達したものの順不同に到着する場合もあれば、まったく到着しない場合もあります。

通常、UDP はリアルタイム通信に使用されます。この場合、パケット・ロス率のパーセンテージが低いことが、TCP 接続のオーバーヘッドよりも優先されます。

任意

IANAに登録されている IPv4 プロトコルを、 NACLおよびセキュリティグループルールに適用できるようになりました。 これにより、 TCP、 UDP、ICMP以外のプロトコルを活用するオンプレミス、マルチクラウド、 クラシック・インフラストラクチャー、カスタム・トポロジーやユースケースを持ち込むことができる。