Na Styku Sieci Na Styku Sieci
Aa
  • Start
  • Routing & Switching
  • Wireless
  • Certyfikacja
  • Wokół sieci
  • NSSletter
Na Styku Sieci Na Styku Sieci
Aa
Szukaj
  • Start
  • Newsletter
  • Kategorie
    • Routing & Switching
    • Wireless
    • Certyfikacja
    • Wokół sieci
  • Przydatne linki
    • Kontakt
Routing & Switching

L2 MTU, IP MTU i TCP MSS pod lupą

Damian Michalak
Damian Michalak 19 stycznia 2017 Komentarze: 5
Udostępnij
Czas czytania: 6 min
Udostępnij

W trakcie zarówno nauki jak i pracy z sieciami komputerowymi, często przewijają się takie terminy jak MTU czy MSS. Po bliższym przyjrzeniu się tematowi okazuje się, że MTU nie jest dość precyzyjnym określeniem i tak naprawdę mamy do czynienia z L2 MTU oraz z IP MTU. No i do tego dochodzi nam jeszcze MSS… Jak to wszystko się ze sobą wiąże?

W artykule:
Czym jest MSS?Czym jest MTU?Komendy

Czym jest MSS?

Zgodnie ze standardem TCP, domyślnym rozmiarem wysyłanego segmentu jest 576 bajtów – wraz 40 bajtami nagłówków TCP i IP. Zenkapsulowana zawartość L4 PDU ma zatem 536 bajtów. W trakcie TCP 3-way handshake, segmenty z ustawioną flagą SYN mogą poinformować w opcji TCP, że dany host jest w stanie przyjąć segmenty o większym rozmiarze. Opcja ta to Maximum Segment Size (MSS) i może być ustawiona niezależnie dla każdego przepływu danych (innymi słowy MSS jest rozgłaszane niezależnie w obu kierunkach transmisji i nie musi być takie same). Bardzo często zaobserwowaną wartością MSS będzie 1460 bajtów, co wynika wprost z rozmiaru ramki Ethernet (o czym za chwilę). Dobrze to widać w Wiresharku:

MSS w segmencie TCP

Jednym z problemów, które możemy napotkać w związku z MSS, jest rozgłaszanie przez odbiorcę MSS większego niż maksymalne MTU na ścieżce transmisyjnej – co powoduje fragmentację. Rozwiązaniem tego problemu jest mechanizm PMTU omówiony w dalszej części artykułu.

Czym jest MTU?

Generalnie rzecz biorąc MTU (Maximum Transmission Unit) jest maksymalnym rozmiarem jednostki danych, którą możemy przesłać przez określone medium bez fragmentacji. Duże MTU powoduje, że można wysłać co prawda mniej pakietów (mniejszy jest również narzut związany z nagłówkami), jednakże może powodować również większe zatłoczenie (congestion) w sieci, zwłaszcza w wypadku konieczności retransmisji uszkodzonych pakietów. Zmienne MTU jest niepożądane ponieważ powoduje fragmentację pakietów (której chcemy uniknąć za wszelką cenę). Jak się okazuje, możemy wyróżnić dwa rodzaje MTU:

Powiązane publikacje

Wersjonowanie IOS oraz IOS XE
ROMMON – wszystko co musisz wiedzieć
Rodziny systemu Cisco IOS
Konfiguracja VLANów na przełącznikach Cisco
MACsec – szyfrowanie w warstwie drugiej

a) L2 MTU

W wypadku Ethernetu (v2) wartość L2 MTU wynosi 1500 bajtów (dla kontrastu FDDI – 4352 bajty). Oznacza to, że zenkapsulowany w ramce ethernetowej pakiet może mieć maksymalny rozmiar 1500 bajtów – w przeciwnym wypadku będziemy musieli dokonywać fragmentacji na poziomie pakietu IP. Jak to wygląda w Wiresharku? Wireshark pokazuje, że otrzymał 1514 bajtów – nie wlicza w to jednak FCS (4 bajty) oraz preambuły (8 bajtów) – zatem rzeczywisty rozmiar ramki to 1526 bajtów. Rozmiar ten może się dodatkowo zwiększyć kiedy stosujemy tagowanie VLANów (dodatkowe 4 bajty) lub tunelowanie Q-in-Q.

Bliższe spojrzenie na L2 MTU

Mamy zatem 1526 bajtów, które rozbija się następująco:

  1. Ramka:
    • nagłówek i stopka (konia z rzędem temu kto zaproponuje dobre tłumaczenie słowa „trailer„…): 26 bajtów
    • payload (zenkapsulowany pakiet IP): 1500 bajtów <- czyli L2 MTU
  2. Pakiet:
    • nagłówek: 20 bajtów
    • payload (zenkapsulowany segment TCP): 1480 bajtów
  3. Segment:
    • nagłówek: 20 bajtów
    • payload (dane warstwy aplikacyjnej): 1460 bajtów <- czyli nasz MSS

Niektóre urządzenia mogą wspierać tzw. Jumbo Frames, czyli ramki ethernetowe o rozmiarze przekraczającym 1500 bajtów (teoretycznie zawartość ramki (payload) może wynieść nawet 9000 bajtów). Jumbo Frames mogą być pożądane w przypadku niektórych nowoczesnych aplikacji.

b) IP MTU

IP MTU jest niczym innym jak maksymalnym rozmiarem pakietu IP – z tym, że w tym wypadku wartość IP MTU oznacza rozmiar całego pakietu (nie tylko zenkapsulowany segment, ale również nagłówek IP!). W większości wypadków IP MTU będzie równe L2 MTU. Można by się zastanowić po co w zasadzie dwie wartości skoro wydaje się, że by wystarczyła jedna? Już spieszę z odpowiedzią. W przypadku etykietowania MPLS, każda etykieta zwiększa nam rozmiar payloadu ramki o 4 bajty. Jeśli więc IP MTU byłoby równe L2 MTU to nie bylibyśmy w stanie upakować etykiet. Zatem w takiej sytuacji zazwyczaj się stosownie zwiększa L2 MTU. Aby umożliwić dodawanie dwóch etykiet należałoby zwiększyć L2 MTU do 1508 bajtów – 8 bajtów na dwie etykiety, 1500 bajtów na pakiet (IP MTU), po 20 bajtów na nagłówki IP i TCP i 1460 bajtów payloadu w warstwie transportowej (czyli tyle ile wynosi MSS). Mam nadzieję, że teraz już jest jasne jak to wszystko się ze sobą zazębia 🙂

Korelacja pomiędzy L2 MTU, IP MTU, a MSS

Komendy

Najważniejsze komendy związane z MSS i MTU wyglądają w przypadku urządzeń Cisco następująco:

  1. MSS:
    • ip tcp mss bytes – ustawia MSS, ale wpływa tylko na ruch do i z routera (management plane)
    • ip tcp adjust-mss bytes – ta komenda wpływa na MSS ruchu tranzytowego, nie jest ona jednak w stanie zwiększyć MSS – jedynie może zmniejszyć MSS w segmencie jeśli ten przekracza ustawioną wartość.
  2. L2 MTU:
    • system mtu bytes – zmiana wartości L2 MTU globalnie
    • system mtu jumbo bytes – zmiana wartości L2 MTU dla jumbo frames globalnie
    • mtu bytes – zmiana wartości L2 MTU na poziomie interfejsu
  3. IP MTU:
    • ip mtu bytes – zmiana wartości IP MTU na poziomie interfejsu. Nie jest możliwa zmiana globalnie.

TAGI: MSS, MTU
Co sądzisz o artykule?
Extra3
Ok0
Nuda0
Ugh0
Poprzedni artykuł Cisco IOS XE – esencja modularności i redundancji?
Następny artykuł Problemy w sieci – routing asymetryczny, unicast flooding i inne
Komentarze: 5
Zaloguj się
guest

guest

5 - Ilość komentarzy
Sortuj wg najlepszych
Sortuj wg najnowszych Sortuj wg najstarszych
Inline Feedbacks
View all comments
RiFF
RiFF
6 lat temu

Super , bardzo fajnie to opisałeś. Może rozszerzysz ten opis jeszcze o protokoły VPN , jaki MTU ma wtedy wpływ na zestawione sesje / tunele

1
0
Odpowiedz
Jenkins
Jenkins
3 lat temu
Odpowiedź do  RiFF

Podpinam się pod prośbę \”RiFF\”

1
0
Odpowiedz
Damian Michalak
Autor
Damian Michalak
3 lat temu
Odpowiedź do  Jenkins

Dzięki Jenkins, dopisane do listy tematów do opracowania

0
0
Odpowiedz
Andrzej
Andrzej
1 rok temu
Odpowiedź do  RiFF

Trochę już minęło, ale podpinam się również!!!

0
0
Odpowiedz
Damian Michalak
Autor
Damian Michalak
1 rok temu
Odpowiedź do  Andrzej

❤️

0
0
Odpowiedz

NA STYKU SIECI

Tworzymy społeczność sieciowców skupioną dookoła rozwiązań oraz certyfikacji firmy Cisco Systems.
Przydatne linki
  • Kontakt
Nasze projekty
  • NSSletter
  • Szkoła Sieci

© Na Styku Sieci 2023 - powered by Alvortech

Witaj ponownie!

Zaloguj się na swoje konto

Zapomniałeś/aś hasło?