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

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

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

  • ICMP (Internet Control Message Protocol)。RFC 792 で定義されているインターネット・プロトコル・スイートの一部です。
  • TCP (伝送制御プロトコル)
  • UDP (ユーザー・データグラム・プロトコル)

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

ICMP

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

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

TCP および UDP

伝送制御プロトコル (TCP) とユーザー・データグラム・プロトコル (UDP) はどちらも OSI レイヤー 4 トランスポート・プロトコルです。 これらのプロトコルは、実際のデータを渡すために使用されます。 開発者の観点から見ると、TCP と UDP の主な違いは、パケットの順序を処理する方法です。

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

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

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