私はマルチキャストが実際にどのように機能するかを理解しようとしており、多数の記事やWikiページを読み、これを収集しました。
マルチキャストアドレスは、メンバーシップのルーターで状態を取得します。これは、スケーラビリティの問題です。
Windowsマシンでマルチキャスト状態を表示するコマンドがあります
ブロードキャストはオプションではなくなったため、IPv6ではマルチキャストが必要です。
質問:
マシンがルーターに「登録」して、マルチキャストグループの一部になりたいと言う方法を誰かに教えてもらえますか?
ホストはどのようにして自分に適したマルチキャストグループを見つけることができますか? (例:マルチキャストグループ1はVOIP、#2はファイルxferです。サーバーはどのIPが必要かをどのように検出しますか)
マシンはどのようにしてグループを離れますか?
これは、IPv4およびマルチキャストリスナ探索用のインターネットグループ管理プロトコル( IGMPv1 、 IGMPv2 および IGMPv )を使用して行われます( MLDv1 および MLDv2 )。一般に、マルチキャストルーターはローカルネットワーク上のノードにクエリを実行し、ローカルノードは関心のあるマルチキャストグループを報告します。
場合によります。一部のプロトコルには、よく知られているマルチキャストグループがあります。 IANAの IPv4マルチキャストアドレススペースレジストリ および IPv6マルチキャストアドレススペースレジストリ を参照してください。他のマルチキャストグループは、他のプロトコル、URL、構成ファイルなどを使用して通信されます。
古いバージョンのIGMPおよびMLDを使用している場合、ルーターは、クライアントが関心のあるレポートの送信を停止すると、クライアントがマルチキャストグループに関心がなくなったことを認識します。タイムアウトが発生し、ネットワーク上のクライアントが特定のマルチキャストグループに関心を持たなくなると、ルーターはそのグループへのマルチキャストパケットの転送を停止します。新しいバージョンのIGMPおよびMLDには、グループを脱退することをルーターに明示的に通知するオプションもあります。次に、ルーターは残りのローカルネットワークにクエリを実行し、リスナーがなくなると停止します。
イーサネットでは、マルチキャストパケットは特定のマルチキャストMACアドレスに送信されます。これらのアドレスへのパケットの配信は、イーサネットアダプタがリッスンしているMACアドレスによって異なります。したがって、マルチキャストトラフィックを受信するために、クライアントはリッスンするMACアドレスを計算し、イーサネットアダプターを構成してから、ルーターに必要なマルチキャストトラフィックを通知します。
マルチキャストで最も難しい部分は、ルーター間でマルチキャストトラフィックを転送する方法です。ここでのリスクは、ルーターが同じマルチキャストトラフィックを相互に転送し始め、ループを作成することです。これに使用できるプロトコルは複数あります。一般的なものは PIM-DM(高密度モード) 、 PIM-SM(スパースモード) および PIM-SSM(ソース固有マルチキャスト) です。