Страниц: [1]
  Печать  
Автор Тема: Multicact  (Прочитано 5938 раз)
oder
Гость
« : Ноября 07, 2012, 11:21:44 am »

Привет.

Может, кто-то знает, чтоб я не искал по манах...
Если есть малтикаст-группа и клиент к ней присоединяется, я так понимаю, создатель группы его у себя в списке где-то отмечает, чтоб ему, вместе с остальными, адресовать малтикасты. Если создателя группы убить и перезапустить - список подписчиков, очевидно, очистится. Как клиент должен знать, что ему нужно наново к группе подсоединяться? Только по таймауту?
Записан
darkelf
QOR.Moderator
*****
Offline Offline

Сообщений: 256


Просмотр профиля
« Ответ #1 : Ноября 07, 2012, 11:35:32 am »

Если на низком уровне, насколько я помню, то на карточке разрешается принимать и для указанного группового адреса тоже, плюс в сеть шлётся IGMP пакет - что-бы и вышестоящее сетевое оборудование тоже пропускало такие пакеты дальше. Для закрытия сокета выполняются аналогичные действия - на карточке закрывается приём (а скорее всего уменьшается счётчик для такого адреса, и если счётчик равен 0, то закрывается для него приём), плюс  в сеть  выдаётся другой IGMP пакет для вышестоящего сетевого оборудования. Таким образом, если я не ошибаюсь, создатель группы у себя никаких списков не ведёт.
Записан
AshKhan
Участник
*
Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #2 : Ноября 07, 2012, 12:29:20 pm »

При работе обмена в режиме мультикаст, соединение сокета выдачи и приема не создается - это ведь UDP приблуда. То есть, для отправки сообщений на групповой сокет используется простой sendto, где указывается IP-адрес получателя. Соответственно, выдача возможна всегда. Прием простым read из сокета группы. Тут другие заморочки возможны. Например, выдача по групповому адресу осуществялется только с одного интерфейса (по-умолчанию самый первый в системе), и для того, чтобы выдать в другой, потребуется руками переключить этот интерфейс. Еще что-то там с роутингом нужно делать.
Записан
oder
Гость
« Ответ #3 : Ноября 07, 2012, 04:09:05 pm »

Фокус в том, что мультикаст тем отличается от броадкаста, что если из сети есть несколько выходов, он идёт (он вообще идёт!) только в те выходы, за которыми есть клиенты. Вы же представляете, что бывают малтикаст сервера в Интернете, которые вещают на весь мир? Так вот, эта информация о клиентах должна где-то храниться. А уж какой функцией отправлять - это я знаю.
Записан
oder
Гость
« Ответ #4 : Ноября 07, 2012, 04:19:59 pm »

to darkelf: Спасибо. Буду пробовать.
Записан
mike
QOR.Moderator
*****
Offline Offline

Сообщений: 1186


Welcome to Lunatic Asylum.


Просмотр профиля WWW
« Ответ #5 : Ноября 08, 2012, 12:42:28 pm »

нет никаких списков, сервер тупо плюёт данные в мультикаст группу, клиент тупо слушает
Фокус в том, что мультикаст тем отличается от броадкаста, что если из сети есть несколько выходов, он идёт (он вообще идёт!) только в те выходы, за которыми есть клиенты.
повторите тот-же фокус с хабом или тупым свичём, не получится, это возможно только на умных свичах используя протокол IGMP, но это относится к коммуникационному оборудованию, а не как не к хосту
Вы же представляете, что бывают малтикаст сервера в Интернете, которые вещают на весь мир? Так вот, эта информация о клиентах должна где-то храниться. А уж какой функцией отправлять - это я знаю.
маршрутизация мультикаста это отдельная песня, там уже за это отвечает протокол PIM
Записан
Страниц: [1]
  Печать  
 
Перейти в: