UDP Multicast через Интернет?
Я не уверен, как лучше подойти к моей проблеме. У меня есть служба с запусками на удаленном компьютере с приемами и обработкой пакетов UDP. Я хочу, чтобы служба могла повторно отправить эти пакеты всем, кто их хочет (может быть не один, обычно будет одна машина, но может быть больше)
Я понял, что многоадресная рассылка UDP будет идеальной - служба может отправлять в группу многоадресной рассылки, и неважно, сколько регистраторов зарегистрировано, или даже если их нет.
Тем не менее, я хочу иметь доступ к этому через Интернет, и из того, что я собираю, это невозможно с помощью многоадресной рассылки UDP. Есть ли другой способ, который я мог бы использовать для достижения этого?
Если это уместно, и мой клиент и служба написаны на С#.
Ответы
Ответ 1
В общем случае это невозможно, так как многоадресные пакеты не маршрутизируются.
Существует несколько методов для работы (DVMRP, MOSPF и др.), но все они требуют, чтобы вы могли настроить все маршрутизаторы между вашим сервером и клиентами (или создать туннель). Существуют магистральные сети (Abilene, Mbone) с поддержкой многоадресной рассылки, но они представляют наибольший интерес для университетов и т.д. Обычный интернет-потребитель не имеет многоадресной рассылки.
К сожалению, вам нужна связь точка-точка. Но вы находитесь в хорошей компании, Интернете, радио и телевидении, все делают "точка-точка", передавая одни и те же данные много раз. Весьма бесполезная полоса пропускания.
Ответ 2
Предпочтительным способом является использование многоадресной передачи наложения, то есть использование TCP-связей между одноранговыми узлами и реализация многоадресной семантики выше этого.
Многие маршрутизаторы IPv4 не поддерживают многоадресную рассылку или отключены, IPv6 имеет мандат на поддержку многоадресной передачи и трансляции семантики.