IPデータグラム構造
2002年7月10日
森田 亙昭
IPの機能
IPアドレスを用いた位置情報の機能
IPパケットを用いたコネクションレス型のデータ通信
・経路制御
IP:ネットワーク層の機能を実現するプロトコル
トランスポート層から依頼されたデータをIPパケットとして、
目的とするあて先に送り届ける
特徴
IPデータグラム
IPデータグラムとは・・・
IPにおけるデータの基本単位(パケット)
データは、データグラム単位に分割され、伝送される
あるデータのかたまりに、宛先/送り元アドレスなど
が含まれたヘッダの付いたもの
IPヘッダ IPデータ
バージョン ヘッダ長 サービスタイプ パケット長
識別子 フラグ フラグメントオフセット
生存時間 プロトコル ヘッダチェックサム
送信元IPアドレス
宛先IPアドレス
オプション パディング
IPデータ
IPデータグラムのフォーマット
12 16 20 24 28 31
●バージョン
IPプロトコルのバージョンを示す(現在は4)
●ヘッダ長
IPヘッダ自体(データ以外の部分)の長さを示す
◇単位は32ビット
IPヘッダは最大60オクテット 1オクテット=8bit
(通常は5=20オクテット)
●サービスタイプ(TOS
◇送信しているIPのサービス品質を示す
ビット 意味
012 優先度
最低限の遅延
最大限のスループット
最大限の信頼性
最小限の経費
未使用
サービスタイプの各ビットの意味
この値はアプリケーションによって指定されていて
アプリケーションの特性に合わせてTOSを設定することが
奨励されている
しかしこのTOSの実現はかなり難しい
現在のところほとんどのネットワークでは
これらの要求は無視されている
バージョン ヘッダ長 サービスタイプ パケット長
識別子 フラグ ラグメントオフセット
生存時間 プロトコル ッダチェックサム
送信元IPアドレス
宛先IPアドレス
オプション パディング
IPデータ
IPデータグラムのフォーマット
12 16 20 24 28 31
●パケット長
IPヘッダとIPデータを加えたパケット全体の長さを
オクテット長で表す
IPが運べる最大サイズは64KB
識別子
◇データグラムを識別する一意の整数
◇データを復元する際の識別子として使われ、
同じデータでは同じ値、違うデータでは
違う値になるように処理される
識別子、フラグ、フラグメントオフセットによって、
分割されたデータを組み立てる
●フラグ
ビット 意味
未使用(必ず0)
分割不可フラグ
後続フラグメント有
●フラグメントオフセット
◇分割されたフラグメントがオリジナルデータのどこ
位置していたかを示す
◇単位は8オクテット
◇オリジナルデータとして示せる最大は65536オクテット
●生存時間
◇もともとの意味は、このパケットがネットワークに存在して
よい時間を秒単位で示したものだが、実際のインターネット
では、何個のルータを中継してよいかを示す
●プロトコル
◇データ領域で運ばれる上位層プロトコルを示す
割り当て番号(10進数) 略称 プロトコル名
ICMP Internet Control Massage Protcol
IGMP Internet Group Massage Protocol
IP IP in IP (encapsulation)
TCP Transmission Control Protocol
EGP Exterior Gateway Protocol
17 UDP User Datagram Protocol
41 IPv6 IPv6
46 RSVP Reservation Protocol
89 OSPF Open Shortest Path First
上位層のプロトコルに割り当てられる番号
バージョン ヘッダ長 サービスタイプ パケット長
識別子 フラグ フラグメントオフセット
生存時間 プロトコル ヘッダチェックサム
送信元IPアドレス
宛先IPアドレス
オプショ パディング
IPデータ
IPデータグラムのフォーマット
12 16 20 24 28 31
●ヘッダチェックサム
IPヘッダのチェックサムを表す
IPヘッダが壊れてないことを保証するためのもの
◇16ビット単位で1の補数の和を求め、求まった値の
1の補数を入れる。
●送信元IPアドレス
◇送信元のIPアドレスを表す
●宛先IPアドレス
◇宛先IPのアドレスを表す
●オプション
◇可変長の長さをもち、通常は使用されないが、
テストやデバッグを行うときに使用される
オプションの初めの8ビットの構造
・コピーフラグ :1ビット
◇フラグメント化を行う場合に、データグラムの
全てのフラグメントにこのオプションを
コピーすべきかどうかを示す
・オプションクラス :2ビット
・オプションナンバー :5ビット
◇オプションの一般的クラスを指定し、そのクラス
固有のオプションを与える
●パディング
◇オプションをつけた場合、ヘッダ長が32ビットの整数倍に
ならないことがあるので、この場合、詰め物として0を入れ
32ビットの整数倍にする
●データ
◇データが入る
IPの上層ヘッダも全てデータとして処理される