Ręczne wyznaczanie wartości MTU (Maximum Transmission Unit )
Dodany: 2012-11-26 12:03
(zmodyfikowany: 2012-11-26 12:08)
Przez: ba10
Wyświetleń: 26254
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.