2

enter image description hereНадежная Multicast библиотека C++

Я знаю this и this StackOverflow вопросов, которые ответы известны методы для достижения «Надежной Multicast», но не совсем поздно, я наткнулся на некоторых сайты, которые упоминают даже маршрутизаторы также должны быть запрограммированы на обрабатывать пользовательские протоколы, которые разработаны поверх UDP, это правда?

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

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

Заранее спасибо.

EDIT:

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

+0

Существует целая рабочая группа IETF по надежной многоадресной рассылке, и несколько протоколов уже существуют уже много лет: TRAM для одного, которые не являются накладными маршрутизаторами. Я предлагаю вам провести дальнейшие исследования. Поскольку это стоит, этот вопрос не в тему. – EJP

+0

@EJP Я не думаю, что это вопрос вне темы, поскольку сам вопрос задает разработчикам мнения о наилучшем надежном многоадресном протоколе, который не нуждается в изменении протокола транспортного уровня маршрутизаторов. Я могу исследовать, но это не помогло бы мне, пока эксперты не выскажут свое мнение. – RN55

ответ

0

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

От человека странице:

прокси может работать в одном из трех режимов: прокси-сервер, клиент прокси или прокси ответа.

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

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

Ниже приведена схема типичной конфигурации, в которой сервер посылает многоадресных сообщений в локальной сети, и один или несколько серверов прокси одноадресно сообщения к соответствующему прокси клиента, который, в свою очередь, многоадресных сообщения в своей локальной сети ,

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
x            Network A x 
x ----------            x 
x | Server |            x 
x ----------            x 
x  |             x 
x  | multicast          x 
x  |             x 
x  |-----------------------------------------  x 
x  |     |     |  x 
x  v     v     v  x 
x ---------------- ----------------  ---------- x 
x | Server Proxy | | Server Proxy |  | Client | x 
x ---------------- ----------------  ---------- x 
x  |     |        x 
x  | unicast   | unicast     x 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
     |     | 
     |     ------------ 
     |        | 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx 
x  |  Network B x x  |  Network C x 
x  v     x x  v     x 
x ----------------   x x ----------------  x 
x | Client Proxy |   x x | Client Proxy |  x 
x ----------------   x x ----------------  x 
x  |     x x  |     x 
x  | multicast  x x  | multicast  x 
x  |     x x  |     x 
x  |-------------  x x  |------------  x 
x  |   |  x x  |   |  x 
x  v   v  x x  v   v  x 
x ---------- ---------- x x ---------- ---------- x 
x | Client | | Client | x x | Client | | Client | x 
x ---------- ---------- x x ---------- ---------- x 
x       x x       x 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx 

Эти прокси также способны работать в среде NAT-:

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

Я являюсь автором этого программного обеспечения, поэтому, если вам нужны указатели относительно того, как установить это, отправьте мне электронное письмо по ссылке внизу страницы UFTP, и мы увидим, что мы можем сделать ,

Обновление:

В случае PGM, он может быть сконфигурирован, чтобы работать на любом уровне приложений (т.е. поверх UDP) или на транспортном уровне (т.е. непосредственно поверх IP). Если PGM запускается на транспортном уровне, вам может потребоваться беспокоиться о том, что маршрутизатор имеет специальную поддержку для него. И наоборот, UFTP работает строго на уровне приложения.

+0

Спасибо! прочитайте мой обновленный вопрос. Я думаю, что мои слова не были ясны раньше. – RN55

0

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

Единственный надежный способ проникновения через интернет-инфраструктуру - uni-cast.

Обновление: многоадресная маршрутизация выполняется на сетевом уровне, а многоадресные маршрутизаторы не должны ничего знать о транспортных/прикладных уровнях. В некоторой ситуации знание уровня приложения требуется на сетевом уровне, но почти вся эта ситуация связана с NAT ALG (Application Level Gateway).

Кстати, одним из возможных способов передачи многоадресной передачи через Интернет является протоколы туннелирования (GRE, IP over IP и т. Д.).

+0

Спасибо! прочитайте мой обновленный вопрос. Я думаю, что мои слова не были ясны раньше. – RN55

+0

@ RN55 Обновленный ответ. –

+0

См. Обновленное изображение, которое показывает, что PGM требует поддержки транспортного уровня в маршрутизаторах, этот снимок экрана был захвачен с одного из слайдов, который объясняет, как работает PGM. Означает ли это, что мы должны покупать маршрутизатор, который поддерживает PGM? – RN55