Wykrywanie MTU ścieżki

Path MTU Discovery ( PMTUD ) to znormalizowana technika w sieciach komputerowych do określania maksymalnego rozmiaru jednostki transmisji (MTU) na ścieżce sieciowej między dwoma hostami protokołu internetowego (IP), zwykle w celu uniknięcia fragmentacji IP . PMTUD był pierwotnie przeznaczony dla routerów z protokołem internetowym w wersji 4 (IPv4). Jednak wszystkie nowoczesne systemy operacyjne używają go na punktach końcowych. W IPv6 , ta funkcja została wyraźnie delegowana do punktów końcowych sesji komunikacyjnej. Jako rozszerzenie standardowego wykrywania MTU ścieżki, technika o nazwie Packetization Layer Path MTU Discovery działa bez wsparcia ze strony ICMP .

Realizacja

W przypadku pakietów IPv4 funkcja Path MTU Discovery działa poprzez ustawienie bitu flagi Don't Fragment (DF) w nagłówkach IP pakietów wychodzących. Następnie każde urządzenie na ścieżce, którego MTU jest mniejsze niż pakiet, porzuci go i odeśle Internet Control Message Protocol (ICMP) Wymagana fragmentacja (typ 3, kod 4) zawierający jego MTU, umożliwiając hostowi źródłowemu zmniejszenie jego Ścieżka MTU odpowiednio. Proces jest powtarzany, aż jednostka MTU będzie wystarczająco mała, aby przejść całą ścieżkę bez fragmentacji.

Ponieważ routery IPv6 nie fragmentują pakietów, w nagłówku IPv6 nie ma opcji Don't Fragment . W przypadku protokołu IPv6 funkcja Path MTU Discovery polega na początkowym założeniu, że MTU ścieżki jest takie samo jak MTU w warstwy łącza , z którego pochodzi ruch. Następnie, podobnie jak w przypadku IPv4, każde urządzenie na ścieżce, którego MTU jest mniejsze niż pakiet, porzuci pakiet i odeśle komunikat ICMPv6 Packet Too Big (Typ 2) komunikat zawierający jego MTU, umożliwiający hostowi źródłowemu odpowiednie zmniejszenie MTU ścieżki. Proces jest powtarzany, aż jednostka MTU będzie wystarczająco mała, aby przejść całą ścieżkę bez fragmentacji.

Jeżeli Path MTU zmieni się po nawiązaniu połączenia i będzie niższe niż poprzednio określone Path MTU, pierwszy duży pakiet spowoduje błąd ICMP i zostanie znaleziona nowa, niższa MTU Path. Jeśli ścieżka się zmieni, a MTU nowej ścieżki będzie większe, źródło nie dowie się o zwiększeniu, ponieważ routery nie przechowują stanu.

Problemy

Wiele urządzeń zabezpieczających sieć blokuje wszystkie komunikaty ICMP w celu uzyskania korzyści związanych z bezpieczeństwem, w tym błędów niezbędnych do prawidłowego działania PMTUD. Może to spowodować, że połączenia prawidłowo zakończą uzgadnianie trójstronne TCP , ale następnie zawieszą się podczas przesyłania danych. Ten stan jest określany jako połączenie czarnej dziury .

Niektóre implementacje PMTUD próbują zapobiec temu problemowi, wnioskując, że duże pakiety danych zostały odrzucone z powodu MTU, a nie z powodu przeciążenia łącza. Aby jednak protokół kontroli transmisji (TCP) działał najefektywniej, należy zezwolić na komunikaty ICMP Unreachable (typ 3). Niezawodna metoda PMTUD, która opiera się na protokole TCP lub innym protokole do sondowania ścieżki z coraz większymi pakietami, została znormalizowana w dokumencie RFC 4821.

Obejście stosowane przez niektóre routery polega na zmianie maksymalnego rozmiaru segmentu (MSS) wszystkich połączeń TCP przechodzących przez łącza o MTU niższym niż domyślna wartość Ethernet 1500. Jest to znane jako blokowanie MSS .