問題タブ [igmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sockets - ローカル ネットワークでの IGMP メッセージのスニッフィング
ローカル ネットワーク上のすべての IGMP メッセージを盗聴しようとしています (これについては説明しません ;-))。私は IGMP/ルーティングの専門家ではないので、これに関していくつか質問があります。
それは可能ですか?raw ソケットから IGMP を読み取ることができることは知っていますし、Wireshark を使用してローカル コンピューターに到達する IGMP メッセージを監視できることも知っていますが、私を困惑させるのは次の点です。
マルチキャストアドレスに参加する別のコンピューター(スイッチによってWiresharkを実行しているコンピューターから分離された)でプログラムを使用していますが、Wiresharkでメンバーシップレポート/ JOINが表示されるとは限りません。すべてのIGMP 参加がローカル ネットワーク全体に分散されていることが保証されているかどうかは誰にもわかりませんか? Wireshark で結合が表示されることもあれば、表示されないこともあります。
すべての IGMP Join メッセージが常にネットワーク上のすべてのステーションに送信されると仮定すると、次のようなことを行うマルチキャスト グループのメンバーであるステーションを監視することはできないはずです (posix ソケットの C++ コード)。
multicast - 参加および脱退時にマルチキャスト データグラムを失う
サーバー ソフトウェアで、1 つのスレッドがマルチキャストに参加すると、別のスレッドが同じ瞬間に別のマルチキャストで着信データグラムを受信できないという問題が発生しています。これが UDP マルチキャストの「信頼性の低い性質」による予想される損失として片付けられるかどうか、またはこれが重大なドライバー/NIC の欠陥であるかどうかはわかりません。パケットキャプチャもその瞬間のギャップを示しています。
この問題は、Intel や HP など、複数の NIC モデルとメーカーで確認されています。これが NIC またはドライバーの問題であると私が感じる理由は、インターフェイスを無差別モードにするパケット スニファーを実行すると、問題がまったく発生しないためです。
IGMP の参加または脱退が NIC の転送テーブルを更新している間に、その時点ですべてのマルチキャスト トラフィックの転送が停止する可能性はありますか? これは受け入れられますか?
c - ip_sf_socklistのサイズを取得する方法
私のコードでは、ip_sf_socklistのサイズを取得しようとしています。唯一の問題は、この構造が(igmp.hで)次の後に定義されることです。
したがって、ユーザースペースでは、その構造を確認できません。/ usr / src / linux-headers-xxxxの形式でヘッダーを含めることもできますが、それは洗練されておらず、上位のカーネルに移動すると問題が発生する可能性があります。そのような場合に含まれるヘッダーを変更するのを忘れると、多少の不一致が発生します。
その構造のサイズを取得する簡単な方法はありますか?最新のヘッダー(makefileで更新される)を指すシンボリックリンクを持つよりも何かが異なりますか?
windows - Windows サーバー 2008r2 のマルチキャストと igmp の問題
Windows 2008 R2 サーバーでマルチキャストを実行していますが、ルーターが参加しているグループのマルチキャストをオフにするという断続的な問題が発生します。Wireshark を使用して IGMP トラフィックを調べると、ルーターが一般的な IGMP クエリを送信したときに、IGMP メンバーシップ レポートが送信されないことがあります。たとえば、4 つのグループに参加した場合、4 つすべてからの応答が表示されることもあれば、3 つ、時には 2 つの応答が表示されることもあります。ルーターで有効期限を 300 秒に設定して、理論的にはこれを補いますが、常に成功するとは限りません。ルーターがフィードを停止すると、120 秒後に再開します。これは、読み取っているデータのギャップが大きすぎて埋めることができません。
これは修正できるものですか?これは通常の動作とは思えません。
multicast - OpenWRTでIGMPスヌーピングを有効にするにはどうすればよいですか?
TP-LINKTL-WR703NでOpenWRTを使用しています。有線側の大量のマルチキャストデータがWifiで送信されないようにブロックする必要があります。これにはIGMPスヌーピングを使用できると思いました。「2.6.34以降、カーネルにはソフトウェアブリッジのIGMPスヌーピング機能があり(OpenWrtではデフォルトで無効になっています)」というコメントが見つかりました。カーネルは3.6.11で、r34761を実行しています。しかし、この機能をオンにする方法を説明する場所はどこにも見つかりません。
multicast - メンバーシップ レポートを送信しないイーサネット マルチキャスト
これは宿題の質問です。この問題の解決策を見つけるために、ほぼ1週間試しました。問題は次のとおりです
拡張イーサネット LAN (ブリッジを介して接続された複数のイーサネット LAN セグメント) でマルチキャストを行うことを検討してください。ホストがイーサネット メンバーシップ レポートを送信しないと仮定します (クラスで説明しました)。ただし、ブリッジ (ホストではない) のソフトウェアは、自由に構成できます。その LAN に IPv4 マルチキャストを実装したいとします。効率的なマルチキャストを可能にするために、ブリッジをどのように変更しますか? つまり、ブリッジは IP マルチキャスト パケットを受信者が存在する LAN セグメントにのみ転送し、ブリッジでの処理量を最小限に抑える必要があります。
前もって感謝します
c# - IGMP 参加メッセージで間違ったチェックサムが返される
UDP パケットを受信するためにマルチキャスト グループに接続しようとしています。私が使用しているコードはうまく機能しており、パケットを受信していますが、これまで問題はありませんでした。しかし、マルチキャスト参加メッセージを確認する必要があるスイッチをパケットが通過する必要があるという新しい要件があります。以前はダムスイッチでしたが、これは問題ではありませんでした。
マルチキャスト グループに参加するには、次のコードを使用します。
IGMP Join メッセージを生成する行は次のとおりです。
そして、IGMP Join メッセージが送信されます。
ただし、Wireshark でネットワークをスヌープすると、IGMP メッセージのチェックサムが正しくないことがわかります。
これは私のコードの問題ですか、それとも入力の問題ですか? それとも他に何かありますか?
c - C で igmp v3 を使用してマルチキャスト グループに参加する方法
マルチキャスト グループに参加するために、私は次のようなコードを目にすることに慣れています。
現在、誰かがこれは v2 igmp 参加要求であり、v3 が必要であると言っているという問題に直面しています。これは上記のコードで対処する必要があるものですか、それとも上記のようなコードを実行しているホストのハードウェア/ネットワーク/OS の問題ですか? 上記のコードが間違っている場合、どのような手順で修正できますか?
c++ - Linux で c/c++ で igmp クエリ ジェネレータをビルドする方法
IGMP (raw ソケット) クエリ ジェネレーターとして機能する ac/c++ テストを探しています。または、IGMP クエリ ジェネレーターとして機能する合成テストを追加する方法を探しています。perl igmp クエリ ジェネレーターを見つけました ( http://www.coexsi.fr/出版物/igmp-querier/igmp-querier.pl )、しかし実際にはそれをテストする方法がわかりません、またはこれの目的は何ですか?