Path MTU Discovery
MTUの値は固定で設定する方法と, Path MTU Discoveryによる自動検出により設定する方法の2種類がある.
Path MTU Discoveryは, 経路上のMTUの最小値を検出し, ICMPメッセージ(タイプ: 3, コード: 4)によりその情報を送信し, MTUの値を自動で修正させる.
RFC1191
Path MTU Discoveryの規格がRFC1191の場合の動作を説明する.
ルータの受信したパケット量が許容範囲を超えていてかつパケットにフラグメントが禁止の設定がされている場合, そのパケットを破棄してICMPメッセージ(タイプ: 3, コード: 4)を送信元ホストへ送信する.
そのICMPメッセージを受信したホストはMTUの値を自動調整して再度パケットの送信を行い, 正常に通信できるようになる.
ちなみに, ルータの受信したパケット量が許容範囲を超えていてもパケットにフラグメントが禁止の設定がされていない場合はフラグメントを行いパケットを送信するが, その場合はその処理をするためにスループットが低下する.
RFC2923
経路上に異なるMTUの値が存在していてもPath MTU Discoveryによって通信することが可能となるが, ICMPメッセージ(タイプ: 3, コード: 4)を送信元ホストに送信しない設定や, 途中の経路でICMPメッセージがフィルタリングされている場合は下図のように通信ができない状態が発生する.
この問題をPath MTU Discoveryブラックホールと呼び, RFC2923として文書が公開されている.