2014-01-14 1 views
1

Я разработал программу на C#, которая использует многоадресную систему UDP. Моя групповая группа использует 224.0.0.1 адрес для связи.Как я могу выделить многоадресный адрес UDP + порт на сервере

Сценарий следующий:

  • У меня есть несколько серверов, работающих под эту программу;
  • Каждый сервер использует другой порт для связи;
  • Серверы используют одну и ту же сеть.

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

Как я могу изолировать свой адрес и порт от шума, вызванного внешним трафиком?

Как я могу изолировать свой многоадресный трафик и защищать его от выхода из сети?

ответ

0

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

  • Из топологии сети POV:

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

    • Добавить локальный каталог действующих серверов. Если пакет получен с неизвестного адреса, отмените его.
    • Зашифруйте полезную нагрузку пакета с помощью обратимого алгоритма, такого как Rijndael. Полезные значения, которые не могут быть дешифрованы, могут быть объявлены недействительными.

Что касается второго вопроса - установить гнездо TimeToLive к 1. Это означает, что групповые данные будут только «хмель» один раз. Цитата:

s.SetSocketOption(SocketOptionLevel.IP, 
    SocketOptionName.MulticastTimeToLive, 2); 

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

http://www.codeproject.com/Articles/1705/IP-Multicasting-in-C