warcraft 3 TFT + ROC, warcraft III,

Replaysowa strzałka Polskie Centrum Replayów - top
Replay Tygodnia / Best Replay
Nie ma żadnych replayów spełniających te wymogi.

Ping i tracert - badanie sprawności sieci

Ten artykuł ma za zadanie objaśnić zasadę działania sieci oraz pomóc przy interpretacji wyników poleceń ping i tracert. Są to dość powszechnie znane, podstawowe narzędzia, ale wbrew pozorom sprawiają duże trudności początkującym.
 
Ping – jest zdecydowanie najpopularniejszy. Dobry ping, dobra gra – takie jest powszechne przekonanie. Jak już wyjaśniałem w wcześniejszym artykule, nie jest to wystarczające. Zarówno niski jak i wysoki ping może być mylący. Tym razem wyjaśnię na mniej abstrakcyjnym przypadku – załóżmy, że pingowany jest gracz w grze Warcraft III. Tutaj nie występuje wewnętrzny „ping” (latency w WoWie), nie występuje więc przekłamanie jak w poprzednim artykule.
 
Przypadki prowadzące do wysokiego pingu, pomimo dobrego komfortu gry:
  1. Niski priorytet pakietów ICMP (używanych do wysyłania pingu) – bardzo częsta sytuacja, jeśli przesyłana jest duża ilość danych przez szerokopasmowe łącze. Wiele routerów posiada funkcje zarządzania pasmem, przydzielając komunikatorom i grom najwyższy priorytet, spowalniając ICMP.
  2. Brak odpowiedzi spowodowany blokadą na firewallu. Często spotykany na dużych serwerach (np. Battle.Net) ze względu na ataki DoS. Nie odpowiadanie na pakiety ICMP powoduje oszczędność przepustowości łącza w takim przypadku. Łatwy do wykrycia przypadek, bo wywołuje kompletny brak odpowiedzi (ang. time out, często w skrócie T/O – przekroczenie maksymalnego czasu oczekiwania na odpowiedź).
Przypadki prowadzące do niskiego pingu, chociaż komfort grania jest słaby:
  1. Komputery nie będące za routerem mają przydzielony dość wysoki priorytet dla pakietów ICMP. To powoduje zaniżenie wartości pingu w przypadku gdy gracz ma słaby komputer. Procesor może nie nadążać przetwarzać gry, ale sterowniki odpowiadające na pakiety ICMP mają wyższy priorytet niż program użytkownika (gra). Jest możliwa sytuacja, gdy karta sieciowa odpowiada na ping bez uwzględnienia tego, że komputer jest przeciążony programami.
  2. Czyste szczęście – Internet nie jest sztywną strukturą, więc nie ma gwarancji, że pakiety gry przechodzą przez te same routery, co pakiety ICMP. Rzadkie, ale możliwe i nie można takiej sytuacji wykluczyć. Poleganie na niskim pingu jako gwarancji dobrej jakości łącza jest obarczone takim przypadkowym błędem.
  3. Odpowiedź na ping może przyjść od innego komputera, niż została wysłana. Systemowy ping informuje dokładnie o tym, jaki pakiet ICMP został zwrócony (a jest tego trochę), ale popularne programy do pingowania nie zawsze taką informację podają. Trzeba brać na to poprawkę.
  4. Blokada portów – jeśli dostawca Internetu stosuje reguły blokujące lub spowalniające ruch na określonych portach, może okazać się, że ping przechodzi znacznie szybciej, niż prawdziwe dane. Jest to spowodowane tym, że ICMP jest oddzielnym protokołem od TCP, więc nie dotyczą go blokady portów (ICMP nie posiada portów, dotyczą go tylko blokady ICMP – i to działa w dwie strony,  można grać po TCP z kimś, kto nie odpowiada na ping).
  5. Pakiet ICMP składający się na ping jest zazwyczaj bardzo mały! Kilkadziesiąt bajtów to nie jest dokładnie tyle, ile będzie przesyłać przeciętna gra. Może to spowodować, że przesłanie prawdziwych danych przepełni łącze (rzadko, ale szczególnie możliwe przy większej grupie akcji, np. w intensywnych momentach gry może być potrzebne kilka KB/s), a co gorsza może spowodować, że ICMP będzie przesłane innymi (mniej obciążonymi) routerami niż pakiety TCP (czyli gry).
Do dodatkowego objaśnienia jak działa ping posłuży mi program tracert, a konkretnie jego graficzny odpowiednik VisualRoute. Jest to całkiem fajna zabawka, które nie tylko wykonuje ping do wszystkich komputerów na ścieżce pakietu (a więc to samo co tracert), ale również, jak sama nazwa wskazuje, umieszcza wynik na mapce. Jest to całkiem ciekawy przykład na to, jak podróżują pakiety po Internecie. Znasz najkrótszą drogę do Szwecji? A może wydaje ci się, że wiesz którędy pakiet leci do Azji? Nie sądzę…
 
 
Wyjaśnienie jest proste – pakiety lecą drogami, które są najszersze, lub po prostu zakupione przez konkretnych dostawców, do których sieci trafiły. Dla przykładu, gdy ping uzyska prawie pełną informację (niestety początek trasy jest u mnie zawsze "zaciemniony" - routery sieci Aster nigdy nie odpowiadają), otrzymujemy takie coś (wbrew pozorom rzadki przypadek!):
 
Często widuje się poradę (znajdującą się również w faq), polegającą na wyznaczeniu poleceniem tracert ostatniego odpowiadającego serwera, żeby określić ping do Battle.Netu. Jest to oczywiście po części usprawiedliwione, bo jest to jeden z najlepszych i względnie prostych sposobów. Trzeba jednak zdawać sobie sprawę, że tracert to nie jest magiczne narzędzie do śledzenia i nie „namierza się” w ten sposób prawdziwego serwera jak na filmach. Tracert składa się z wielu pingów, i tak samo jak one nie musi dawać miarodajnych wyników. Ścieżka wyznaczona w ten sposób może nie pokrywać się z rzeczywistą ścieżką, którą lecą dane (na obrazkach ten przypadek pokazany przez piętrowe adresy IP w środkowym okienku). Nie jest też możliwe określenie, ile routerów lub serwerów nie odpowiedziało na ping (na obrazkach pokazane przez płomyk na końcu trasy). Umownie przyjmuje się, że po kilku brakach odpowiedzi na końcu trasy tracert jest zakończony. W skrajnym przypadku te „utajnione”, nie odpowiadające na ping maszyny mogą stanowić o tym, czy jest lag czy go nie ma.
 
Podsumowując, testowanie łącza pod gry musi się odbywać w grze. Jest to duża trudność, szczególnie z powodu wahań wydajności sieci w różnych porach dnia. Nie istnieje jednak obecnie żadne lepsze, ogólne narzędzie, niż ping i tracert. Jeśli zamierzacie przetestować w ten sposób łącze, należałoby zapisać dane z dłuższego okresu, a także manipulować parametrami polecenia ping. Interesujący parametr to –l rozmiar, który pozwala wysłać większy pakiet niż domyślne 32 bajty (bliżej rozmiaru pakietów dla gier). Dla kompletności pomiaru trzeba wykonać ping do wielu miejsc w sieci, żeby wykluczyć przypadki sztucznie zawyżone lub zaniżone. Dla mniej zaawansowanych użytkowników są programy typu VisualRoute lub WinMTR.

Zamieścił: pyton, dnia: 13:56:39, Tuesday 03. February 2009

Komentarze:

1: Pingwin, Redaktor Naczelny
[17:47:23, Tuesday 03. February 2009] , Zgłoś do moderacji

2: Duda
[23:17:04, Wednesday 04. February 2009] , Zgłoś do moderacji

3: Paz, Redaktor
[22:21:48, Saturday 07. February 2009] , Zgłoś do moderacji

Więcej?

Chcesz znaleźć informacje na konkretny temat? Przejrzyj hasła, których najczęściej dotyczą dodane ostatnio nowości! WC3L, TURNIEJ, WCG, NETWARS, LCW, WORLD CYBER GAMES, TERROR, DOTA, GRUBBY, MYM, PALADYN, WYWIAD, REPPACK, WARCRAFT, BLIZZARD, MOON, PORADNIK, POL-TEAM, BIOT, POLSKA, ESL, KONKURS, LIGA, WORLD ELITE, FUZJA, NGL-ONE, ENC, NGL, TOD, TDEL, SPQR, SLH, MOUZ, PGS, TOUR, GFO, WILQ, BRONZE, KODE5, WILDA, PATCH, TEAM FIGHTING, LADDER, REPREZENTACJA, SILVER, HEADSHOT, EXTREME MASTERS, HEYAH, FLY100%, VOODOO, LYN, KUJA, BIOHAZARD-TEAM, BVG, WICKED, ESWC, ALMOST, TH000, ACIS, KWAKI, CYKLOP, SHOW, KLIMO, REPLAYPACK, INCUP, CLAN BASE, HOORAI, SASE, ELIMINACJE, FINAłY, FNATIC, POLTEAM, SHOWMATCH, WCG 2006, IEST, SRS, FINAł, CYBERSPORT, WE.EU, PLD, SKY, PRAE, REMIND, JAGR, CASIN, LAN, REPLAYS.PL, CHALLENGE, ANIMATOR, 2007, BATTLENET, CARMAC, HAPPY, NATIONS, STARCRAFT, PEDAL, KONKURSIWO, W3ARENA

Copyright © Wszelkie prawa zastrzeżone,
kopiowanie tylko za zgodą właściciela.
2003/2007 by: CyklOP, Muzami, Julas [ Mapa Strony ]
Replayów w bazie: 19538 Kont użytkowników: 11428

Pomysł, oskryptowanie, administracja: CyklOP [jak kupić zagraniczne akcje] [Jak wypełnić W-8BEN] [Jak tanio wymienić walutę] [deutschtests]
Design: Muzami, art w topie strony nadesłał Z4buZa
Skrypt obsługujacy replaye: Juliusz 'Julas' Gonera [ Replay Parser ]
Wykonano w czasie 0.3298921585083 sekund