Maksymalna jednostka transmisji
W sieciach komputerowych maksymalna jednostka transmisji ( MTU ) to rozmiar największej jednostki danych protokołu (PDU), która może być przekazywana w pojedynczej transakcji warstwy sieciowej . MTU odnosi się do maksymalnego ramki , który może być transportowany w warstwie łącza danych , np. ramki Ethernet , ale nie jest z nim identyczny .
Większe MTU wiąże się z mniejszym obciążeniem. Mniejsze wartości MTU mogą zmniejszyć opóźnienie w sieci . W wielu przypadkach MTU zależy od podstawowych możliwości sieci i musi być dostosowywane ręcznie lub automatycznie, aby nie przekroczyć tych możliwości. Parametry MTU mogą pojawić się w powiązaniu z interfejsem komunikacyjnym lub standardem. Niektóre systemy mogą decydować o MTU w czasie łączenia, np. przy użyciu Path MTU Discovery .
Stosowalność
MTU dotyczą protokołów komunikacyjnych i warstw sieciowych . Jednostka MTU jest określana w bajtach lub oktetach największej jednostki PDU, którą warstwa może przekazać dalej. Parametry MTU zwykle pojawiają się w powiązaniu z interfejsem komunikacyjnym ( karta sieciowa , port szeregowy itp.). Standardy ( Ethernet ) mogą ustalać rozmiar jednostki MTU; lub systemy (takie jak łącza szeregowe typu punkt-punkt) mogą decydować o MTU w czasie połączenia.
Bazowe łącze danych i warstwy fizyczne zwykle dodają narzut do przesyłanych danych warstwy sieciowej, więc dla danego maksymalnego rozmiaru ramki medium należy odjąć wielkość narzutu, aby obliczyć MTU tego medium. Na przykład w sieci Ethernet maksymalny ramki wynosi 1518 bajtów, z czego 18 bajtów to narzut ( sekwencja sprawdzania nagłówka i ramki ), co daje MTU wynoszące 1500 bajtów.
Kompromisy
Większa MTU zapewnia większą wydajność, ponieważ każdy pakiet sieciowy przenosi więcej danych użytkownika, podczas gdy narzuty protokołów, takie jak nagłówki lub leżące u podstaw opóźnienia na pakiet, pozostają stałe; wynikająca z tego wyższa wydajność oznacza poprawę przepustowości protokołu masowego. Większa jednostka MTU wymaga również przetworzenia mniejszej liczby pakietów dla tej samej ilości danych. W niektórych systemach przetwarzanie pakietów może być krytycznym ograniczeniem wydajności.
Zysk ten nie jest jednak pozbawiony wad. Duże pakiety zajmują wolne łącze przez dłuższy czas niż mniejsze pakiety, powodując większe opóźnienia kolejnych pakietów oraz zwiększając opóźnienie sieci i zmienność opóźnień . Na przykład pakiet 1500-bajtowy, największy dozwolony przez Ethernet w warstwie sieciowej, wiąże modem 14,4 kB na około jedną sekundę.
Duże pakiety są również problematyczne w przypadku błędów komunikacyjnych. Jeśli nie korekcja błędów w przód , uszkodzenie pojedynczego bitu w pakiecie wymaga retransmisji całego pakietu, co może być kosztowne. Przy danej bitowej stopie błędów większe pakiety są bardziej podatne na uszkodzenie. Ich większa ładowność sprawia, że retransmisja większych pakietów trwa dłużej. Pomimo negatywnego wpływu na czas retransmisji, duże pakiety mogą nadal mieć pozytywny wpływ netto na wydajność protokołu TCP od końca do końca.
Protokół internetowy
Zestaw protokołów internetowych został zaprojektowany do pracy w wielu różnych technologiach sieciowych, z których każda może wykorzystywać pakiety o różnych rozmiarach. Podczas gdy host będzie znał MTU własnego interfejsu i prawdopodobnie swoich równorzędnych (na podstawie początkowych uścisków dłoni), początkowo nie będzie znał najniższego MTU w łańcuchu powiązań z innymi równorzędnymi. Innym potencjalnym problemem jest to, że protokoły wyższego poziomu mogą tworzyć pakiety większe niż obsługuje nawet łącze lokalne.
IPv4 umożliwia fragmentację , która dzieli datagram na części, z których każda jest wystarczająco mała, aby pomieścić określone ograniczenie MTU. Ten proces fragmentacji odbywa się w warstwie internetowej . Pofragmentowane pakiety są oznaczane, aby warstwa IP hosta docelowego wiedziała, że powinna ponownie złożyć pakiety w oryginalny datagram.
Aby pakiet został uznany za odebrany, muszą dotrzeć wszystkie fragmenty pakietu. Jeśli sieć upuści jakikolwiek fragment, cały pakiet zostanie utracony.
Gdy liczba pakietów, które muszą zostać pofragmentowane, lub liczba fragmentów jest duża, fragmentacja może spowodować nieuzasadnione lub niepotrzebne narzuty. Na przykład różne sytuacje związane z tunelowaniem mogą nieznacznie przekraczać MTU, ponieważ dodają tylko dane o wartości nagłówka. Dodatek jest niewielki, ale każdy pakiet musi być teraz wysłany w dwóch fragmentach, z których drugi niesie bardzo mało danych. Przenoszona jest ta sama ilość ładunku, ale każdy router pośredni musi przekazać dwa razy więcej pakietów.
Protokół internetowy wymaga, aby hosty były w stanie przetwarzać datagramy IP o długości co najmniej 576 bajtów (dla IPv4) lub 1280 bajtów (dla IPv6). Nie wyklucza to jednak przez warstwy łącza o MTU mniejszej niż ta minimalna MTU. Na przykład, zgodnie ze specyfikacją IPv6, jeśli dana warstwa łącza nie może dostarczyć datagramu IP o wielkości 1280 bajtów w pojedynczej ramce, wówczas warstwa łącza musi zapewnić własny mechanizm fragmentacji i ponownego składania, niezależny od mechanizmu fragmentacji IP, aby zapewnić, że 1280-bajtowy datagram IP może zostać dostarczony w stanie nienaruszonym do warstwy IP.
MTU dla popularnych mediów
W kontekście protokołu internetowego MTU odnosi się do maksymalnego rozmiaru pakietu IP , który można przesłać bez fragmentacji przez dane medium. Rozmiar pakietu IP obejmuje nagłówki IP, ale wyklucza nagłówki z warstwy łącza. W przypadku ramki Ethernet dodaje to 18 bajtów narzutu lub 22 bajty ze znacznikiem IEEE 802.1Q dla znakowania VLAN lub klasy usług .
MTU nie należy mylić z minimalnym rozmiarem datagramu, który muszą przyjąć wszystkie hosty. Jest to 576 bajtów dla IPv4 i 1280 bajtów dla IPv6 .
Media do transportu IP | Maksymalna jednostka transmisji (bajty) | Notatki |
---|---|---|
internetowa IPv4 MTU | Co najmniej 68, maksymalnie 64 KiB | Systemy mogą korzystać z Path MTU Discovery , aby znaleźć rzeczywistą MTU ścieżki. Routing z większego MTU do mniejszego MTU powoduje fragmentację IP . |
Internetowa ścieżka IPv6 MTU | Co najmniej 1280, maksymalnie 64 KiB, ale do 4 GiB z opcjonalnym jumbogramem | Systemy muszą używać Path MTU Discovery, aby znaleźć rzeczywistą MTU ścieżki. |
X.25 | Minimum 576 (wysyłanie) lub 1600 (odbieranie) | |
Ethernet v2 | 1500 | Niemal wszystkie implementacje protokołu IP over Ethernet używają formatu ramki Ethernet II . |
Ethernet z LLC i SNAP | 1492 | |
Ramki jumbo w sieci Ethernet | 1501 – 9202 lub więcej | Limit różni się w zależności od dostawcy. Aby zapewnić prawidłową współpracę, ramki nie powinny być większe niż maksymalny rozmiar ramki obsługiwany przez dowolne urządzenie w segmencie sieci . Ramki Jumbo są zwykle widoczne tylko w sieciach specjalnego przeznaczenia. |
PPPoE v2 | 1492 | Ethernet II MTU (1500) bez nagłówka PPPoE (8) |
DS-Lite przez PPPoE | 1452 | Ethernet II MTU (1500) bez nagłówka PPPoE (8) i nagłówka IPv6 (40) |
Duże ramki PPPoE | 1493 – 9190 lub więcej | Ethernet Jumbo Frame MTU (1501 - 9198) bez nagłówka PPPoE (8) |
IEEE 802.11 (WLAN) | 2304 | Maksymalny rozmiar MSDU to 2304 przed zaszyfrowaniem. WEP doda 8 bajtów, WPA-TKIP 20 bajtów, a WPA2-CCMP 16 bajtów. |
Token Ring (802.5) | 4464 | |
FDDI | 4352 |
Maksymalny rozmiar ramki Ethernet
Maksymalny rozmiar ramki IP MTU i Ethernet są konfigurowane oddzielnie. W konfiguracji przełącznika Ethernet MTU może odnosić się do maksymalnego rozmiaru ramki Ethernet. W routerach opartych na sieci Ethernet MTU zwykle odnosi się do IP MTU. Jeśli ramki typu jumbo , należy również zwiększyć MTU IP, aby to wykorzystać.
Ponieważ pakiet IP jest przenoszony przez ramkę Ethernet, ramka Ethernet musi być większa niż pakiet IP. Przy normalnym narzucie nieoznakowanej ramki Ethernet wynoszącym 18 bajtów, maksymalny rozmiar ramki Ethernet wynosi 1518 bajtów. Jeśli 1500-bajtowy pakiet IP ma być przesyłany przez oznakowane połączenie Ethernet, maksymalny rozmiar ramki Ethernet musi wynosić 1522 ze względu na większy rozmiar ramki oznakowanej 802.1Q. 802.3ac zwiększa standardowy maksymalny rozmiar ramki Ethernet, aby to uwzględnić.
Wykrywanie MTU ścieżki
Protokół internetowy definiuje MTU ścieżki transmisji internetowej jako najmniejszą MTU obsługiwaną przez dowolny przeskok na ścieżce między źródłem a miejscem docelowym. Innymi słowy, ścieżka MTU to największy rozmiar pakietu, który może przejść przez tę ścieżkę bez fragmentacji.
Wykrywanie MTU ścieżki to technika określania MTU ścieżki między dwoma hostami IP, zdefiniowanymi zarówno dla IPv4 , jak i IPv6 . Działa poprzez wysyłanie pakietów z opcją DF (nie fragmentuj) w zestawie nagłówków IP. Każde urządzenie na ścieżce, którego MTU jest mniejsze niż pakiet, porzuci takie pakiety i odeśle ICMP Destination Unreachable (Datagram Too Big) , który wskazuje jego MTU. Ta informacja pozwala hostowi źródłowemu odpowiednio zmniejszyć zakładaną MTU ścieżki. Proces jest powtarzany, aż jednostka MTU stanie się wystarczająco mała, aby przejść całą ścieżkę bez fragmentacji.
Standardowy Ethernet obsługuje MTU 1500 bajtów, a implementacja Ethernetu obsługująca duże ramki pozwala na MTU do 9000 bajtów. Jednak protokoły graniczne, takie jak PPPoE, zmniejszą to. Path MTU Discovery ujawnia różnicę między MTU widzianą przez węzły końcowe Ethernet i Path MTU.
Niestety, rosnąca liczba sieci odrzuca ruch ICMP (na przykład w celu zapobiegania atakom typu „odmowa usługi ”), co uniemożliwia wykrywanie MTU ścieżki. Packetization Layer Path MTU Discovery to technika Path MTU Discovery, która lepiej reaguje na filtrowanie ICMP. W sieci IP ścieżka od adresu źródłowego do adresu docelowego może ulec zmianie w odpowiedzi na różne zdarzenia ( równoważenie obciążenia , przeciążenie , przerwy w dostawie) itp.), a to może spowodować zmianę MTU ścieżki (czasami wielokrotnie) podczas transmisji, co może spowodować dalsze odrzucanie pakietów, zanim host znajdzie nową wiarygodną MTU.
Awaria funkcji Path MTU Discovery może spowodować, że niektóre witryny znajdujące się za źle skonfigurowanymi zaporami sieciowymi staną się nieosiągalne. Połączenie z niedopasowaną jednostką MTU może działać w przypadku danych o małej objętości, ale kończy się niepowodzeniem, gdy tylko host wyśle duży blok danych. Na przykład w przypadku Internet Relay Chat łączący się klient może zobaczyć początkowe wiadomości aż do początkowego polecenia ping (wysłane przez serwer jako środek zapobiegający fałszowaniu), ale po tym nie uzyskać żadnej odpowiedzi. Dzieje się tak, ponieważ duży zestaw komunikatów powitalnych wysyłanych w tym momencie to pakiety przekraczające ścieżkę MTU. Można to ewentualnie obejść, w zależności od tego, którą częścią sieci się kontroluje; na przykład można zmienić MSS ( maksymalny rozmiar segmentu ) w pakiecie początkowym, który ustanawia połączenie TCP na zaporze sieciowej.
W innych kontekstach
MTU jest czasami używane do opisania maksymalnych rozmiarów PDU w warstwach komunikacyjnych innych niż warstwa sieciowa.
- Cisco Systems i MikroTik używają MTU L2 dla maksymalnego rozmiaru ramki.
- Dell / Force10 używają MTU dla maksymalnego rozmiaru ramki.
- Hewlett Packard użył tylko MTU dla maksymalnego rozmiaru ramki, w tym opcjonalnego znacznika IEEE 802.1Q .
- Juniper Networks używa kilku terminów MTU: MTU interfejsu fizycznego (MTU L3 plus nieokreślony narzut protokołu), MTU interfejsu logicznego (zgodny z MTU IETF) i maksymalny MTU (maksymalny konfigurowalny rozmiar ramki dla ramek typu jumbo).
Transmisja pakietu w fizycznym segmencie sieci, który jest większy niż MTU segmentu, jest znana jako jabber . Prawie zawsze jest to spowodowane wadliwymi urządzeniami. Przełączniki sieciowe i niektóre koncentratory repeaterów mają wbudowaną funkcję wykrywania, kiedy urządzenie bełkocze.
Linki zewnętrzne
- Marc Slemko (18 stycznia 1998). „Wykrywanie MTU ścieżki i filtrowanie ICMP” . Zarchiwizowane od oryginału w dniu 9 sierpnia 2011 r . Źródło 2007-09-02 .
- Dostosowywanie MTU / RWin dla użytkowników Orange Broadband
- Jak ustawić wartość TCP MSS za pomocą iptables
- mturoute – narzędzie konsoli do debugowania problemów z mtu