IPパケットの構造
IPパケットは,データにIPヘッダを付けた形になっています.
IPパケットの構造を図にすると次のようになります.
各部分をクリックすると,その部分の説明を見ることが出来ます.
ネットワーク界面のページへ
豊田正史(toyoda@is.titech.ac.jp)
柏木伸一郎(kasiwagi@is.titech.ac.jp) 共著
IP (IP ソフトウェア)のバージョンを表す.現在の値は4であるが,
IPng などの将来的な IP プロトコルでは,異なるバージョン番号になる.
IPヘッダ長を表す.単位は,4オクテット(32ビット)である.
これにより,IPヘッダ長は,4オクテットの倍数になっていなければならない.
値の範囲は,5〜60 (20オクテット〜240オクテット)である.
データグラムのプライオリティ(優先権)を表す.
通常のデータは0である.(あまり利用されていない).
IPヘッダ長とデータ長の合計(IPデータグラム長)を表す.
単位は1オクテット.このフィールドは16ビットであるから,
IPパケットの最大長は 64Kオクテットである.
IPデータグラムを分割・再構成する際に使われる識別子.
データグラムが分割される際に,それぞれのデータグラムに同じ値がコピーされ,
この値により再構成が行われる.
IPデータグラムの分割に関する情報を表す.
- 第1ビット:現在未使用 (0).
- 第2ビット:データグラムが分割不可能であるか
(DF: Do not Fragment, 0:分割可,1:分割不可)
- 第3ビット:分割されたデータグラムの場合,続きがあるか
(MF: More Fragment, 0:最後,1:続きがある)
分割された断片(フラグメント)が,
分割前の元のデータグラムにおいてどこに位置していたかを表す.
単位は8オクテットとなっているので,
IPデータグラムの最大長である64Kオクテットをカバーすることができる.
IPデータグラムが,ネットワーク上に存在できる時間を表す.
単位は秒ということになっているが,
実際にはルータを通過するごとに1秒分減らされる.
この値が0になると,そのデータグラムは破棄される.
データ部に含まれる,上位層のプロトコルを表す.
(1: ICMP, 6: TCP, 17: UDP など)
IPヘッダのチェックサム.IPデータグラム全体のチェックサムではないことに注意.
発信元のIPアドレスである.
送信先のIPアドレスである.
標準のIPヘッダにない情報(デバッグ,計測情報,ルーティング情報など)
を付加したい場合に使用する.
オプション(パディングも含む)は可変長であるが,
実際の長さはIPヘッダ長の情報より求めることができるので,
データの開始場所を判別できる.
IPヘッダの長さは,4オクテット(32ビット)の倍数になっていなければならない.
オプションの長さによっては,ここで長さを調整する必要がある.
実際のデータである.
データは可変長であるが,IPデータグラム長の情報より実際の長さがわかる.
IPでは,チェックサムが計算されるのはヘッダ部分のみである.
データ部の信頼性を要求する場合は,
より上位のプロトコル (例えばTCPなど) に依存するか,
あるいはIPを転送するデータリンク層
(例えば,Ethernetフレームのエラー検出)
に依存することになる.