0

Linux カーネルでのマルチキャストに関して 1 つ疑問があります。マルチキャスト データが到着すると、Linux カーネルは MFC をチェックし、一致するエントリが見つからない場合、カーネルは制御メッセージ キャッシュ ミスとヘッダーをユーザー空間に提供します。私の質問は、データ パケットはどうなりますか? 故意に MFC 内にエントリを保持したくないが、転送情報を持つ他のテーブルがあり、そのテーブルを使用したい場合、どうすればよいでしょうか?

よろしく、バビン。

4

2 に答える 2

0

一致する MFC エントリがないデータ パケットが到着した場合、データ パケットはキューに入れられます。そのパケットに一致する MFC エントリが追加されるか、タイムアウト (10 秒) のいずれか早い方が経過するまで、そのキューに留まります。キュー自体には 10 エントリの制限があり、その制限に達すると、それ以上のパケットはキューに入れられなくなります。その場合、未解決のパケットはドロップされます。

Linux が複数の MFC テーブルを持つことをサポートしているとは思いません (ただし、間違っている可能性があります)。別の方法として、これらのマルチキャスト パケットを生のソケットで受信し、好きなインターフェイスに転送することで、これらのマルチキャスト パケットをユーザー空間にルーティングすることもできます。実際、IPv6 マルチキャスト ルーティング デーモンの多くは、Linux での IPv6 マルチキャスト サポートが成熟する前に、このような方法を使用していました。

于 2010-02-12T22:27:25.467 に答える
-1

以下のコマンドを使用して、関連するカーネルがマルチキャストサポートをコンパイルしたかどうかを確認できます

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


/UE
于 2013-05-10T07:18:03.390 に答える