Как я могу проверить многоадресную UDP-связь между двумя серверами?


19

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

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

Серверы работают под управлением Windows 2008 R2.

Как я могу проверить многоадресную UDP-связь между двумя серверами?

Ответы:



9

iperf - отличный инструмент, но его установка может занять много времени; Большинство репозиториев не имеют этого пакета. В зависимости от вашего дистрибутива, netcat доступен практически в каждом репозитории

Вы также можете использовать netcat:

Сервер: nc -lu -p PortNr

Клиент: nc -vzu ServerIP PortNr


+1 Ах! Потрясающие! Я попробую это!
вьетнам

4
Это не будет работать для UDP Multicatst. Я попробовал это с адресом MC как 224.4.4.4, и ничего не происходит. Также strace on it не показывает никаких операций ADD_MEMBERSHIP. Многоадресная передача также отсутствует в человеке. Я предлагаю sockperf - см. Ниже.
Авнер

1
пример с сокатом:socat UDP4-RECVFROM:9875,ip-add-membership=225.2.215.254:0.0.0.0,fork - |hexdump
Франсуа

Я не думаю, что это правильно. Как бы я установить группу?
AndreKR

4

Я очень рекомендую sockperf

Это отличный инструмент для проверки производительности как по TCP, так и по UDP, включая UDP Multicast.

Пример многоадресного UDP-потока:

  • на сервере: sockperf server -i 224.4.4.4 -p 1234
  • на клиенте: sockperf ping-pong -i 224.4.4.4 -p 1234


0

Вы можете просто использовать утилиту multiNC, которая позволяет обрабатывать несколько соединений на одном порту, github-репозиторий


2
Здравствуйте и добро пожаловать в ServerFault. Вы должны указать в своем ответе, что вы написали этот инструмент; в противном случае он может быть помечен как спам.
Даниэль Гриском,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.