Path MTU Discovery

Path MTU Discovery ( PMTUD ) är en standardiserad teknik i datornätverk för att bestämma den maximala storleken på överföringsenheten (MTU) på nätverksvägen mellan två Internet Protocol (IP) värdar, vanligtvis med målet att undvika IP-fragmentering . PMTUD var ursprungligen avsedd för routrar i Internet Protocol Version 4 (IPv4). Men alla moderna operativsystem använder det på slutpunkter. I IPv6 har denna funktion uttryckligen delegerats till slutpunkterna för en kommunikationssession. Som en förlängning av standardsökvägen MTU-upptäckt fungerar en teknik som kallas Packetization Layer Path MTU Discovery utan stöd från ICMP .

Genomförande

För IPv4-paket fungerar Path MTU Discovery genom att ställa in flaggbiten Don't Fragment (DF) i IP-huvudena för utgående paket. Sedan kommer alla enheter längs vägen vars MTU är mindre än paketet att tappa det och skicka tillbaka ett Internet Control Message Protocol (ICMP) Fragmentation Needed (Type 3, Code 4) meddelande som innehåller dess MTU, vilket gör att källvärden kan minska dess Sökväg MTU på lämpligt sätt. Processen upprepas tills MTU:n är tillräckligt liten för att korsa hela banan utan fragmentering.

Eftersom IPv6-routrar inte fragmenterar paket finns det inget alternativet Don't Fragment i IPv6-huvudet . För IPv6 fungerar Path MTU Discovery genom att initialt anta att sökvägen MTU är densamma som MTU:n på länklagergränssnittet där trafiken kommer från. Sedan, i likhet med IPv4, kommer alla enheter längs vägen vars MTU är mindre än paketet att tappa paketet och skicka tillbaka ett ICMPv6 Packet Too Big ( Type 2)-meddelande som innehåller dess MTU, vilket gör att källvärden kan reducera sin Path MTU på lämpligt sätt. Processen upprepas tills MTU:n är tillräckligt liten för att korsa hela banan utan fragmentering.

Om Path MTU ändras efter att anslutningen har ställts in och är lägre än den tidigare fastställda Path MTU, kommer det första stora paketet att orsaka ett ICMP-fel och den nya, lägre Path MTU kommer att hittas. Om sökvägen ändras och den nya sökvägen MTU är större kommer källan inte att lära sig om ökningen eftersom routrar inte lagrar status.

Problem

Många nätverkssäkerhetsenheter blockerar alla ICMP-meddelanden för upplevda säkerhetsfördelar, inklusive de fel som är nödvändiga för att PMTUD ska fungera korrekt. Detta kan resultera i anslutningar som slutför TCP trevägshandskakning korrekt, men som sedan hänger sig när data överförs. Detta tillstånd kallas för en anslutning med svarta hål .

Vissa implementeringar av PMTUD försöker förhindra detta problem genom att dra slutsatsen att stora nyttolastpaket har tappats på grund av MTU snarare än på grund av överbelastning av länken. Men för att Transmission Control Protocol) ska fungera mest effektivt bör ICMP Unreachable -meddelanden (typ 3) tillåtas. En robust metod för PMTUD som förlitar sig på TCP eller annat protokoll för att undersöka sökvägen med progressivt större paket har standardiserats i RFC 4821.

En lösning som används av vissa routrar är att ändra den maximala segmentstorleken (MSS) för alla TCP-anslutningar som passerar genom länkar med MTU lägre än Ethernet -standarden på 1500. Detta kallas MSS-klämning .