IP データグラムの形式を通じて、IP プロトコルの役割をより明確に理解できます。 IPv4 データグラムは通常 32 ビット単位で記述されます。次の図は IP データグラム形式の図です:
IP データグラム形式を学習するときは、パケット キャプチャ ツール (wireshark など) を使用して IP データをキャプチャできることをお勧めします。報告し、注意深く観察し、比較します。
ここで、IP データグラム ヘッダーの各フィールドの役割を見てみましょう:
(1) Version: 4 ビットを占め、IP プロトコルのバージョンを参照します。
(2)ヘッダ長: 4ビット、ヘッダ長(データ部分を除く)を指し、単位は4バイトです。ヘッダーの固定部分は 20 バイトであるため、このフィールドの最小値は 5 (0101) です
(3)Differentiated Services: 8 ビットを占有しており、現在は役に立ちません。
(4)全長: 16 ビット、ヘッダー長データ部分の長さ (バイト単位)。理論上、IPv4 データグラムの最大長は、2 の 16 乗マイナス 1 バイト、つまり 65535 バイトです。ただし、データグラムの最大長は MTU (最大送信単位) によって制御され、データグラムの長さは MTU 設定値を超えることはできません。この設定値は通常 1500 に設定されます。データグラムが長すぎるとルーターの転送速度が遅くなりますが、データグラムが小さすぎると転送効率が上がりません。データグラムの長さが MTU を超える場合、長いデータグラムをいくつかのデータグラム フラグメントに分割する必要があります。
(5)識別: システムにはカウンターがあり、データグラムが生成されるたびに、このカウンターは 1 ずつ増加します。識別フィールドの値は、この増加した数値です。この識別値と、後述するフラグ フィールドおよびオフセットを通じて、フラグメントを元のデータグラムに再構築することができます。
(6)flag: 3 ビットを占有しますが、現在意味があるのは最後の 2 つだけです:
中間ビット、フラグメント化しない: フラグメント化できません。このビットが 0 の場合のみ、断片化が許可されます
最後のビット、その他の断片: 断片があります。値が 0 の場合は、それが最後のフラグメントであることを意味し、それ以外の場合は、後にまだフラグメントが存在することを意味します。
(7)オフセット: 13 ビット。これは、元のパケットのデータ部分内のフラグメントの相対位置を表します。単位は8バイトです。
(8)ホップ制限: 8ビットを占有し、データグラムがネットワーク内で無制限に拡散するのを防ぎます。このフィールドの値は、データグラムが通過できるルーターの最大数を示します。データグラムがルーターを通過すると、値は 1 ずつ減ります。値が 0 になると、データグラムは正常に配信されず、ルーターは破棄します。データグラム。
(9)プロトコル: このデータグラムによって伝送されるデータにどのプロトコルが使用されるかを示します。一般的に使用されるプロトコルは次のとおりです。
ICMP: 値は 0
IP: 値は 4
TCP: 値は 6
UDP: 値は 17
(10)ヘッダーチェックサム: このフィールドはデータグラムのヘッダーのみをチェックしますが、データ部分は含まれません。 。このフィールドは、データグラムにエラーがあるかどうかを計算するために使用できます。
(11)ソースアドレス: 32 ビット。
(12)宛先アドレス: 32 ビット。
(13)オプションパーツ: ほとんど使用されません。
以上がIP データグラムはどのようなものですか - IP データグラム形式の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。