Centrum informacji o Windows XP/2000/2003 - Strona nieoficjalna  
Cofnij Do przodu XP.net.pl Forum Artykuły Szukaj Downloads Drivers Redakcja i info Redakcja i info

 

   

 

 
Optymalizacja połączenia z Internetem
pod Windows 2000/XP/2003



 

Drivery

Sterowniki do modemu powinny pochodzić ze strony producenta lub z załączonej płyty CD. Często jednak sterowniki systemowe Windows 2000/XP/2003 są na tyle dobre i stabilne, że mogą pozostać niezmienione. W moim przypadku tak się właśnie stało. System sam wykrył i zainstalował modem Zoltrix Spirit 56K jako Generic HCF 56K Fax/Data Modem...

Opcje standardowe

Podstawowe opcje modemu można zmienić w Panelu sterowania (Control Panel) pod ikonką Opcje modemu i telefonu (Phone and Modem options) -> zakładka Modemy (Modems). W sekcji Modem wartość Maksymalna szybkość portu (Maximum port speed) powinna wynosić 115200 (ew. więcej jeśli to możliwe).
W sekcji Zaawansowane (Advanced) w Extra init. commands (Dodatkowe...) wpisz:
AT+ms=V90 (jeśli masz problem z połączenieniem się wpisz AT+ms=V34)

Jako Kraj (Country) wybierz Polska (Poland; ew. USA, jeśli nie ma Polski).

W Zmień domyśle preferencje (Change Default preferences):
Bits per second=115200 (lub więcej jeśli to możliwe),
Protokół danych (Data Protocol)=Standardowe EC (Standard EC)
Bity danych (Data bits)
=8
Parzystość (Parity)=Brak (None)
Bity stopu (Stop bits)=1
Kompresja (Compression)=Enabled
Kontrola przepływu (Flow Control)=Sprzętowa (Hardware; lub ew. None)
W Zaawansowane ustawienia portu (Advanced port settings) ustaw Bufory FIFO (FIFO Buffers) na max. tj. 14 i 16. Chyba, że modem często się rozłącza - wtedy należy użyć niższych wartości buforów.

Można też dokonać indywidualnych ustawień modemu dla konkretnego połączenia sieciowego. W tym celu należy w opcjach danego połączenia kliknąć na Modem -> Konfiguruj (Configure).

Jeśli grasz w Quake'a (ważny jest ping), to wyłącz w opcjach połączenia TCP/IP w zakładce
Sieć (Networking) -> Ustawienia (Settings): Kompresja programowa (Software Compression).

Niekiedy bywa tak, że niby jesteśmy połączeni, ale modem w ogóle nie ściąga danych. Jest to najczęściej wina nieodpowiadającego serwera DNS. Wynikać to może z jego przeciążenia lub chwilowego zastoju. Można się przed tym (choć nie zawsze) uchronić wpisując w opcjach połączenia z Internetem w zakładce Sieć (Networking) -> Protokół TCP/IP (Internet Protocol TCP/IP) -> Właściwości (Properties): Użyj następujących adresów serwera DNS (Use the following DNS server adresses):
1.Podstawowy (Primary): 148.81.16.51 (serwer DNS NASKu)
2.Pomocniczy (Secondary): 194.204.159.1 (podstawowy serwer DNS TPSA)
(lub na odwrót jeśli występują jakieś problemy)

Windows 2000/XP/2003: Ustawienia rejestru

Windows 2000/XP/2003 nie ma standardowo wpisanych wszystkich ustawień TCP/IP w rejestrze. Uruchamiamy regedit (lub regedt32) i przechodzimy do gałęzi:
[ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters ]

Najważniejsze ustawienia w rejestrze dot. TCP/IP :

UWAGA!!! Przykładowe wartości MTU i pochodne podane są dla modemu 56K. Dla innych łączy należy zgodnie z podaną metodą wyznaczyć samemu optymalne wartości.

Wszystkie poniższe klucze o wrtości typu DWord należy dodać do gałęzi (bądź zmodyfikować):
 [ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters ]

"EnablePMTUBHDetect" = 00000000 (0)
"Tcp1323Opts" = 00000003 (3)
"StackOpts" = 00000001 (1)
"DefaultTTL" = 00000080 (128)
"EnablePMTUDiscovery" = 00000001 (1)
"MTU" = 00000240 (576)
"TCPWindowSize" = 00000888 (2184)

>>EnablePMTUBHDetect
Włącza/wyłącza wykrywanie "czarnej dziury" w połączeniach TCP/IP. Najlepiej jeśli jest wyłączony (0); ew. włączony (1).

>>Tcp1323Opts i Tcp1320Opts
Włącz/wyłącza support dla "dużych okien TCP" (large TCP window). Wyłączenie tego ustawienia ogranicza "okno" do 64K. Zaleca się ustawienia na Win. Scaling with Timestamp (3). Można też użyć ustawienia Win. Scaling without Timestamp (1); ew. wyłączyć (0).

>>StackOpts
Jest to ustawienie ważne jeśli włączona jest poprzednia opcja (support TCP dla Large Window).
Powinno zostać wtedy włączone(1); ew. wyłączone (0).

>>DefaultTTL
To ustawienie decyduje o tym jak długo pakiet "pozostanie przy życiu" - TTL (Time to Live Acitve). Możliwe ustawienia to 32, 64, 96, 128, 256. Najlepiej ustawić wg mnie 128 lub 256.

>>EnablePMTUDiscovery
To ustawienie włącza automatyczne wykrywanie MTU (Max. Transmition Unit) przez system. Najlepiej jeśli jest włączone (1); ew. wyłączone (0).

>>TCPWindowSize
Ten parametr powinien być wielokrotnością (dla modemu 56K czterokrotnością) ustawienia MSS (Max. Segment Size), który to jest równy MTU-40. Standardowo jest to 5840, ale ja zalecam sprawdzić najpierw najlepszą dla siebie wartość MTU (opis poniżej), a potem dopiero pomnożyć ją przez 4 (ew. 5).

>>MTU (Max. Transmition Unit - maks. jednostka transmisji)
Jest to jedno z najważniejszych ustawień (o ile nie najważniejsze ustawienie TCP/IP). Standardowo jest to dla Windows 2000/XP wartość 1500, ale...
Jest to wartość optymalna dla sieci LAN lub szybkiego połączenia z Internetem. Dla modemu wartość ta waha się od 576 do 900, zależnie od kraju i ISP (providera Internetu np. TP SA). Najlepszym zalecanym ustawieniem jest 576. Jednak aby samemu wybrać najodpowiedniejsze ustawienie trzeba wywołać Command Line (cmd) i wpisać:
ping -f -l /tu sprawdzana wartość-20/ www.strona-polska.pl (np. www.teleport.pl lub www.pc.com.pl).

np.: ping -f -l 548 www.teleport.pl
(548=576-28 - zawsze od sprawdzanej MTU odejmujemy 28 i wpisujemy po ping ... -l =>TU<=)

U mnie przykładowo dla komendy (MTU: 576):
ping -f -l 548 www.teleport.pl
wartości opóźnień wynosiły ok. 170-180 ms, zaś dla komendy (MTU: 728):
ping -f -l 700 www.teleport.pl
jakieś 240-260 ms. Różnice więc są.

Wnioski dotyczące MTU
Najlepsze to (jak dla mnie) wartości z przedziału od 550-650. Wyższe wartości powodują stratę pakietów. Nie dla wszystkich jest też idealne ustawienie 576, a dobre jest natomiast 600-700, więc warto samemu dostroić ten parametr do swojego połączenia.

Uwaga: powyższe wartości 576, 128 itp. to wartości dziesiętne (Decimal) i jako takie należy je wpisywać do rejestru w pola typu DWord.

>> MaxConnectionPer... (maksymalna ilość połączeń do serwera)
W gałęzi:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
należy zmień klucze na podane wartości:
"MaxConnectionsPer1_0Server" = dword: 00000048 (20) 
"MaxConnectionsPerServer"= dword: 00000048 (20)
(w nawiasach podano wartość dziesiętną typu: Decimal)

UWAGA!!! Jeśli działa Wam wolniej zamiast szybciej to proponuję wpisać Decimal: 10 lub 5.


Przykładowe ustawienia optymalizujące połączenie TCP/IP  (gł. szybkościowo):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]    
 
"DeadGWDetectDefault"=dword:00000001
"DefaultRegistrationTTL"=dword:00000014
"DefaultTTL"=dword:00000080 (ew.dword:00000040)
"DontAddDefaultGatewayDefault"=dword:00000000
"EnableFastRouteLookup"=dword:00000001
"EnableICMPRedirect"=dword:00000001
"EnablePMTUDiscovery"=dword:00000001
"EnableSecurityFilters"= dword:00000001 (opcjonalne: dla zwiększenia bezpieczeństwa)
"ForwardBroadcasts"=dword:00000000
"FastCopyReceiveThreshold"=dword:00000400
"IPEnableRouter"=dword:00000000
"LargeBufferListDepth"=dword:0000000a
"LargeBufferSize"=dword:00001000
"MaxActiveTransmitFileCount"=dword:00000002
"MaxFastTransmit"=dword:00000040
"MTU"=dword:00000240
"PrioritizeRecordData"=dword:00000001
"PriorityBoost"=dword:00000002
"SackOpts"=dword:00000001
"SmallBufferListDepth"=dword:00000020
"SmallerBufferSize"=dword:00000080
"Tcp1320Opts"=dword:00000003
"Tcp1323Opts"=dword:00000003
"TcpWindowSize"=dword:00000888
"TransmitWorker"=dword:00000020
"UseDomainNameDevolution"=dword:00000001

Ustawienia eksperymentalne (do celów testowych; jeśli Wam coś działa szybciej z dodatkowymi ustawieniami poniżej to wyślijcie nam info.):
"KeepAliveTime"=dword:00023280 
"FastSendDatagramThreshold "=dword:00000400

"DefaultReceiveWindow "=dword:00004000
"DefaultSendWindow"=dword:00004000

"BufferMultiplier"=dword:00000200
"IrpStackSize"=dword:00000004
"MaxFreeTcbs"=dword:000007d0
"MaxHashTableSize"=dword:00000800
"TcpMaxHalfOpen"=dword:0000004b
"TcpMaxHalfOpenRetried"=dword:00000050
"MaxNormLookupMemory"=dword:00030d40
"MaxForwardBufferMemory"=dword:00019df7
"MaxFreeTWTcbs"=dword:000007d0
"ForwardBufferMemory"=dword:00019df7

Plik optymalizujący (REG)
[ Download: GreGM's Modem 56K TCP\Param. Settings ]


Optymalizacja drivera afd.sys (a zarazem połączenia TCP/IP):

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

"LargeBufferSize" = dword:00002000
"LargeBufferListDepth" = dword:0000000a
"MediumBufferSize" = dword:00001000
"SmallBufferSize" = dword:00000400
"TransmitWorker" = dword:00000020
"SmallBufferListDepth" = dword:00000020
"FastCopyReceiveThreshold" = dword:00000800
"FastSendDatagramThreshold" = dword:00000800
"MaxActiveTransmitFileCount" = dword:00000002
"MaxFastTransmit" = dword:00000040
"MaxFastCopyTransmit" = dword:00000080
"MediumBufferListDepth" = dword:00000018
"OverheadChargeGranularity" = dword:00000001
"PriorityBoost" = dword:00000002

Ustawienia eksperymentalne (do celów testowych; jeśli Wam coś działa szybciej z dodatkowymi ustawieniami poniżej to wyślijcie nam info.):

"DefaultReceiveWindow"=dword:00004000
"DefaultSendWindow"=dword:00004000

"IrpStackSize"=dword:00000004

Plik optymalizujący (REG):
[ Download: GreGM's Modem 56K ADF\Param. Settings ]

Patche - czyli co zrobić gdy połączenie działa wolniej po niż przedtem...

UWAGA!!! Sprawdziłem powyższe ustawienia dla modemu 56K. Działały OK. Strony wgrywały się szybko i bez najmniejszych problemów.
Jednak niektórym osobom zamiast polepszyć transfer powyższe ustawienia wręcz go pogorszyły. Przepraszam, ale częściowo bazowałem na zagranicznej stronie NeoWin i sądziłem, że podaje ona dobre wartości - było jednak inaczej, o czym przekonała się część naszych czytelników. Tym też osobom polecam usunięcie wszystkich podanych wyżej wartości (ale nie kluczy-podgałęzi!) tylko z gałęzi:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ AFD\Parameters] oraz

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

i zaaplikowanie jednego z poniższych patch'y:

1. dla posiadaczy modemów i łączach o podobnej prędkości: [ Download: TCP\Param. Modem Settings ]

2. dla posiadaczy łącz stałych : [ Download: TCP\Param. Default Settings ]

Jeśli to nie pomoże należy po prostu usunąć wszystkie wartości z 2 podanych wyżej gałęzi i nie aplikować patch'y. Dodatkowo można skorzystać z poniższej porady...

Windows XP: Tweak XP

Można oczywiście użyć programu Tweak XP i tam w zakładce Internet Tweaks -> Modem Tweaks ustawić Generic ISP i Dial-up Modem (dla modemu). Dla ISDN analogicznie - ISDN itd.
Oprócz tego warto uaktywnić opcję "Increase the max. number of HTTP sessions allowed to 5". Pozwala to aplikacjom internetowym na więcej jednoczesnych połączeń do danego serwera WWW.

Test końcowy

Zachęcam wszystkich znużonych wolnym ściąganiem/wgrywaniem się stron modemowców do wykonania ww. tweaków. Właduj stronę przed i po optymalizacji, potem porównaj czasy wgrywania (jednak zawsze wyczyść Pliczi tymczasowe (Internet Temporary Files)) i pochwal się swoimi osiągnięciami kolegom, że modem działa Ci jak ISDN albo HIS :))

Komentarz:
Moje połączenie jest teraz bardzo stabilne, szybkie (jak na modem :)) i mimo wielu narzekań na TP SA, do zadań takich jak codzienne przeglądanie stron, aktualizacja newsów i ściąganie niedużych plików (do 10MB) w zupełności wystarcza.  Niektóre polskie strony wgrywają się zaś dużo szybciej niż na łączach stałych, ale to już inna historia...

Strona główna XP.net.pl >>


Na podst. : własnych doświadczeń, spostrzeżeń in. użytkowników oraz strony NeoWin.
Wersja artykułu : 2.0
Ostatnia aktualizacja : 1.07.2003
Wydanie oryginalne: wersja 1.0 (2001)

GreGM © 2003
 

 


 
 
All rights reserved. XP.net.pl © 2003 ^Do góry^