Ręczne wyznaczanie wartości MTU (Maximum Transmission Unit )

Kategoria: FAQ, etykiety: mtu

Dodany: 2012-11-26 12:03 (zmodyfikowany: 2012-11-26 12:08)
Przez: ba10

Wyświetleń: 16446

MTU (Maximum Transmission Unit ) jest to maksymalna wielkość pakietu przesyłana pomiędzy dwoma hostami liczona w bajtach. W Ethernet II maksymalne MTU jest równe 1500 bajtów i gdy jest większa od tej wartości, pakiet jest dzielony na mniejsze części co może spowodować opóźnienie w transmisji. Domyślne ustawienia MTU są przedstawione poniżej i opisane w RFC 1191

    MTU    Comments                      Reference
   ------     ---    --------                      ---------
              65535  Official maximum MTU          RFC 791
              65535  Hyperchannel                  RFC 1044
   65535
   32000             Just in case
              17914  16Mb IBM Token Ring           ref. [6]
   17914
              8166   IEEE 802.4                    RFC 1042
   8166
              4464   IEEE 802.5 (4Mb max)          RFC 1042
              4352   FDDI (Revised)                RFC 1188
   4352 (1%)
              2048   Wideband Network              RFC 907
              2002   IEEE 802.5 (4Mb recommended)  RFC 1042
   2002 (2%)
              1536   Exp. Ethernet Nets            RFC 895
              1500   Ethernet Networks             RFC 894
              1500   Point-to-Point (default)      RFC 1134
              1492   IEEE 802.3                    RFC 1042
   1492 (3%)
              1006   SLIP                          RFC 1055
              1006   ARPANET                       BBN 1822
   1006
              576    X.25 Networks                 RFC 877
              544    DEC IP Portal                 ref. [10]
              512    NETBIOS                       RFC 1088
              508    IEEE 802/Source-Rt Bridge     RFC 1042
              508    ARCNET                        RFC 1051
   508 (13%)
              296    Point-to-Point (low delay)    RFC 1144
   296
   68                Official minimum MTU          RFC 791

Może nam się zdarzyć długie ładowanie stron www, lub ich części lub ładowanie tylko niektórych stron www. Niektóre protokoły jak na przykład VPN, PPPoE, PPPoA mogą wymagać innych wartości MTU niż 1500 bajtów. Wtedy możemy ręcznie wyznaczyć wartość MTU. W tym celu wykorzystujemy polecenie ping z ustawioną wielkością pakietu. Wybieramy sobie adres strony www z której często korzystamy i zaczynamy od najwyższego ustawienia MTU w tym przypadku 1500 bajtów i schodzimy w dół na przykład o 10 patrząc czy mamy odpowiedź.

ping -s 1500 wp.pl

brak odpowiedzi to niżej o np. 10

ping -s 1490 wp.pl

i tak dalej, aż zaczniemy dostawać odpowiedzi np.

ping -s 1390 wp.pl
PING wp.pl (212.77.100.101) 1390(1418) bytes of data.
1398 bytes from www.wp.pl (212.77.100.101): icmp_req=1 ttl=248 time=10.0 ms

Gdy już metodą prób i błędów sprecyzujemy dokładną wielkość MTU musimy do niej dodać wartość nagłówków TCP/UDP 28 bajtów. Należy pamiętać, że gdy korzystamy z polecenia ping to do wyznaczonej przez nas wartości jest dodawany nagłówek protokołu ICMP wielkości 8 bajtów. Tak wyznaczoną wielkość MTU ustawiamy na przykład za pomocą polecenia ifconfig :

ifconfig eth0 mtu  1418

lub ustawić na stałe w pliku /etc/network/interfaces :

auto eth0
iface eth0 inet static
address 192.168.1.1
network 192.168.1.0
gateway 192.168.1.254
netmask 255.255.255.0
mtu 1418

Warto dodać, że MTU ma wpływ na rozmiar MSS (Maximum Segment Size) czyli wielkość segmentu TCP, która jest o 40 bajtów (rozmiar nagłówka Ip i TCP) niższa od MTU.

OSnews Wykop Blip Flaker Kciuk Śledzik Facebook Identi.ca Twitter del.icio.us Google Bookmarks