IPフラグメンテーション

IP分割[1]: IP fragmentation)とは、Internet Protocol (IP) におけるデータグラム断片化であり、Maximum Transmission Unit (MTU) が通常のデータグラムのサイズより小さいリンク上でもパケットが転送できるようにする。

概要編集

RFC 791 でIP分割の手続きすなわちデータグラムの転送および再構築について記述している[2]RFC 815 では単純化した再構築アルゴリズムが記述されている[3]

IPプロトコル頭部の「識別子」欄、「フラグ」欄の「禁止」フラグと「継続」フラグを使用してIPデータグラムの断片化と再構築を行う。

IPv4ルーターが次のホップのMTUより大きい Protocol Data Unit (PDU) を受信した場合、2つの対処法がある。1つは、そのPDUを廃棄し、Packet too Big(パケットが大きすぎる)という条件を設定した Internet Control Message Protocol (ICMP) メッセージを送信元に返す方法である。もう1つは、IPパケットを断片化してMTUの小さいリンク上に送り出す方法である。IPv6では経路の途中のルータが断片化を行うことはできず、パケットを送信する前にパケットの最大長をMaximum Transmission Unitを決定し、それ以下のパケットを送信しなければならない(送出元が断片化して送り出すことはできる)。また、IPv6では1280バイト以下のパケットは断片化せずに送達可能であることを保証することになっている。

あるホストが断片化されたIPパケットを受信した場合、上位層プロトコルに渡す前にデータグラムの再構築を行う必要がある。再構築は一般に受信ホストで行うことになっているが、途中のルーターが再構築することもある。例えばネットワークアドレス変換では、RFC 2993 に記されているようにFTPなどでデータストリームの変換のために再構築する必要にせまられることがある[4]

断片化されたパケットが消失し、上位プロトコルがTCPなどの高信頼プロトコルだった場合、断片の一部が消失しただけなのにデータグラム全体の再送を要求することになるので、再送のオーバーヘッドが大きくなる[5]。そのため、一般にIPデータグラムのサイズを決定するのに2つの方法を使い、断片化をなるべく防ごうとする。1つは、送信側で最初のホップのMTUをIPデータグラムのサイズとして使用する方式である。もう1つは、経路MTU探索アルゴリズムを使う方法であり、こちらは RFC 1191 で記述されている[6]

IPv4 と IPv6 の差異編集

IPv4とIPv6では、断片化機構の詳細や断片化を含む全体的アーキテクチャが異なる。IPv4ではルーターが断片化を行うが、IPv6ではルーターはMTUより大きなパケットは破棄するため前述のように最大長をあらかじめ決め、それより小さいパケットを送らなければならない(送出元のみが断片化を行える)。なおIPv4とIPv6ではヘッダの形式が異なるが、断片化に関する欄は良く似ており、断片化と再構築のアルゴリズムは流用可能である。

IPv4では、再構築後のIPデータグラムの大きさが576バイト(IPv4の最小MTU)までなら最大努力で再構築を行う。再構築後のIPデータグラムの大きさが576バイトより大きい場合も再構築するが、そのような大きなデータグラムは何も通知せずに廃棄してもよいことになっている。IPv6ではそのしきい値が1500バイトに増やされている[7]

脚注編集

  1. ^ 福田 2001.
  2. ^ RFC 791, Internet Protocol, Information Sciences Institute (September 1981)
  3. ^ RFC 815, IP Datagram Reassembly Algorithms, David D. Clark (July 1982)
  4. ^ RFC 2993, Architectural Implications of NAT (November 2000)
  5. ^ Christopher A. Kent, Jeffrey C. Mogul. “Fragmentation Considered Harmful”. 2012年8月29日閲覧。
  6. ^ RFC 1191, Path MTU Discovery (November 1990)
  7. ^ RFC 2460, Internet Protocol, Version 6 (IPv6) Specification, S. Deering, R. Hinden (December 1998)

参考文献編集

  • 福田 洋治、佐野 工・白石 善明・森井 昌克「QoSを考慮したインターネットセキュリティプロトコルの提案」『情報処理学会研究報告 知能と複雑系』第125巻、一般社団法人情報処理学会、2001年7月23日、 69-76頁、 ISSN 091960722020年3月20日閲覧。

関連項目編集

外部リンク編集