Skocz do zawartości

Obszerny poradnik na temat łącz, opóźnień w grze etc. by 1amm


Gość

Rekomendowane odpowiedzi

Na wstępie, ten poradnik był pisany jakiś czas temu, wszystkie wytłuszczenia i kolory mają zadanie informacyjne żeby zwrócić uwagę użytkownika na najistotniejsze zwroty i fragmenty. Nie mam zamiaru niczego zmieniać, także jeśli się nie spodoba to proszę usunąć. Peace :)

 

 

 

 

 

 

 

Krótkie FAQ (Q - Question, A - Answer):

 

 

 

 

 

 

 

Q: Jak sprawdzić kto jest moim ISP (dostawcą internetu), oraz jaki mam adres IP?

 

 

 

A: Najlepiej będzie to zrobić poprzez stronę typu myip/whoisip itp. Np. http://whatismyipaddress.com

 

Dostaniemy informację o naszym dostawcy internetu, oraz nasz adres IP.

 

 

 

 

 

Q: Jak sprawdzić moją prędkość łącza oraz ping?

 

 

 

A: Poprzez strony typu speedtest. Polecam w tym celu speedtest.net z możliwością wybrania

 

optymalnego serwera do testu.

 

 

 

 

 

Q: Jak sprawdzić jakie dokładnie mam opóźnienie na serwerze w CS'ie?

 

 

 

A: Poprzez dopisanie do configu, lub wpisanie w consoli podczas gry komendy net_graph 3.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Część I.

 

Łącze internetowe.

 

 

 

 

 

 

 

Zacznijmy od pewnego problemu który prawdopodobnie dotyczy większości graczy. Często wchodzimy na jakiś serwer i chociaż wydaje nam się że skoro mamy te 100fps i nie za duży ping to wszystko powinno być dobrze. Niestety czasami dzieje się tak że po prostu 'lamimy', nie mozemy nic trafic, ludzie nie maja dla nas głów i szukamy wymówek typu "masz zły interp". :down:

 

 

 

 

 

Ale zazwyczaj nie przychodzi nam do głowy ze może to być wina obciążenia naszej sieci, bądź ustawień sieci naszego dostawcy internetowego, bądź tzw. domyślnych ustawień systemowych :down:

 

 

 

 

 

Problem który omówimy i spróbujemy rozwiązać nazywa się MTU (Maximum Transmission Unit). Podczas połączenia z internetem system dzieli przesyłane dane na datagramy (pakiety), niestety domyślna wartość MTU w systemie Windows wynosi 1500 co przeważnie nie wpływa korzystnie na działanie sieci. Tak duży pakiet przeważnie jest dalej fragmentowany ponieważ większość serwerów nie obsługuje takiej wielkości i pakiet musi zostać podzielony na mniejsze kawałki, przez co połączenia internetowe są spowalniane, ponieważ rozmiar pakietów jest od nowa liczony, bądź też pakiety uciekają i nie docierają w ogóle do miejsca docelowego. :down:

 

 

 

 

 

Teraz opiszę jak sprawdzić jakie MTU najlepiej pasowałoby pod nasze łącze:

 

 

 

 

 

1. Klikamy przycisk START -> Uruchom, wpisujemy cmd.exe i klikamy OK.

 

 

 

2. Wpisujemy IPCONFIG lub WINIPCONFIG

 

 

 

3. Po wpisaniu wyświetlają nam się różne adresy. My zapisujemy sobie IP 'Bramy domyślnej'.

 

 

 

4. Kiedy mamy już IP wpisujemy w cmd: ping -f -l 1500 192.168.1.1 (ten adres IP jest przykładowy).

 

 

 

5. Po wpisaniu i kliknięciu ENTER, najprawdopodobniej wyświetli się nam kilka razy pod spodem 'Pakiet musi być podzielony na fragmenty, ale ustawiono opcję DF'

 

 

 

6. Jeśli się tak stanie powtarzajmy komendę ktorą wpisaliśmy wcześniej, zastępując wartość 1500 mniejszymi np. 1492, 1482, 1472... itp.

 

 

 

7. Kiedy ustalimy możliwie najwyższa wartość przy której nasze pakiety nie będa dzielone na fragmenty zapiszmy ja sobie. Dajmy na to że będzie to np. 1472.

 

 

 

 

 

Mając już wartość MTU możemy ją ustawić w naszym systemie, a robimy to za pomocą, tego programu: http://www.sltargowek.com/download/cmtutool.exe

 

 

 

 

 

Zapisujemy plik np. na pulpit i uruchamiamy CMTU. Wpisujemy w okienku programu naszą wartość + 28. Koniecznie trzeba pamiętać o tym, aby do naszej wartości MTU dodać liczbę 28 np. 1450 + 28 = 1478. Następnie uruchamiamy ponownie komputer.

 

 

 

 

 

 

 

UWAGA! W nowszych systemach Vista/Win7 może to nie wystarczać, dlatego też opiszę dodatkowy sposób na zmianę wartości MTU.

 

 

 

 

 

Za pomocą rejestru systemu windows:

 

 

 

- Otwieramy edytor rejestru systemu windows:

 

Menu Start, Uruchom: "regedit" [ENTER] (w angielskiej wersji: Start, Run po czym wpisujemy regedit [Enter]).

 

 

 

- Pokazało się drzewo rejestru. Musimy przejść w odpowiednie miejsce, zatem:

 

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

 

Otworzy się nam "katalog" z listą wszystkich obecnych w systemie interfejsów sieciowych. Będzie ich z pewnością więcej niż jeden, ponieważ MS Windows za urządzenie sieciowe uznaje każde urządzenie bądź interfejs programowy, który może przesyłać dane.

 

 

 

- Musimy teraz znaleźć interesujący nas interfejs (to jedna z tych podgałęzi o dziwnych nazwach), czyli ten, który odpowiada za łączenie się z naszym ISP.

 

Będzie to ten, w którym istnieje klucz DhcpDomain, a jego wartość to Home, lub nazwa naszego ISP.

 

Możecie jeszcze to sprawdzić, patrząc na klucz DhcpIPAddress, w którym będzie widniało wasze IP.

 

 

 

- Kiedy znaleźliśmy już odpowiedni interfejs sieciowy, czas na zmiany:

 

* w prawym oknie klikamy na pustym miejscu prawym klawiszem myszki i wybieramy New (nowy)

 

* wybieramy z menu kontekstowego, że bedzie to wartość DWORD (DWORD value)

 

* jako nazwę wpisujemy "MTU"

 

* kiedy mamy już utworzoną nową wartość, klikamy na MTU prawym klawiszem myszki i wybieramy Modify (Modyfikuj).

 

* wybieramy, że będziemy wpisywać wartość dziesiętnie (decimal), po czym w miejscu wartość (value) wpisujemy np. 1472.

 

 

 

- Po tej operacji zamykamy edytor rejestru i restartujemy komputer.

 

 

 

 

 

 

 

Teraz kiedy mamy naszą nową wartość MTU warto też by było zmienic wartosc RWIN (Recive Window Size). Jej rozmiar będzie zależał od naszego nowego MTU.

 

 

 

Standardowo wynosi ona 65535, ale my będziemy ją zmniejszać, bądz zwiększać, to w zależności od naszego internetu.

 

 

 

Żeby to obliczyć potrzebna nam będzie wartość MSS (Maximum segment size), uzyskamy ją odejmując od naszego MTU - 40 np. 1472-40 = 1432

 

 

 

 

 

Czyli nasze MSS = 1432

 

 

 

RWIN jest wielokrotnością MSS:

 

 

 

Dla łącz do 2 MB/s - MSS * 44

 

Dla łącz od 1 do 5 MB/s - MSS * 44 * 2

 

Dla łącz od 2 do 14 Mb/s - MSS * 44 * 2^2

 

Dla łącz od 8 do 30 Mb/s - MSS * 44 * 2^3

 

Dla łącz od 25 do 60 Mb/s - MSS * 44 * 2^4

 

 

 

^2, ^3 etc, jest to podnoszenie liczby 2 do potęgi.

 

 

 

Czyli np. RWIN = 1432 * 44 * 2 = 126016

 

 

 

 

 

Więc jeśli mamy już naszą wartość RWIN i wynosi ona np. 126016 wystarczy wprowadzic ją do rejestru naszego systemu.

 

 

 

 

 

 

 

1. Klikamy START -> Uruchom, i wpisujemy regedit i klikamy OK.

 

 

 

2. Odnajdujemy takę ścieżkę [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] i szukamy wartości o nazwie 'TcpWindowSize'.

 

 

 

3. Kiedy ją znajdziemy klikamy ppm i wybieramy modyfikuj.

 

 

 

4. Usuwamy starą wartość, zaznaczamy pod spodem 'system dziesiętny' i wpisujemy naszą nową wartość RWIN.

 

 

 

5. Zatwierdzamy, zamykamy rejestr i uruchamiamy ponownie komputer.

 

 

 

 

 

 

 

Jeśli w podfolderze 'Parameters' nie znajdziemy wartości 'TcpWindowSize' nie ma się co martwić, wystarczy że ją utworzymy.

 

 

 

 

 

1. Na białym tle gdzieś pod innymi wartościami klikamy ppm -> nowy -> wartość DWORD

 

 

 

2. Nazywamy naszą nową wartość TcpWindowSize

 

 

 

3. Ponieważ wynosi ona 0, robimy to co poprzednio czyli, ppm -> modyfikuj -> 'system dziesiętny' -> wpisujemy naszą wartość RWIN -> Ok

 

 

 

4. Zamykamy edytor i robimy restart systemu.

 

 

 

 

 

 

 

To by było na tyle z optymalizowania naszego łącza. Jednakże jeśli ktoś boi się, lub uważa że samemu nie da rady tego zrobić, polecam program o nazwie TCP Optimizer, dostępny do ściągniecia http://www.speedguide.net/files/TCPOptimizer.exe. Program uruchamiamy z prawami administratora, a następnie w każdej zakładce zaznaczamy na dole opcję 'Optimal', po czym zatwierdzamy i uruchamiamy ponownie komputer.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Część II.

 

Redukcja opóźnienia w systemach Win7/Vista.

 

 

 

 

 

 

 

Czasami zdaża się tak, że mimo iż nasze łącze chodzi idealnie, a na speedtestach pingi są względnie małe, to w grach online typu CS, pingi sięgają 200-400 ms. Dlaczego tak się dzieje? Wszystko to jest winą domyślnych systemowych ustawień, które zazwyczaj są wprowadzane świeżo po instalacji, reinstalacji naszego systemu. Co w takim wypadku zrobić? Otóż przedstawię wam podstawowe metody na to aby polepszyć nasz ping w grach online.

 

 

 

 

 

 

 

1. Wyłączenie TCP autotuning:

 

 

 

- poprzez START uruchamiamy z prawami administratora wiersz poleceń cmd.exe

 

 

 

- klikamy ppm i wklejamy do wiersza poleceń następującą komendę: netsh interface tcp set global autotuning=disabled

 

 

 

- zatwierdzamy Enterem i restartujemy nasz komputer

 

 

 

 

 

 

 

2. Wyłączenie usługi Multimedia Class Scheduler:

 

 

 

- poprzez START uruchamiamy program regedit

 

 

 

- odnajdujemy klucz "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv"

 

 

 

- w zawartości folderu powinna widnieć wartość o nazwie "DependOnService", klikamy na nią dwa razy i w wyświetlonym okienku usuwamy fragment "MMCSS" z pola tekstowego

 

 

 

- klikamy OK i restartujemy nasz komputer

 

 

 

 

 

 

 

UWAGA: Powyższe rozwiązanie w niektórych przypadkach może spowodować problemy z dzwiękiem w systemie. Można tego uniknąć stosując tak samo skuteczne alternatywne rozwiązanie:

 

 

 

 

 

- postępujemy identycznie jak w punkcie 2

 

 

 

- odnajdujemy klucz "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile"

 

 

 

- znajdujemy wartość o nazwie "NetworkThrottlingIndex", klikamy ppm 'Modyfikuj' i w systemie 'szesnastkowym' wpisujemy w puste pole "FFFFFFFF", po czym klikamy Ok

 

 

 

- po tej opracji wartość powinna wyglądać tak: 0xFFFFFFFF

 

 

 

- zamykamy edytor rejestru i uruchamiamy ponownie komputer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Część III.

 

Ustawienia netcodu w CS.

 

 

 

 

 

 

 

Najważniejszą rzeczą jeśli chodzi o granie na serwerach, jest poprawność naszych ustawien rate dla gry. Jeśli będą one złe możemy doświadczyć ścin, lagów, przemieszczania się hitboxów, oraz wystarczająco zepsuć rozgrywkę innym graczom. Dlaczego jest to takie ważne? Każdy chce żeby grało mu się jak najlepiej, dążymy do doskonałości, bądź też szukamy w internecie najdziwniejszych rozwiązań aby tylko polepszyć naszą sytuację na serwerach. Nie ukrywam że większość tego co znajdziecie nie polepszy NICZEGO, jedynie doświadczycie efektu placebo, po czym wszystko wróci do normalności.

 

 

 

 

 

Poniżej przedstawię wam najważniejsze komendy wraz ze szczegółowymi opisami:

 

 

 

 

 

Ramka oznacza 1 fragment informacji przesyłany między klientem a serwerem (niezależnie w którą stronę).

 

Ilość ramek z serwra do klienta kontroluje cl_updaterate oraz rate.

 

Ilość ramek od gracza do serwera kontroluje cl_cmdrate i cl_rate.

 

 

 

 

 

cl_cmdrate - jest to liczba ile razy na sekunde gracz informuje serwer o swoich

 

poczynaniach, to jest - ruchach na mapie, strzelaniu, ruchach myszy.

 

Im więcej robisz (im bardziej ostra akcja) tym więcej danych wysyłasz

 

 

 

cl_updaterate - jest to liczba ile razy na sekunde gracz otrzymuje z serwera dane o tym

 

co się dookoła niego dzieje - oznacza to że dostajesz info jak lecą granaty, kto gdzie strzela,

 

bryzgi krwi , dzwięki audio, efekty hud, latające posicki, rykoszety itp.

 

Jak jesteś w miejscu gdzie mało się dzieje (np. nie ma graczy albo niewiele robią)

 

to otrzymujesz mało informacji,

 

ale jak wbiegniesz w miejsce gdzie się strzelają 4 osoby i latają granaty to dostajesz tych

 

informacji o wiele więcej

 

 

 

cl_rate - ustawia maksymalny limit bajtów wysłanych od ciebie do serwera na temat twoich

 

poczynań i powinna być ustawiona na maksymalną wartość uploadu jaką możesz wycisnąć z łącza

 

 

 

rate - ustawia maksymalny limit bajtów odebranych przez ciebie jakie przychodzą do serwera

 

powinna być ustawiona na maksymalną wartość download jaką możesz wycisnac ze swojego łącza

 

 

 

 

 

cl_cmdbackup - ustawia ile ramek można przesyłac ponownie jeśli nam łącze nie wyrabia

 

np jak ma się wysokie lossy albo choke

 

 

 

Dla nie kumatych:

 

 

 

cl_rate, cl_cmdrate

 

Gracz -------------->-->--> Server

 

 

 

 

 

rate, cl_updaterate

 

Gracz <--<--<---------------- Server

 

 

 

 

 

 

 

 

 

 

 

 

 

Powyższa część opisu komend należy do _KaszpiR'a_, z poradnika zamieszczonego na Board CS.

 

Wszelkie prawa należą do autora.

 

 

 

 

 

 

 

Skoro już po części większość powinna rozumieć co robi każda z w/w komend poraz przejść do konkretów, czyli tego jak powinniśmy je ustawić.

 

 

 

Najlepiej będzie jeśli zrobimy to z myślą o wymogach jakie panują w ligach, na turniejach, oraz na niektórych serwerach.

 

 

 

 

 

rate od 20000 do 35000

 

cl_rate od 9999 do 20000

 

cl_updaterate od 80 do 102

 

cl_cmdrate od 80 do 101

 

cl_cmdbackup 2

 

ex_interp od 0.03 do 0.01

 

 

 

 

 

Te wartości nie są zbyt duże, a ta gra ma tyle lat że w obecnych czasach każde łącze internetowe nie powinno mieć najmniejszych problemów aby utrzymać przyzwoitą jakość gry wraz z powyższymi ustawieniami.

 

 

 

Komendy oczywiście dodajemy do config.cfg lub do userconfig.cfg np. w ten sposób:

 

 

 

rate "25000"

 

cl_updaterate "101"

 

 

 

etc.

 

 

 

 

 

 

 

Prawdopodobnie jest to najwięcej co możecie zrobić dla komfortu waszej rozgrywki sami. Do reszty rzeczy zalicza się przeróżne wzmacnianie sygnałów radiowych oraz DSL, zmiany portów na centrali itp. Wam powinno wystarczyć wszystko to co zamieściłem w tym poradniku.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Z wyjątkiem fragmentu zaczerpniętego z Board CS reszta poradnika została napisana przeze mnie na podstawie własnych informacji, doświadczeń oraz wiedzy z internetu. Prawa autorskie należą wyłącznie do mnie. Zabraniam jakiegokolwiek kopiowania poradnika bez zgody autora.

 

 

 

 

 

 

 

 

 

Fully exclusive by 1amm.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...