Как определить, отбрасывает ли сеть пакеты UDP?

У меня есть потоковое видео приложение, которое отлично работает в моем офисе, но терпит неудачу в месте клиента. Симптом в том, что каждые пару секунд я прекращаю получать UDP пакеты на 2 секунды, затем поток возобновляется, как будто ничего не случилось.

Я побежал http://www.pingtest.net/ на положении клиента и ем пришло назад превосходным. Отсутствие отброшенных пакетов и низкая задержка. Единственная разница, которую я заметил между нашими двумя местами, заключается в том, что ping google.ca раз в их расположение, но работает в шахте.

Как проверить, блокирует ли сеть входящие UDP пакеты? есть ли способ для меня, чтобы увидеть, опуская пакеты?

1
задан Gili
09.05.2023 0:27 Количество просмотров материала 3081
Распечатать страницу

3 ответа

вы можете попробовать установить UDP-соединение с netcat.

на машине на вне сети потребителя выполнить:

nc -u -l -p 1234            # if using netcat-traditional
nc -u -l 1234               # if using netcat-openbsd (as pointed out by @JamesHaigh)

Примечание -u, который указывает netcat использовать UDP. (А также имейте в виду, что существуют различные версии netcat, для чего понадобится -p параметр или нет; даны варианты для двух наиболее распространенных(?) те, которые включены в Debian.)

на месте потребителя: nc -u [addr of machine A] 1234.

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

4
отвечен mpy 2023-05-10 08:15

на стороне сервера, установить сервер UPD с

iperf -s -u

на стороне клиента, проверьте UDP соединение с

iperf -u -c <IP Address of Server>
12
отвечен ckarrie 2023-05-10 10:32

netcat команды в ответе mpy полезны для диагностических целей, но я дополняю этот ответ другим подходом к вашей основной проблеме.

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

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

не может быть плохой идеей иметь запасной вариант, а не полагаться только на UDP. Даже если вы только вернетесь к TCP, то, по крайней мере, вы можете сказать, что он работает, может быть, просто не оптимально.

0
отвечен James Haigh 2023-05-10 12:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх