Предположим, у меня есть группа многоадресной рассылки с идентификатором группы, и я хочу отправить пакет только одному из членов группы (как мы это делаем при любом рассылке). Является ли это возможным? Если да, то как?
По определению все пакеты, отправленные в группу многоадресной рассылки, будут получены всеми членами группы многоадресной рассылки. Устройство, доставляющее данные в группу многоадресной рассылки, не должно знать получателей. Отправитель отправляет пакеты по идентификатору многоадресной рассылки, и все заинтересованные получатели их слушают. В современных сетях маршрутизатор отслеживает, какие конечные узлы участвуют в определенных группах многоадресной рассылки, и отправляет на эти узлы только многоадресный трафик, нет необходимости отправлять трафик mcast в подсеть без подписчиков. Единственное состояние, отслеживаемое чем-либо в сети, - это маршрутизаторы, поскольку они определяют, какие подсети / конечные точки входят / не входят в группу mcast.
На уровне приложения можно отслеживать, какие конечные узлы участвуют в группе, хотя это зависит от конкретного приложения. Когда узлы объявляют, что хотят участвовать в группе многоадресной рассылки, трафик не доставляется на все узлы. Однако некоторые протоколы приложений требуют уведомления группы mcast, которая жестяная банка доставляться на все узлы, что, в свою очередь, позволяет грубо отслеживать, кто находится в группе. Этот трафик выглядит примерно так:
192.168.231.18:33411 -> 224.0.0.1:80
Пакеты формировались наоборот:
224.0.0.1:80 -> 192.168.231.18:33411
Считаются неверными и отбрасываются большинством стеков TCP / IP.
Единственный способ доставить контент на конкретный узел через многоадресную рассылку - это иметь маршрутизаторы сделать необходимую маршрутизацию пакетов. Это может быть возможно, но это будет для протоколов многоадресной рассылки, которые нуждаются в этом по какой-либо причине, если таковые имеются, и будет встроено в операционную систему маршрутизатора. Эта способность будет явным исключением из правил.
Обновление: Anycast в многоадресной рассылке
Направление связи Multicast - это отправка одним хостом всей группе подписчиков.
Anycast - это один хост, отправляющий на один узел, ближайший к группе.
Эти два понятия почти противоположны с точки зрения определения и просто не могут быть объединены.
Однако вы можете подойти к этому модель. Расстояние, на которое могут передаваться многоадресные пакеты, ограничивается маршрутизаторами, при этом маршрутизаторы на границе Интернета обычно не пропускают пакеты mcast. Это ограничивает многоадресную рассылку внутри сайта. Чтобы подключить несколько сайтов к одной многоадресной группе, узлы внутри сайта должны получить одноадресная передача данные с какого-то Мастер-сервера, а затем ретранслировать их в локальную группу многоадресной рассылки. Это выглядело бы так:
Изогнутые пунктирные линии представляют собой граничные маршрутизаторы, блокирующие многоадресную рассылку. Длинные пунктирные линии - это одноадресные потоки на локальные главные серверы. Процесс будет таким:
Думайте об этом как о ретрансляторах в радио. Повторители получают свой вещательный контент вне диапазона (спутниковая связь, микроволновая ретрансляция, подземные провода и т. Д.), А затем транслируют его через свою радиоантенну. Локальные мастера - это повторители, внеполосная связь с одноадресным потоком от мастера, а сама радиопередача - это многоадресная рассылка подписанным клиентам.
Некоторое сетевое оборудование может предоставить эту информацию, но я не знаю ни одного стандартного способа сделать это. Когда узел присоединяется к группе многоадресной рассылки, никакое объявление не отправляется источнику (источникам).