2009-09-21 4 views
0

J'ai un doute concernant la multidiffusion dans le noyau Linux. Lorsque les données de multidiffusion arrivent , le noyau Linux vérifie MFC et si l'entrée correspondante n'est pas trouvée, alors le noyau donne le message d'erreur et l'en-tête du message de conrol à l'espace utilisateur. Ma question est ce qui arrive au paquet de données ? Supposons que je puisse délibérément ne pas vouloir garder l'entrée à l'intérieur de MFC mais je peux avoir une autre table qui a des informations de transfert et je veux utiliser celle-ci alors que faire?Multicasting + Linux Kernel

Cordialement, Bhavin.

Répondre

0

Si un paquet de données arrive pour lequel il n'y a pas d'entrée MFC correspondante, le paquet de données est placé dans une file d'attente. Il restera dans cette file d'attente jusqu'à ce qu'une entrée MFC soit ajoutée qui correspond à ce paquet ou qu'un délai expire (10 secondes), selon la première éventualité. La file d'attente elle-même a une limite de 10 entrées, et une fois cette limite atteinte, plus aucun paquet ne sera mis dans la file d'attente. Dans ce cas, les paquets non résolus seront supprimés.

Je ne pense pas que Linux supporte plusieurs tables MFC (mais je peux me tromper). Comme alternative, vous pouvez router ces paquets de multidiffusion dans l'espace utilisateur en les recevant sur un socket brut, puis en les transférant sur l'interface de votre choix. En fait, de nombreux démons de routage de multidiffusion IPv6 utilisaient une méthode comme celle-ci avant que le support de multidiffusion IPv6 sous Linux ne mûrisse.

-1

vous pouvez vérifier que si le noyau compilé le support lié multidiffusion à l'aide de commande ci-dessous

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


/UE