2 つのホスト間の接続をテストする場合、多くの場合、ping コマンドを使用して確認します。しかし、このコマンドと icmp プロトコルの関係をご存知ですか?
ICMP はインターネット メッセージ コントロール プロトコルで、エラー状態および関連するエラー情報を報告するために使用されます。 icmp データ メッセージは、データ部分として ip データグラムにカプセル化されます。ただし、ip プロトコルと同様に、icmp もネットワーク層プロトコルです。次の図は、icmp メッセージ フォーマットの図です。
ICMP メッセージ タイプ
ICMP メッセージの合計は、エラー報告メッセージと問い合わせメッセージの 2 つのカテゴリに分類されます。
エラー レポート メッセージには主に次のタイプがあります。
宛先に到達できません (タイプ値は 3): ホストまたはルーターがデータを配信できない場合、このメッセージは送信元ポイントに送信されます。
タイムアウト (タイプ値は 11): IP データグラムの TTL 値が 0 の場合、または指定された時間内に配信が成功しなかった場合、タイムアウト メッセージが送信元ポイントに送信されます。
パラメータの問題 (タイプ値は 12): 受信したデータグラムのヘッダーに不正なフィールドがある場合、データ パケットは破棄され、パラメータの問題メッセージがソース ポイントに送信されます。
リダイレクト (タイプ値は 5): ルーターがパケットを受信するときに、宛先アドレスが別のルーターから転送されるべきであることを認識すると、より効率的になります。パケットを転送した後、パケットも転送します。パケットを送信元に送信します。クリックすると、リダイレクト メッセージが送信されます。その後、同じ宛先アドレスを持つ次のデータグラムが別のルーターから送信されます。
次に、問い合わせメッセージについて見てみましょう。問い合わせメッセージは、主に応答要求メッセージ (タイプ値が 8) と応答メッセージ (タイプ値が 0) の 1 つのカテゴリに分類されます。応答要求メッセージを受信するホストは、返信メッセージを返します。
ICMP の応用: ping コマンド
ICMP の知識を理解した後、ICMP の適用例を見てみましょう。 pingコマンド。このコマンドは、Linux システムだけでなく、Windows システムでも使用できます。
ping baidu.com 正在 Ping baidu.com [220.181.38.148] 具有 32 字节的数据: 来自 220.181.38.148 的回复: 字节=32 时间=32ms TTL=52 来自 220.181.38.148 的回复: 字节=32 时间=29ms TTL=52 来自 220.181.38.148 的回复: 字节=32 时间=27ms TTL=52 来自 220.181.38.148 的回复: 字节=32 时间=35ms TTL=52 220.181.38.148 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 27ms,最长 = 35ms,平均 = 30ms
ping コマンドのワークフローを見てみましょう。 まず、ホストは 4 つの ICMP メッセージを生成し、これら 4 つの ICMP メッセージは応答です。 . request メッセージを作成し、これら 4 つの ICMP メッセージを Baidu サーバーに送信します。 Baidu サーバーがこれら 4 つの ICMP メッセージを受信できる場合、4 つの ICMP 応答メッセージもホストに送信されます。したがって、ホストは返された ICMP データグラムの数と戻り時間に基づいて、パケット損失率と往復時間を計算できます。
推奨: 「Linux ビデオ チュートリアル 」
以上がインターネット メッセージ コントロール プロトコル ICMP: ネットワーク時間の調査の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。