boost::asio を使用したマルチキャスト転送に関する情報を読み始めたところですが、次の点にやや戸惑っています。
次の boost::asio の例で「リスニング アドレス」が必要なのはなぜですか? そのポイントは何ですか?なぜ localhost 以外のものを選ぶのでしょうか?
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/example/multicast/receiver.cpp
boost::asio を使用したマルチキャスト転送に関する情報を読み始めたところですが、次の点にやや戸惑っています。
次の boost::asio の例で「リスニング アドレス」が必要なのはなぜですか? そのポイントは何ですか?なぜ localhost 以外のものを選ぶのでしょうか?
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/example/multicast/receiver.cpp
複数のネットワークインターフェイスカードがある場合(各NICは異なるIPアドレスにバインドされている)、リスニングIPアドレスを指定する必要があります。
ラップトップで自宅で作業しているときは、おそらく気にしないでしょう。通常、主な目標は、マシン内で必要なすべてのものに何かを接続することですが、その場合localhost
は問題ありません。
一方、ハイエンド サーバーには通常、複数のネットワーク カードが搭載されています。さらに良いことに、高性能ネットワーク カードには複数の物理プラグが搭載されていることが多く、両方のプラグが異なる DHCP リースでアクティブになっている場合があります。
サーバーは、多くの場合、パブリック ネットワークとプライベート ネットワークの一部であり、独自のサブネットとアクセシビリティ パラメータを持つVPNを含む場合と含まない場合があります。システム管理者はこれらのアドレスについてよく考え、各サービスが利用できる特定のアドレスを深く気にかけています。プライベートサービスですか?これらの要求を行うべきではない、信頼されていないサブネットはありますか?
これらの質問は、セキュリティとシステム編成の問題の両方に及びます。マルチキャストに固有のものではありません。UNIXbind
システム コールも、上記のすべての理由から特定のアドレスを取得します。