Path MTU Discovery
Die Path MTU Discovery ist eine Methode die optimale MTU zwischen zwei Kommunikationspartnern zu finden. Dabei wird der kleinste gemeinsame Nenner ermittelt. Diese Methode hat den Vorteil, dass wenn der Sender die maximale Größe im Vorfeld kennt, seine Datenpakete automatisch (vor dem Senden) auf die richtige Größe anpassen kann. Ansonsten müssten die Pakete im laufe des Transportweges fragmentiert werden, was je nach Applikation zu Problemen führt.1
Path Discovery Prozess
- Zunächst wird von der Applikation angenommen, dass die Path MTU, die des Interfaces ist. Standard ist 1500.
- Um nun festzustellen, welche MTU genutzt werden kann, wird beim versenden von TCP Paketen das Dont Fragment (DF) Bit gesetzt. Damit sagen wir den Routern und anderen Netzwerkgeräten, das dieses Paket nicht fragmentiert werden darf.
- Muss das Paket nun ein Weg durchqueren beidem das Paket fragmentiert werden müsste, so wird es von dem Router verworfen. Der Router sendet außerdem eine ICMP Message (“Fragmentation Needed and DF Set”) zurück, indem die passende MTU Size enthalten ist. Anhand dieser Nachricht kann der Sender die MTU Size anpassen.
- Dieser Prozess wiederholt sich, bis der Sender die passende MTU Size gefunden hat.
PMTUD kann Probleme bekommen, wenn bspw. eine Firewall die ICMP Pakete filtert. Somit würde der Sender nicht über eine kleinere MTU Größe informiert werden. Allerdings kann, besonders im TCP Datenverkehr, die MSS Größe als Paket Größe genutzt werden. Diese wird nämlich im TCP Handshake ausgehandelt.2