1

ネットワークに関する私の限られた知識を許してください。

特定のマルチキャスト グループに参加する 2 つの小さなプログラムをクライアントとサーバーとしてセットアップしようとしています。サーバーは任意のデータをグループに送信し、クライアントはグループをリッスンしながらデータを受信します。

もちろん、これはUDP私がすでに行ったプログラムで可能です。ただし、s の代わりに MAC アドレスを使用する必要がありますIP。そして、これに関していくつか質問があります:

  1. マルチキャスト アプリケーションの MAC アドレスの範囲を固定することはできますか? 私が理解しているように、MAC アドレスの最初のオクテットの最下位ビットは、マルチキャストかどうかを示します。したがって、マルチキャスト MAC は次のようになります01:*:*:*:*:*。したがって、幅広い範囲のMACアドレスを使用する方法があるはずです(予約されているものを除く)。

  2. と書かれているところが多いAll multicast MAC addresses begin with: 0100.5e。それは常に真実ですか?私の知る限り、このプレフィックスはMACアドレスで固定されているため、残りのIPアドレスビットをここにマッピングするためのスペースが残されています. しかし、アプリケーションが IP アドレスを気にせず、MAC アドレスに基づいてマルチキャスト グループをリッスンする場合 (可能な場合) はどうなるでしょうか?. 最初のオクテットをそのままに01して、マルチキャスト アドレッシングに広い範囲を使用することはできませんか?

  3. IP に関係なく、MAC アドレスのみに基づいてマルチキャスト グループにパケットを送信し、マルチキャスト グループをリッスンする方法は? つまり、マルチキャスト グループ アドレスは MAC に基づいて定義されます。

私の質問が理にかなっているといいのですが。

4

1 に答える 1

0

IP(またはその上にUDP)を使用していない場合、IPアドレスをMACアドレスにマッピングするデフォルトの方法には、おそらく付加価値はありません. これらのマッピングは、たとえば次のように指定されています。

レイヤ 2 とマルチキャストの使用を主張する場合は、最初のオクテット セットの LSB (マルチキャスト ビット、参照: http://en.wikipedia.org/wiki/File:MAC-48_Address. svg)。その上に独自のマッピングを配置します。ただし、次のことを考慮する必要があります。

  • おそらく、NIC にデータを渡すように強制する必要があります。多くの場合、NIC はハードウェアに関心のあるフレームを除外します。これらのフィルターは通常、グループに参加するとき、または ALLMULTI フラグを設定するときに設定されます)。
  • おそらく中間にネットワーク機器があり、一部の疑似インテリジェント スイッチは、IGMP 加入 (ref igmp snooping) を検出しない限り、データの転送を拒否する場合があります。
  • また、データを読み取るために、コードで生のレイヤー 2 ソケットを処理する必要があることは明らかです。

UDP を使用するだけの容易さを考えると、これは大変な作業になる可能性があります。

于 2013-08-05T11:15:59.987 に答える