1999/05/31

ネットワーク(7)


ICMP

ICMP(Internet Control Message Protocol) は IP パケットの中に 包まれて配送される。
[ICMP Message]
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (32bits width)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type       |     Code      |        Checksum               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|               Data                                            |
                  ...
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
ICMP の Type と Code の一覧は Fig.6.3 を参照のこと。

ICMP メッセージには

があり、このうち、「ICMPエラーメッセージ」は特別な扱いを受ける。

[ICMPエラーメッセージ]

ICMPポート到達不可エラー

[ICMP Error Message: Port Unreachable]
                     1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 (32bits width)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    Type       |     Code      |        Checksum               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               Unused (must be 0)                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             IP Header of Original IP Packet                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             IP Header of Original IP Packet                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             IP Header of Original IP Packet                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             IP Header of Original IP Packet                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             IP Header of Original IP Packet                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             First 8 byte Data of Original IP Packet           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    Type = 3
    Code = 0, 1, 2, ..., 15
「ポート到達不可メッセージ」は、ICMPエラーメッセージの一つである。

(例)Fig.6.8参照
UDPにより「ポート到達不可メッセージ」を生成させる (宛先ポートが応答しない場合は、UDPでは「ICMPポート到達不可」を返すので)。

  1. bsdiから svr4へのARP要求を Ethernet Broadcast
  2. srv4からbsdiへのARP 応答(reply)
  3. bsdiの2924番ポートからsvr4の8888番ポートへUDP通信
  4. svr4からbsdiへICMPエラーメッセージ(ポート到達不可) ← ポート番号なし
  5. ...
4.において返されるICMPエラーメッセージの構造が Fig.6.9。