2009-09-21 3 views
0

У меня есть одно сомнение относительно многоадресной передачи в ядре linux. Когда поступают данные многоадресной передачи Ядро Linux проверяет MFC, и если соответствующая запись не найдена, ядро ​​передает пропуски и заголовок кэша сообщений в пространство пользователя. Мой вопрос заключается в том, что происходит с данными пакета ? Предположим, я намеренно не хочу хранить запись внутри MFC, но у меня может быть какая-то другая таблица, которая получила информацию о пересылке, и я хочу использовать ее тогда, что делать?Multicast + Linux Kernel

С уважением, Бхавин.

ответ

0

Если поступает пакет данных, для которого нет соответствующей записи MFC, тогда пакет данных помещается в очередь. Он останется в этой очереди, пока не будет добавлена ​​запись MFC, которая соответствует этому пакету, или истечет время ожидания (10 секунд), в зависимости от того, что произойдет раньше. Сама очередь имеет ограничение в 10 записей, и как только этот предел будет достигнут, больше пакетов не будет помещено в очередь. В этом случае неразрешенные пакеты будут удалены.

Я не думаю, что Linux поддерживает несколько таблиц MFC (но я мог ошибаться). В качестве альтернативы вы можете маршрутизировать эти многоадресные пакеты в пользовательском пространстве, используя их, получая их в сыром сокете, а затем перенаправляя их независимо от того, какой интерфейс вам нужен. На самом деле многие из многоадресных маршрутизирующих демонов IPv6 использовали такой метод, как до поддержки многоадресной передачи IPv6 в Linux.

-1

вы можете проверить его, что если он связан ядро ​​компилируется поддержку многоадресной рассылки, используя команду ниже

grep -i "multicast" /boot/config-2.6.32-358.6.1.el6.x86_64 


/UE