マルチキャスト プログラミング

マルチキャスト プログラミングは、Windows ソケットを使用して有効になります。 Windows ソケットでは、ソケット オプションまたは IOCTL を使用して、IPv6 およびインターネット グループ管理プロトコル バージョン 2 (IGMPv2) および 3 (IGMPv3) のマルチキャスト リスナー検出 (MLD) バージョン 1 (MLDv1) および 2 (MLDv2) が有効になります。 このセクションでは、Windows の実装について説明し、Windows ソケットを使用してマルチキャスト プログラミングを有効にする方法と、その使用方法を示すプログラミング サンプルを提供します。

2 番目のバージョンの IGMP (以降は IGMPv2 と呼ばれます) を使用すると、ホストは特定のネットワーク インターフェイス上の IPv4 マルチキャスト アドレスによって識別されるマルチキャスト グループに参加および脱退できます。 Windows ソケットを使用すると、アプリケーションは特定のソケットにこのようなグループを参加させ、残すことができます。 ただし、IGMPv2 の欠点は、IGMPv2 グループに参加している IPv4 ソース アドレスがすべてのメンバーに送信され、グループがフラッディングされ、インターネット無線局などのプライマリ ソースを必要とする伝送では使用できなくなる可能性があるということです。 IGMPv2 の問題は、1 つの IPv4 ソース アドレス (または少数のソース) を選択的に選択できないことと、特定のマルチキャスト グループの送信者 (不正なブロードキャストやサービス拒否の加害者など) をブロックできないことです。 IGMPv3 は、これらの欠点に対処します。

Windows ソケットと IGMPv3 を使用すると、アプリケーションは特定のマルチキャスト IPv4 ソース アドレスとマルチキャスト グループ ペアを選択できます。 さらに、Windows ソケットを使用すると、開発者は特定のソースとグループのペアで追加のブロードキャストを選択的に許可したり、アプリケーションで特定のブロードキャスト をブロックしたりできます。 IGMPv3 は、Windows Vista 以降でサポートされています。

IPv6 上の MLD の最初のバージョン (MLDv1 と呼ばれます) は IGMPv2 と非常によく似ていて、同じ制限に苦しんでいます。 MLDv1 を使用すると、ホストは、特定のネットワーク インターフェイス上の IPv6 マルチキャスト アドレスによって識別されるマルチキャスト グループに参加および脱退できます。 Windows ソケットを使用すると、アプリケーションは特定のソケットにこのようなグループを参加させ、残すことができます。 ただし、MLDv1 グループに参加している IPv6 ソース アドレスは、すべてのメンバーに送信でき、グループがフラッディングされ、プライマリ ソースを必要とする転送では使用できなくなる可能性があります。 MLDv1 の問題は、1 つの IPv6 ソース アドレス (または少数のソース) を選択的に選択できないこと、および特定のマルチキャスト グループの送信者 (不正なブロードキャストやサービス拒否の加害者など) をブロックできないことです。 MLDv2 は、これらの欠点に対処します。

Windows ソケットと MLDv2 を使用すると、アプリケーションは特定のマルチキャスト IPv6 ソース アドレスとマルチキャスト グループ ペアを選択できます。 さらに、Windows ソケットを使用すると、開発者は特定のソースとグループのペアで追加のブロードキャストを選択的に許可したり、アプリケーションで特定のブロードキャスト をブロックしたりできます。 MLDv2 は、Windows Vista 以降でサポートされています。

Windows でマルチキャスト アプリケーションを開発するときに、アプリケーション プログラマが実行できる方法は 2 つあります。 最初のアプローチは変更ベースです。マルチキャスト ソースは、必要に応じて送信中でもソケット オプションを使用して追加または削除されます。 2 つ目のアプローチは、最終状態ベースです。ソース アドレスと、含まれるアドレスまたは除外されたアドレスは IOCTL で指定されます。 各アプローチは有効なマルチキャストプラクティスですが、開発者はソケット オプションと変更ベースのアプローチをより直感的で柔軟に使用できます。

このセクションには、次のページがあります。

Page title (ページ タイトル) 説明
Windows ソケットを使用した MLD と IGMP 変更ベースのプログラミング アプローチを使用して、Windows ソケット プログラミングで使用できるマルチキャスト ソケット オプションを列挙します。 2 つのマルチキャスト アプリケーション カテゴリを定義します。
マルチキャスト ソケット オプションの動作 マルチキャスト ソケット オプションを呼び出す場合の影響と要件を特定の順序で説明するための広範なテーブルを提供します。
マルチキャスト プログラミングのサンプル Windows でソケット オプションを使用してマルチキャスト アプリケーションを有効にする方法を示すプログラミング スニペット。
最終状態ベースのマルチキャスト プログラミング 最終状態のアプローチと、Windows ソケットを使用したマルチキャスト プログラミングに IOCTL を使用する方法について説明します。
ブロードキャスト アプリケーションを IPv6 に移植する IPv4 ブロードキャスト アプリケーションを IPv6 マルチキャストに移植するためのガイドラインを提供します。