メインコンテンツまでスキップ

5. パケットサイズの問題 (Packet Size Issues)

IPv6 は、インターネット上のすべてのリンクが 1280 オクテット以上の MTU を持つことを要求します。1280 オクテットのパケットを一つのフラグメントで転送できないリンクでは、IPv6 より下の層でリンク固有のフラグメント化と再組み立てを提供しなければなりません。

設定可能な MTU を持つリンク(例: PPP リンク [RFC-1661])は、少なくとも 1280 オクテットの MTU に設定されなければなりません。IPv6 層のフラグメント化を引き起こすことなく可能なカプセル化(すなわちトンネリング)に対応するため、1500 オクテット以上の MTU に設定することが推奨されます。

ノードは、直接接続されている各リンクについて、そのリンクの MTU と同じ大きさのパケットを受け入れられなければなりません。

IPv6 ノードは、1280 オクテットより大きいパスの MTU を発見して利用するために、Path MTU Discovery(パス MTU 探索)[RFC-1981] を実装することが強く推奨されます。ただし、最小限の IPv6 実装(例: ブートROM内)は、1280 オクテットを超えないパケットの送信に限定し、Path MTU Discovery の実装を省略することができます。

パスの MTU より大きいパケットを送信するために、ノードは IPv6 Fragment ヘッダーを使用して送信元でパケットをフラグメント化し、宛先で再組み立てすることができます。ただし、測定されたパスの MTU(最小 1280 オクテット)に合わせてパケットを調整できるアプリケーションでは、このようなフラグメント化は推奨されません。

ノードは、再組み立て後に 1500 オクテットと同じ大きさのフラグメント化されたパケットを受け入れられなければなりません。ノードは再組み立て後に 1500 オクテットを超えるフラグメント化されたパケットを受け入れることが許可されています。パスの MTU より大きいパケットを送信するために IPv6 フラグメント化に依存する上位層プロトコルまたはアプリケーションは、宛先がその大きなサイズのパケットを再組み立てできることが保証されない限り、1500 オクテットを超えるパケットを送信すべきではありません。

IPv4 宛先(すなわち IPv6 から IPv4 に変換されるパケット)に送信された IPv6 パケットへの応答として、発信 IPv6 ノードは Next-Hop MTU が 1280 未満であることを報告する ICMP Packet Too Big メッセージを受信する場合があります。この場合、IPv6 ノードは後続パケットのサイズを 1280 未満に削減する必要はありませんが、IPv6 から IPv4 への変換ルーターが生成される IPv4 フラグメントで使用するための適切な Identification 値を取得できるように、これらのパケットに Fragment ヘッダーを含めなければなりません。これは、追加の拡張ヘッダーが使用される場合はさらに小さくなりますが、ペイロードを 1232 オクテット(1280 から IPv6 ヘッダーの 40 オクテットと Fragment ヘッダーの 8 オクテットを引いた値)に削減しなければならない場合があることに注意してください。