IP
IP(Internet Protocol)とは, OSI参照モデルではネットワーク層, TCP/IPのインターネット層で動作するプロトコルのことである.
IPは論理アドレス(IPアドレス)を各ノードに割り当てることでノードを識別することができ, ノード間でのデータ伝送が実現する.
このとき, 宛先のIPアドレスなどに関する情報はIPヘッダに記述されている.
IPヘッダのフォーマット
IPヘッダのサイズはデフォルトで20バイトだが, オプションが追加された場合のサイズは最大で60バイトとなる.
しかし, オプションやパディングは一般的に使用されることがないのであまり意識する必要はない.
また, データの部分はIPヘッダではなく, IPペイロードと呼ばれる部分に含まれている.
IPペイロードには, TCPやUDPなどの上位層のプロトコルのヘッダが含まれていることに注意する.
フィールド | ビット数 | 説明 |
---|---|---|
バージョン | 4bit | IPヘッダのバージョン番号. IPv4であれば"4"が入り, IPv6であれば"6"が入る. |
ヘッダ長 | 4bit | IPヘッダの長さ. IHLとも呼ばれる. 単位は32ビット. オプションを指定しない場合であれば, 20byte = 160bit = 32bit x 5となり, "5"が入る. |
サービスタイプ | 8bit | IPパケットの優先順位. 例えば, 音声トラフィックとデータトラフィックがある場合, 音声トラフィックを優先して送出することができる. QoS処理用である. |
パケット長 | 16bit | IPヘッドを含むパケットの全長. |
識別番号 | 16bit | パケットを識別する番号. フラグメントされたパケットに同じ識別番号を振ることで, 受信側で正しく組み立てることができる. |
フラグ | 3bit | フラグメントにおける制御情報. |
フラグメントオフセット | 13bit | フラグメントされたパケットが元のパケットのどの位置であったかを示す. |
生存期間 | 8bit | パケットの生存期間を示す. TTL(Time to Live)とも呼ばれる. 具体的には, 何台のルータ又はL3スイッチを通過できるかということ. 1台通過する毎にTTL値が1減らされ, 0になるとパケットが破棄される. |
プロトコル | 8bit | トランスポート層のプロトコルが何であるのかを示す番号. ICANNと呼ばれる組織によりプロトコル名と番号が対応付けられており, それに基づいた番号が入る. TCPの場合, "6"が入る. |
ヘッダチェックサム | 16bit | IPヘッダのチェックサムを示す. つまり, エラーがないかをチェックできる. |
送信元IPアドレス | 32bit | 送信元IPアドレス. |
宛先IPアドレス | 32bit | 宛先IPアドレス. |
オプション | 可変長 | 通常は使用されないが, デバッグやテストの際に使用される. |
パディング | 可変長 | オプションの使用により, IPヘッダ長が32ビットの整数倍にならないことがあるため, パディングとして空データである"0"を入れることで調整する. |
フラグ
IPヘッダのフィールドにある「フラグ」には, 3ビットの組み合わせた値が入る.
先頭の0ビット目は未使用で, 必ず値は"0"である必要がある.
次に, 1ビット目はパケットのフラグメント(パケットの分割)を許可する場合は"0", 許可しない場合は"1"を入れる.
最後の2ビット目はフラグメントされた場合に使用され, フラグメントされた最後のパケットである場合は"0", そうでない場合は"1"を入れる.
ビット | 意味 | 値 |
---|---|---|
0ビット目 | 未使用 | 0 |
1ビット目 | パケットのフラグメントを許可する | 0 |
1ビット目 | パケットのフラグメントを許可しない | 1 |
2ビット目 | フラグメントされた最後のパケットである | 0 |
2ビット目 | フラグメントされた最後のパケットではない | 1 |
プロトコル
IPヘッダのフィールドにある「プロトコル」には, 主に以下のようなプロトコル番号が入る.
ICMPやOSPFなどはIPと同じインターネット層のプロトコルだが, これらのプロトコルはIPヘッダが付加されてIPパケットとして転送されることから, 上位層のプロトコルとして番号が割り振られている.
プロトコル番号 | プロトコル名 |
---|---|
1 | ICMP |
6 | TCP |
17 | UDP |
88 | EIGRP |
89 | OSPF |
IPアドレスの管理団体
ICANN(Internet Corporation for Assigned Names and Numbers: アイキャン)とは, 1998年にアメリカで設立された民間の非営利団体である.
ドメイン名やIPアドレスなどのインターネット上の資源の管理や割り当ての方針を取り決めている.
また, IPアドレスを実際に分配するのは, インターネットレジストリと呼ばれる組織である.
インターネットレジストリには, 北アメリカに分配するARIN(エーリン), ヨーロッパ中東と中央アジアに分配するRIPENCC(ライプENCC), アジアと太平洋地域に分配するAPNIC(APニック), ラテンアメリカとカリブ海地域に分配するLACNIC(ラクニック), アフリカに分配するAfriNIC(アフリニック)など, 数多くある.
また, 日本のIPアドレスはAPNICのさらに下の階層にあるJPNIC(JPニック, 社団法人日本ネットワークインフォメーションセンター)によって管理されている.
JPNICは分配されたIPアドレスをさらにISPに分配し, 最終的にエンドユーザである我々の元へ分配される.
IPの特徴
特徴 | 説明 |
---|---|
コネクションレス型通信 | 通信に際して, 事前にノード間でコネクションを確立せずにいきなりデータ伝送をはじめる通信のこと. ただし, 上位層でTCPを使用すれば, コネクション型の通信となる. 上位層でUDPを使用した場合はコネクションレス型通信のままである. |
ベストエフォート型通信 | 通信に際してベストエフォート(最善の努力)は尽くすが, 必ずしも十分な品質は保証しない通信のこと. ただし, 上位層でTCPを使用することで, IPを使用した通信であってもパケット損失がないように見せることができる. |
階層型アドレッシング | IPによって割り当てられる論理アドレス(IPアドレス)は, コンピュータが所属しているグループ(ネットワーク部)と, そのネットワークに接続されているノード(ホスト部)の2階層で構成されている. |
MTU
MTU(Maximum Transmission Unit)とは, 1回のデータ転送で送信可能なIPパケットの最大値のことである.
例えば, Ethernetを用いたLANの場合, Ethernetフレームが最大1518byteのため, 14byteのEthernetヘッダと4byteのFCSを除いた1500byteがMTUとなる.
また, PPPoEを使用する場合, EthernetヘッダとFCSに加え, 6byteのPPPoEヘッダと2byteのPPPヘッダも考慮する必要があるため, 1500byteからさらに8byteを引いて, 1492byteがMTUとなる.