wtorek, 22 maj 2012
NEXT / Artykuły / NEXT 3/2009 / Artykuły z NEXT 3/2009 / Sieć bez ograniczeń
NEXT 3/2009 - okładka





Temat numeru:
Przejdź do innych artykułów:

NEXT 3/2009 - Sieć bez ograniczeń

Sieć bez ograniczeń - ikonka jak przyspieszyć pobieranie danych z sieci P2P

Data: 17 luty 2009
Identyfikator: 090318

Wszystkie systemy Windows od wersji Windows XP SP2 (także najnowszy Windows 7) mają wbudowane sztywne ograniczenie, które powoduje, że nawet dysponując łączem 100 Mbit/s przy intensywnym korzystaniu z aplikacji sieciowych faktyczna wydajność może się okazać nawet kilkudziesięciokrotnie niższa. Pokazujemy, jak skutecznie ominąć te ograniczenia zarówno w XP, Vista, jak i Windows 7, a także obalamy mity związane z konfiguracją sieci.

Strona 1 z 2
< Poprzednia 1 2 Następna >

Dziennik prawdę ci powie

Jak się upewnić, że błędy wyświetlane przez intensywnie wykorzystywane aplikacje P2P faktycznie wynikają z ograniczeń systemowego sterownika tcpip.sys (dotyczy to zarówno Windows XP, jak i Windows Vista). Wystarczy, że skorzystasz z systemowego dziennika zdarzeń (podglądu zdarzeń w XP) i przejrzysz raporty dotyczące funkcjonowania sieci. Jeżeli na liście zdarzeń (w kategorii System) typu Błąd, dla których źródłem będzie Tcpip, pojawi się zdarzenie o identyfikatorze (tzw. Event ID) 4226, jest to sygnał, że na tyle intensywnie korzystasz z TCP/IP, że osiągnąłeś maksymalny limit połączeń. Dodatkowo po dwukrotnym kliknięciu wpisu dotyczącego danego zdarzenia powinieneś zobaczyć okno z komunikatem: Protokół TCP/IP osiągnął limit zabezpieczeń ustalony dla liczby równoczesnych prób połączeń TCP.

Aby poprawić wydajność sieci, należy zapomnieć o modyfikowaniu czy wręcz blokadzie funkcji Quality of Service (patrz: ramka „Mit: zwiększ wydajność wyłączając Quality of Service”). Warto skupić się na tym, co faktycznie ma wpływ na działanie sieci. Poszczególne wersje systemów Windows charakteryzuje nieco odmienne podejście do obsługi stosu protokołów TCP/IP. Dotyczy to głównie sytuacji, gdy często korzystamy z sieci P2P.

Wbudowane ograniczenia

Windows XP, podobnie jak Windows Vista oraz najnowszy Windows 7, ma wbudowane ograniczenie polegające na tym, że w danym czasie może być realizowanych jedynie 10 sieciowych niezależnych wywołań w ciągu sekundy (tzw. Half-Open TCP connections), i to bez względu na przepustowość sieci. Ograniczenie to pojawiło się w systemie podobno dlatego, by zmniejszyć propagację ewentualnych złośliwych robaków internetowych. Jednak nie bez znaczenia jest ono dla użytkowników popularnych sieci P2P, w których istotnym czynnikiem wpływającym na wydajność transmisji jest właśnie liczba stale nawiązywanych jednoczesnych połączeń.

Inaczej wygląda sytuacja w przypadku systemu Windows Vista. Choć Microsoft ustawił tu, podobnie jak w XP, stałą (w sterowniku tcpip.sys) wartość ograniczającą liczbę jednoczesnych połączeń TCP, to w systemie Vista nie dość, że jest ona różna od XP, to jeszcze wprowadzono zróżnicowanie ze względu na edycję systemu Vista. Najbardziej niezadowoleni są użytkownicy domowej wersji Vista Home Basic, w której domyślnie graniczną wartością jest nie 10, lecz 2. Z kolei Vista Ultimate ma zdefiniowaną wartość graniczną równą 25. Dotyczy to jednak wczesnych wersji Windows Vista – systemy z zainstalowanym dodatkiem SP1 do Visty mają również ograniczenie do 10 połączeń, bez względu na edycję systemu Windows Vista, z której użytkownik korzysta. Wracając do liczby 2: choć liczba ta może się wydawać na tyle mała, że spadek wydajności powinien być zauważalny nawet przy korzystaniu ze standardowych serwisów webowych poprzez przeglądarkę, to tak jednak nie jest.

To nie trojan

Oprogramowanie modyfikujące systemowy sterownik tcpip.sys (sam zmodyfikowany sterownik) może być (i niestety często jest) rozpoznawany przez heurystyczne procedury oprogramowania zabezpieczającego jako malware, najczęściej jako koń trojański, spyware lub ewentualnie bot. Gdy uzmysłowimy sobie fakt, że celem zastępczego sterownika jest likwidacja ograniczeń systemowych, które zostały wbudowane w system ze względów bezpieczeństwa, taka interpretacja sterownika przez oprogramowanie ochronne jest zrozumiała, gdyż sterownik, zdejmując blokadę, działa tak jak malware przygotowujący pole do ataku DoS. Choć alarm wywołany przez oprogramowanie ochronne w tym konkretnym przypadku, kiedy naszym celem jest modyfikacja sterownika tcpip.sys i likwidacja wbudowanych w niego ograniczeń, można uznać za fałszywy, to trzeba pamiętać, że zdjęcie limitu połączeń narzuca nam zachowanie większej ostrożności. Udany atak naprawdę złośliwego, internetowego kodu może bowiem w takim przypadku zaszkodzić jeszcze bardziej.

Można łatwo się przekonać, że proponowany przez nas patcher systemowego sterownika tcpip.sys trojanem nie jest. Wystarczy za pomocą dowolnej zapory ogniowej lub analizatora protokołów (sniffera – zapewnia dokładniejszą analizę) sprawdzić, że mimo zdjęcia blokad żaden dodatkowy ruch sieciowy nie będzie generowany. Za to skok wydajności podczas intensywnego korzystania z P2P (przy założeniu, że dysponujemy naprawdę szerokopasmowym łączem) będzie zauważalny.

Ograniczenie dotyczące nawiązywania dwóch jednoczesnych połączeń na sekundę zaczyna być uciążliwe dopiero wtedy, gdy chcemy korzystać z takich programów, jak uTorrent, BitTorrent, Azureus, ABC, eMule, BitComet itp. lub korzystać z usług typu P2PTV (programy PPLive, PPStream, Sopcast). Może się wtedy okazać, że nawet dysponując kilkudziesięciomegabitowym łączem internetowym, aplikacje intensywnie korzystające z sieci zgłaszają błędy lub informują o powolnych transferach danych. Aby uniknąć mylnej diagnostyki, warto wykonać pewną operację, która upewni nas w tym, że błędy wyświetlane przez aplikacje intensywnie korzystające z sieci TCP/IP faktycznie wynikają z ustawionych, sztywnych ograniczeń systemowego sterownika tcpip.sys czy też np. z niewłaściwej konfiguracji danej aplikacji. Uwaga ta dotyczy przede wszystkim posiadaczy Windows Vista Ultimate (w wersji sprzed instalacji Service Packa 1 do Windows Vista – przyp. red.), w której to edycji Windows ustawiony limit 25 jednoczesnych połączeń na sekundę nie powinien być uciążliwy nawet przy okazjonalnym korzystaniu z P2P i podobnych rozwiązań. Szczegóły dotyczące dodatkowej diagnostyki zamieszczamy w ramce „Dziennik prawdę ci powie”.

Warto przyjrzeć się dokładniej ustawieniom systemu związanym z konfiguracją systemowego sterownika protokołu – Tcpip.sys implementującego stos protokołów TCP/IP w Windows.

Windows może więcej

Wydawałoby się, że najlepszym, choć może nie najprostszym, narzędziem do poprawy parametrów systemu będzie wbudowany w Windows Edytor rejestru. Niestety, informacje o omijaniu ograniczenia poprzez dodanie do rejestru systemowego wartości typu DWORD o nazwie TcpNumConnections w przypadku XP (i nowszych wersji Windows) nie mają żadnego zastosowania. Nie jest to mit, gdyż dodanie tego klucza sprawdza się, ale w Windows 2000, tymczasem ta wersja Windows nie jest przedmiotem naszych rozważań. Dlaczego Microsoft nie umożliwił modyfikacji granicznej wartości jednoczesnych połączeń w ciągu sekundy w rejestrze? Odpowiedź jest bardzo prosta i wynika z samej przyczyny, dla której to ograniczenie w ogóle pojawiło się w Windows XP i Vista (i jest obecne także w Windows 7, przynajmniej w wersji beta) ze względów bezpieczeństwa. Gdyby pozostawiono taką możliwość w postaci, tak jak w Windows 2000, odpowiedniego klucza rejestru, to bardzo prawdopodobne, że najczęstszymi jej użytkownikami byłyby złośliwe aplikacje. Na szczęście jest inny sposób na rozszerzenie możliwości XP w zakresie pracy w sieciach P2P i im podobnych. Wystarczy skorzystać z dodatkowego oprogramowania.

TCP-Z – rozwiązanie problemu

Pewnym rozwiązaniem problemu liczby półotwartych połączeń TCP, działającym także w Windows 7, jest zastosowanie programu TCP-Z (znajdziesz go na naszej płycie DVD, można ją też pobrać np. z serwisu www.softpedia.com).

Program ten w trakcie pracy systemu dynamicznie zmienia parametry załadowanego sterownika tcpip. Problemem jest konieczność uruchamiania TCP-Z po każdym resecie komputera, gdyż wartość graniczna dopuszczalnych półotwartych połączeń TCP jest modyfikowana wyłącznie w pamięci RAM komputera, która jak wiadomo po wyłączeniu zasilania traci swoją zawartość. Niektórym osobom może to nawet odpowiadać, gdyż mogą np. zmieniać parametry systemu tylko przed uruchomieniem aplikacji p2p. Jednak dla większości osób będzie to raczej wada niż zaleta i właśnie dla niech twórcy programu proponują automatyczny sposób patchowania systemu. Mianowicie dołączone do pakietu oprogramowanie pozwala na stworzenie i instalację wirtualnego sterownika, który automatycznie, zaraz po starcie Windows, ustawia wcześniej zadane parametry tcpip. Poprzez menedżera urządzeń w każdej chwili, w locie, można te parametry zmieniać bez konieczności restartowania systemu. Jest to o tyle dobre rozwiązanie, że nie ingeruje w sam sterownik tcpip.sys.

Ogromną zaletą programu jest jego uniwersalność – działa praktycznie w każdym Windows zarówno 32-, jak i 64-bitowym (także Windows 7 beta 1), w którym Microsoft wprowadził ograniczenia liczby połączeń tcp. Uwaga! W systemach 64-bitowych przed uruchomieniem programu należy z linii komend wprowadzić następujące komendy, po czym restartować komputer:

bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
bcdedit.exe -set TESTSIGNING ON


Ocena: +++++    (aby ocenić, musisz się zalogować w serwisie)

< Poprzednia 1 2 Następna >

Podobne artykuły:

Komentarze:

Redakcja nie ponosi odpowiedzialności za treść komentarzy.
Nikt jeszcze nie skomentował.
Niezalogowany

Aby mieć dostęp do niektórych części serwisu NEXT (np. forum dyskusyjnego, oceny numeru, newslettera), musisz posiadać konto w naszym serwisie. Zachęcamy do darmowej rejestracji!

Jeżeli posiadasz już konto w serwisie, to zaloguj się.