Gubienie pakietów (VoIP, TS3) przychodzących przy dużym ich natężeniu


(E Mr Koka) #1

Hej, mam problem z grami online, które komunikują się z graczem za pomocą dużej ilości pakietów. Opiszę tutaj trzy takie przypadki.

 

Pierwsza gra, w której zauważyłem problem to Space Engineers. Gdy któryś z graczy zaczął kopać w asteroidzie, pojawiające się odłamki skalne powodowały, że głosy na TS zaczęły rwać.

 

Kolejną grą jest GTA Online. Przy więcej niż 8 graczy w sesji dzieje się ta sama rzecz. Przy około 14 graczach TS gubi mniej pakietów, jestem w stanie zrozumieć jeśli ktoś coś mówi. Gdy sesja jest prawie pełna 25-29 graczy, TS3 informuje mnie w statystykach, że gubi nawet > 50% pakietów, jeśli ktoś coś w danym momencie mówi to praktycznie mogę tylko się domyślać co powiedział. Ewentualnie zostanę rozłączony z serwerem TS, lub kilka razy połączony ponownie (I na serwerze widnieje kilka kopii mojego połączenia z dodanymi kolejno numerkami do nazwy użytkownika).

 

Ostatnim przykładem będzie gierka, którą jakiś czas temu napisałem. Gra, gdy ustawię ją by odtworzyć mój problem, wysyła ponad 350 pakietów UDP na sekundę. Testowałem to z kolegą, odpalił on ją na swoim komputerze, statystykach klienta gry odczytał, że otrzymuje wszystkie ~350 pakietów. W moim przypadku jest to około 100-120, reszta pakietów jest zgubiona, lagi gry jak i lagi na TS (TS gubi wtedy 20-25% pakietów przychodzących). (Ten scenariusz jest dla mnie bardzo łatwy do odtworzenia i na nim właśnie sprawdzam czy coś się poprawiło.)

 

We wszystkich przypadkach mój głos słychać normalnie, i mam 0 zgubionych pakietów wychodzących.

 

Przetestowałem także scenariusz gdzie mam odpalonego TS'a na innym komputerze podpiętym kablem do tego samego routera, na 2 komputerze odpaliłem grę. Spowodowało to dropienie przychodzących pakietów na komputerze z TS3 (i nie zmiennie lagi w grze). Więc to chyba nie jest wina mojego peceta tylko jest to problem z routerem/dostawcą.

 

Mój router to Linksys WAG200G.

 

Jeśli macie jakieś pomysły jak wyeliminować problem lub dokładniej znaleźć jego przyczynę był bym wdzięczny.


(E Mr Koka) #2

Wygląda na to, że sobie poradziłem z problemem.

Stworzyłem aplikację klient-serwer, która pomogła mi w prosty sposób mierzyć ile pakietów na sekundę mogę odbierać/wysyłać, odpaliłem serwer na komputerze zdalnym klient na swoim, klientem połączyłem się z serwerem, który wysyłał do mnie n pakietów na sekundę, od 1 do 1000, pakiety UDP o payloadzie równym 1b. Okazało się, że w moim przypadku mogłem odbierać 150 pakietów na sekundę. Wysyłanie pakietów było w porządku, wynosiło około 1000 p/s. Poprosiłem też znajomych, żeby przetestowali swoje łącza - ich wynik to odbieranie około 1000 p/s. Więc na tą chwilę wiedziałem, że to musi być coś z dostawcą internetu lub modemem ADSL w routerze, bardziej skłaniałem się, że dostawca będzie problemem. Jednak na szczęście okazało się, że to mój router jest wadliwy. Następną rzeczą, którą zrobiłem było pożyczenie routera, wynik wskazywał, że problemem jest modem ADSL w moim routerze, ponieważ na pożyczonym mogłem odbierać około 1000 p/s.