Маршрутизатор перестает отвечать при использовании UDP - PullRequest
0 голосов
/ 06 марта 2012

Я работаю над многопользовательской игрой. Принцип прост, каждый из двух игроков периодически посылает друг другу 512 байт каждые 50 миллисекунд.

Проблема в том, что каждые 20-30 секунд игроки перестают получать данные иногда на одну, а иногда даже на 20 секунд (хотя отправка не была прервана).

Сначала я подумал, что это вызвано медленным подключением к сети на моей стороне или на стороне моего удаленного ПК, который я использую для отладки.

Но потом я заметил, что весь сетевой трафик на моей стороне замедляется в то же время, когда игра перестает получать данные.

Итак, я начал ping <my-local-router>, и вот что он мне показывает:

When the game isn't running:
...
64 bytes from 192.168.1.1: icmp_req=4520 ttl=64 time=4.89 ms
64 bytes from 192.168.1.1: icmp_req=4521 ttl=64 time=7.96 ms
64 bytes from 192.168.1.1: icmp_req=4522 ttl=64 time=10.5 ms
64 bytes from 192.168.1.1: icmp_req=4523 ttl=64 time=7.21 ms
64 bytes from 192.168.1.1: icmp_req=4524 ttl=64 time=8.10 ms
64 bytes from 192.168.1.1: icmp_req=4525 ttl=64 time=3.37 ms
64 bytes from 192.168.1.1: icmp_req=4526 ttl=64 time=5.12 ms
64 bytes from 192.168.1.1: icmp_req=4527 ttl=64 time=3.29 ms
...
When the game is running:
...
64 bytes from 192.168.1.1: icmp_req=47 ttl=64 time=6.99 ms
64 bytes from 192.168.1.1: icmp_req=48 ttl=64 time=1.69 ms
64 bytes from 192.168.1.1: icmp_req=49 ttl=64 time=2.60 ms
64 bytes from 192.168.1.1: icmp_req=50 ttl=64 time=2.88 ms
64 bytes from 192.168.1.1: icmp_req=52 ttl=64 time=9210 ms
64 bytes from 192.168.1.1: icmp_req=53 ttl=64 time=17144 ms
64 bytes from 192.168.1.1: icmp_req=54 ttl=64 time=16214 ms
64 bytes from 192.168.1.1: icmp_req=55 ttl=64 time=15372 ms
64 bytes from 192.168.1.1: icmp_req=56 ttl=64 time=14482 ms
64 bytes from 192.168.1.1: icmp_req=57 ttl=64 time=13486 ms
64 bytes from 192.168.1.1: icmp_req=58 ttl=64 time=12511 ms
64 bytes from 192.168.1.1: icmp_req=59 ttl=64 time=11546 ms
64 bytes from 192.168.1.1: icmp_req=60 ttl=64 time=10591 ms
64 bytes from 192.168.1.1: icmp_req=61 ttl=64 time=9626 ms
64 bytes from 192.168.1.1: icmp_req=62 ttl=64 time=1.34 ms
64 bytes from 192.168.1.1: icmp_req=63 ttl=64 time=3.33 ms
...

Похоже, что игра приводит к тому, что маршрутизатор перестает отвечать на запросы.

У меня на локальном ПК не работает P2P, но это даже не звучит актуально, так как я не испытываю замедления, когда игра не запущена.

Я новичок в программировании UDP, и я ничего не понимаю по этому поводу, тем более что 512 байт каждые 50 мс кажутся мне достаточно малой пропускной способностью (когда я запускаю P2P, он легко работает со скоростью 1,5 МБ / с).

1 Ответ

0 голосов
/ 30 марта 2012

Это мог быть мой маршрутизатор, умирающий и нуждающийся в замене, или что-то подозрительное в моих беспроводных драйверах, так как я заметил, что в последнее время больше зависаний сети даже в те моменты, когда приложение не работало.

...