Подробно описание на стойността на параметъра MTU
В компютърните мрежи терминът максимална предавателна единица (MTU) означава максималния размер на полезен товар от един пакет (на английски payload), който може да бъде предаден от протокола без фрагментация. Обикновено заглавките на протоколите не са включени в MTU, но в някои системи може да бъдат включени някои заглавки на протоколи. Когато се говори за MTU, те обикновено имат предвид протокола на слоя на връзката на мрежовия модел OSI.
Този термин обаче може да се приложи и към други нива:
L1 - медия mtu (пълен L2 кадър);
L2 - mtu, hw mtu, система mtu;
L3 - ip mtu (ip хедърът се взема предвид), mtu маршрутизиране;
L4 - tcp mss Извън системата: тунел mtu, vlan mtu, mpls mtu.
Ограничението за максималния размер на рамката се налага поради няколко причини:
- За намаляване на времето за повторно предаване в случай на загуба на пакет или непоправима повреда. Вероятността от загуба се увеличава с увеличаване на дължината на пакета.
- Така че в полудуплексния режим на работа хостът да не заема канала за дълго време (също за тази цел се използва междукадровият интервал (англ. Interframe gap)).
- Колкото по-голям е пакетът, който се изпраща, толкова по-дълго се чака за изпращане на други пакети, особено на серийни интерфейси. Следователно малък MTU беше уместен в дните на бавни комутируеми връзки.
- Малък размер и производителност на мрежовите буфери за входящи и изходящи пакети. Въпреки това, буферите, които са твърде големи, също влошават производителността.
Стойността на MTU се определя от съответния стандарт на протокола, но може да бъде заменена автоматично за конкретен поток (от протокола PMTUD) или ръчно за желания интерфейс. На някои интерфейси MTU по подразбиране може да бъде зададено по-ниско от максимално възможното. Стойността на MTU по правило е ограничена отдолуминималната разрешена дължина на рамката.
За мрежа с висока производителност причините, причинили първоначалните MTU ограничения, са остарели. В тази връзка стандартът Jumbo frame с увеличен MTU е разработен за Ethernet.
Хостът знае стойността на MTU за своя собствен (евентуално и за своите съседи) интерфейс, но минималната стойност на MTU за всички мрежови възли обикновено е неизвестна. Друг потенциален проблем е, че протоколите от по-висок слой могат да създават по-големи пакети, които не се поддържат от други възли в мрежата.
Преминаването на големи пакети през мрежата с фрагментация. За да преодолее тези проблеми, IP поддържа фрагментация, която позволява дейтаграмата да бъде разбита на по-малки части, всяка достатъчно малка, за да премине безпрепятствено през възела, причиняващ фрагментацията. Пакетните фрагменти се маркират, така че IP адресът на целевия хост да може да сглоби повторно фрагментите в оригиналната дейтаграма. Недостатъците на фрагментирането на пакети са скоростта.
Въпреки че фрагментацията решава проблема с несъответствието на размера на пакетите и стойностите на MTU, тя значително намалява производителността на мрежовите устройства. В тази връзка през 1988 г. е предложена алтернативна технология, наречена Path MTU discovery (RFC 1191). Същността на технологията е, че при свързване на два хоста се задава параметърът DF (не фрагментирайте - не фрагментирайте), който забранява фрагментирането на пакети. Това кара възел, чиято MTU стойност е по-малка от размера на пакета, да отхвърли пакета и да изпрати ICMP съобщение „изисква се фрагментиране, но неговият флаг за отказ (DF) е зададен“. Изпращащият хост намалява размера на пакета и го изпраща отново. Тази операция продължава, докато пакетът стане достатъчно малък, за дадостигнете до целевия хост без фрагментация.
Тази технология обаче има и потенциални проблеми. Някои рутери са конфигурирани от администраторите да блокират напълно ICMP пакетите (това не е много умно, но може да е най-лесното решение за няколко проблема със сигурността). В резултат на това, ако размерът на пакета не съвпада с MTU стойността в определен раздел, пакетът се отхвърля и изпращащият хост не може да получи информация за MTU стойността и не изпраща отново пакета. Следователно връзката между хостовете не е установена. Проблемът се нарича MTU Discovery Black Hole (RFC 2923) и протоколът е модифициран, за да открива такива рутери.
Тъй като Windows (XP, 7, 8) автоматично избира най-добрия MTU (PMTU), в нашия случай просто трябва да се уверите, че тази връзка не е зададена на някаква неоптимална фиксирана стойност. Между другото, това е най-оптималната стойност, която можете да разберете доста лесно, като проведете прост експеримент. Отворете конзолата cmd.exe и въведете командата в нея:
PING -f -l 1472 xxx.xxx.xxx.xxx
-f забранява фрагментирането на пакета,
-l задава размера на пакета.
Ако получите нещо като „Отговор от xxx.xxx.xxx.xxx: bytes=1472 time=144ms TTL=10” в отговор, тогава това ще означава, че MTU=1500 (28 байта от заглавката не се вземат предвид). Ако отговорът е „Пакетът трябва да бъде фрагментиран, но DF зададен“, тогава намалете стойността от 1472, докато получите преминаване на пакета - тази стойност плюс 28 байта от заглавката ще бъде равна на желания MTU.
Получената стойност (+28 заглавни байта) трябва да се сравни с MTU стойността, използвана от системата, която може да бъде определена с помощта на командата на същия команден ред:
netsh интерфейс ipv4 показва подинтерфейси
(В резултат на това ще се покаже стойността на MTU за ipv4 мрежови интерфейси).
Можете да промените стойността на MTU в Windows (XP, 7, 8), като използвате командата
(Препоръчително е да извършите действието за промяна на настройките само за опитен потребител, тъй като неправилна стойност ще се отрази на мрежата влошаване.):
netsh интерфейс ipv4 задаване на подинтерфейс “ХХХХХХХХ” mtu=1500 store=persistent
Където XXXXXXXXX е името на мрежовия интерфейс (По подразбиране е "Local Area Connection", за удобство можете да го преименувате, например, на Lan1 в папката "Network Connections" в "Control Panel").
За разлика от Windows OS, повечето рутери (Wi-Fi домашни рутери) използват статична MTU настройка, посочена в настройките на рутера. MTU по подразбиране е 1500.
Доставчикът "Triolan" осигурява предаването на Ethernet пакети с максимален полезен размер, който съответства на настройката MTU 1500.
Има доставчици, чиито мрежови настройки ограничават размера на MTU до стойностипо-малки от 1500. Често това се дължи на използването на допълнителни протоколи за капсулиране (PPPoE, L2P и др.). В този случай Windows задава необходимата стойност на MTU с помощта на протокола PMTU, но в случай на проблеми може да са необходими настройките, описани по-горе. По-често проблемите с MTU са свързани с рутери, в които стойността на MTU е неправилно конфигурирана.За мрежите Triolan тази стойност е 1500, за други мрежи може да се определи с помощта на командния ред, както е описано по-горе.