Vylaďte si IP síť na plný plyn
Velikost MTU pro jednotlivé standardy Standard Velikost MTU v bytech Ethernet (Ethernet II encapsulation) 1500 Ethernet (IEEE 802.3 SNAP encapsulation) 1492 FDDI 4352 X…
Velikost MTU pro jednotlivé standardy
Standard
Velikost MTU v bytech
Ethernet (Ethernet II encapsulation)
1500
Ethernet (IEEE 802.3 SNAP encapsulation)
1492
FDDI
4352
X.25
1600
Frame Relay
1600
ATM (Classical IP over ATM)
9180
Minimum MTU
576
Jak jsme testovali?
Celou sadou experimentů, které jsme realizovali v síti kombinovaný Fast Ethernet / Gigabit Ethernet přibližně v celkové délce 12 000 metrů na VOŠ a SPŠ ve Žďáře nad Sázavou jsme se dopracovali po čtrnácti dnech k finálním výsledkům.
Testovací síť, 12 kilometrů drátu a desítky aktivních prvků SMC a 3COM
Najít správnou odpověď, nebylo vůbec snadné. Složitost a struktura TCP/IP protokolu a k tomu doslova stovky skrytých parametrů Windows vedly často do slepých uliček. V některých případech jsme již jásali, že je vše super, ale bohužel se objevil problém například na protokolu ftp. Ten je například ovlivňován hned dvěma větvemi v registru Windows a jedním v nastavení vlastního ftp serveru. Jak tedy vypadá výsledná optimalizace, kterou je vhodné nahrát na každou stanici i servery pracující na architektuře Windows NT (2000, XP, 2003)?
Troška teorie
V minulých článcích a na našem serveru je publikována poměrně rozsáhlá teorie optimalizace TCP/IP přenosu. Samotný internet je nedozírnou studnou všech možných nastavení. My jsme ovšem nakonec vyšli z teorie a tu experimentálně upravili pro naše potřeby.
MTU (Maximum Transmission Unit) je základem
Standard RFC1191 z roku 1990 určil maximální velikost paketu v sítích standardu Ethernet II na 1500 bytů. Tato hodnota v sobě zahrnuje standardní TCP a IP hlavičku (40 bytů).
Nejvyššího výkonu přenosu lze dosáhnout velikostí přijímaného okna jako sudého násobku maximální velikosti segmentu (MSS – Maximum Segment Size) protokolu TCP. Právě o hodnotu 40 bytů musíme zmenšit velikost MTU 1500 bytů abychom získali výchozí hodnotu pro určení MSS. To znamená:
MSS = 1500 – 40 = 1460 bytů
Doporučuji napřed pomocí tohoto software ověřit, jestli můžete ve vaší síti počítat s maximální hodnotou MTU na 1500 bytech.
Ověření velikosti MTU
Kritické hodnoty velikosti „TcpWindowSize“ a „GlobalMaxTcpWindowSize“, které určují maximální velikost přijímaného okna protokolu TCP/IP poskytovanou systémem (přijímané okno určuje, kolik bajtů může odesílatel přenést bez přijetí potvrzení) je určena jako sudý násobek MSS. Po našich testech v síti Fast Ethernet / Gigabit Ethernet:
TcpWindowSize = GlobalMaxTcpWindowSize = 6 x 1460 = 8760 bytů (2238 hex)
Často publikované pravidlo, že větší přijímaná okna zvyšují výkon v rychlých sítích není zase tolik pravdou. Při vyšších hodnotách se vyskytují problémy s nízkou odezvou koncových systémů, případně extrémní zahlcení sítě s heterogenním hardware (různé typy síťových adaptérů, aktivních prvků, apod.). Můžete pro rychlou analýzu svého PC použít třeba tento web.
Webová kalkulačka říká, že máme okno na plný výkon – násobek MSS
Jak tedy vypadá úprava registru pro Windows NT platformu?
Výsledná úprava registru je poměrně prostá, asi si řeknete, tohle, že vyřeší problémy v naší síti, když to řeší zástup odborníků třeba i výměnou síťových prvků. Ano :O) je to tak, vyřeší a budete mile překvapeni. Z těch přibližně 200 nedokumentovaných voleb registru stačí opravdu málo k úspěchu:
„EnablePMTUDiscovery“=dword:00000001
„SackOpts“=dword:00000001
„Tcp1323Opts“=dword:00000003
„TcpWindowSize“=dword:00002238
„GlobalMaxTcpWindowSize“=dword:00002238
„DefaultTTL“=dword:00000040
„MTU“ =dword:000005dc
„TcpRecvSegmentSize“=dword:000005b4
„TcpSendSegmentSize“=dword:000005b4