Petr Fořt: Vylaďte si IP síť na plný plyn

úterý 2. listopadu 2004 ·

V nedávném článku „Multimédia v síti - nedejte na pověry“ jsem nastínil takové řešení školní sítě, které umožní sdílet výukové tituly z jediného disku na serveru. To je však jen součástí obecnějšího problému optimalizace TCP/IP přenosu. Jak je nejlepší nastavit každou stanici i servery pracující na architektuře Windows NT (2000, XP, 2003)?

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í bumbrlíček, 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

Na serveru www.repair2000.cz  je publikována poměrně rozsáhlá teorie optimalizace TCP/IP přenosu. I 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ů

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 hardwarem (různé typy síťových adaptérů, aktivních prvků, apod.).


Ú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 – 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:

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnablePMTUBHDetect"=dword:00000000
"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

Výsledky jsou naprosto bez komentáře: milisekundové odezvy serveru, sekundové starty aplikací ze serveru vzdáleného stovky metrů (například start síťového MS Office 2000 za 2 sekundy, Borland Builder 5 za 6 sekund, síťově přehrávatelná DVD na desítkách stanic, apod.).


FTP a WWW jsou opravdový oříšek

No a aby toho nebylo ještě dost, to, co jsme napsali výše, ještě nestačí k tomu, abyste oživili svižné přenosy FTP a WWW. Zkuste si ze svého FTP serveru v lokální síti stáhnout nějaký soubor. Jak rychle k vám přiteče po těch neskutečně rychlých drátech? Naše zkušenost je taková, že v 20  % případů se jedná o hodnoty na 1/5 možné přenosové rychlosti, v 60  % případů o hodnoty kolem 3/5 a v dalších 10  % případů o hodnoty kolem 4/5. No a těch 10  % je více či méně náhoda. Proč je to tak složité? Důvod je jednoduchý: ftp a http přenosy ve Windows jsou závislé na standardních parametrech ve větvi:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]

ale také na parametrech:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]
"DefaultReceiveWindow"=dword:00002000
"DefaultSendWindow"=dword:00001000
"LargeBufferSize"=dword:00002000
"MediumBufferSize"=dword:00001000
"SmallBufferSize"=dword:00000400
No a nakonec ještě na nastavení vlastních hodnot ReceiveWindow a SendWindow na ftp serveru. Sladit to celé je prostě alchymie. Jak tedy postupovat?

- Vymažte v registru tyto hodnoty:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters]
"DefaultReceiveWindow"=dword:00002000
"DefaultSendWindow"=dword:00001000
"LargeBufferSize"=dword:00002000
"MediumBufferSize"=dword:00001000
"SmallBufferSize"=dword:00000400

Prostě pryč s nimi, nechte určovat charakteristiku přenosu pouze ftp nebo http server.

- Akcelerujte TCP/IP

REGEDIT4

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnablePMTUBHDetect"=dword:00000000
"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

- Nastavte hodnoty ReceiveWindow a SendWindow přímo na serveru. Uvádíme několik příkladů.


Carbeus FTP


GuildFTP


A nakonec oblíbený Serv-U


A výsledky?

Pomocí Windows Commandera jsme zkusili upload a download souboru. Naměřené hodnoty pro jednotlivé FTP servery se v podstatě neliší.


Upload souboru pomocí FTP v síti Fast Ethernet


Download souboru pomocí FTP v síti Fast Ethernet

Mnohdy stačí velmi, velmi málo k tomu, abyste byly se svou sítí mnohem spokojenější. Nemusíte utrácet tisíce korun na povyšování hardware. Stačí jen optimalizovat přenos. Musíte ovšem zapomenout na nějaké default hodnoty, ať se jedná o Linux nebo Windows.


Více informací na www.repair2000.cz.



Petr Fořt

0 komentářů:

Články dle data



Učitelské listy

Nabídka práce

Česká škola - portál pro ZŠ a SŠ

Česká škola poskytuje svým čtenářům diskusní prostor k vyjádření názorů na školskou problematiku. Tyto příspěvky se nemusí shodovat se stanoviskem redakce České školy a jsou uveřejňovány jako podnět k dalším diskusím.

Obsah článků nemusí vyjadřovat stanovisko redakce nebo vydavatele Albatros Media, a.s.


Všechna práva vyhrazena.

Tento server dodržuje právní předpisy
o ochraně osobních údajů.

ISSN 1213-6018




Licence Creative Commons

Obsah podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně-Nezasahujte do díla 3.0 Česká republika, pokud není uvedeno jinak nebo nejde-li o tiskové zprávy.



WebArchiv - archiv českého webu



Tyto webové stránky používají k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Informace o tom, jak tyto webové stránky používáte, jsou sdíleny se společností Google. Používáním těchto webových stránek souhlasíte s použitím souborů cookie.