インターネット通信プロトコルについて
一般的に、通信プロトコル は、通信システムの複数のエンティティーが情報を送信できるようにするルールのシステムです。 インターネットには、多くの状況に対処するための大規模なプロトコル・スイートがあります。 Webベースのアプリケーションやプログラミングインターフェースを作成する際、ソフトウェア開発者は、ネットワークの状態やネットワーク上でデータパケットが転送される仕組みを記述するために、通常、以下の通信プロトコルのうち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 の例として、ping と traceroute ユーティリティーがあります。 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以外のプロトコルを活用するオンプレミス、マルチクラウド、 クラシック・インフラストラクチャー、カスタム・トポロジーやユースケースを持ち込むことができる。