マルチキャストってなに? ブロードキャストの場合
目次
ブロードキャストで複数のあて先にデータを送る
前回で、ユニキャストを利用して複数のあて先に同じデータを送りたい!という場合を考えました。ユニキャストでは、複数のあて先ごとに別々にデータを送らなければいけないために、あて先が増えれば増えるほど、大変なことになってしまいます。
今回は、ブロードキャストを利用して複数のあて先にデータを送るという場合を考えます。前回と同じく、AをビデオサーバとしてCとDに画像データを送ります。
バス型ネットワークで
ブロードキャストなので、送信先IPアドレスを192.168.1.255を指定し、送信先MACアドレスもブロードキャストアドレスであるFF-FF-FF-FF-FF-FFを指定したイーサネットフレームを送信します。
バス型のネットワークの場合、B、C、Dのすべてのコンピュータにフレームが到達します。フレームを受信したコンピュータは、送信先MACアドレスを見ると、ブロードキャストアドレスなので上位のIPプロトコルにデータを渡します。そして、送信先IPアドレスもブロードキャストアドレスになっているので、さらに上位のプロトコルにデータを渡していくことになります。
でも、この画像データは、コンピュータBには関係ないです。関係ないのに、IPよりももっと上の層のプロトコルまでデータを渡していって、トランスポート層、もしくはアプリケーション層でデータを破棄することになります。
IPプロトコル以上は、OSの中に含まれています。すると、IP以上でデータを処理するということは、コンピュータBのCPUプロセスを消費してしまうことになります。
ブロードキャストでは、同じデータを複数のあて先に送りたいときは、ひとつだけ送ればいいです。しかし、そのデータが必要ないコンピュータも受け取ってしまい、余計な負荷をかけてしまうことになります。
スイッチ型ネットワークで
バス型ではなく、スイッチを利用した環境でも同じです。スイッチは、ブロードキャストをフラッディングします。フラッディングされた、ブロードキャストはスイッチに接続されたコンピュータすべてに届き、非受信者に対して負荷をかけてしまいます。
ユニキャスト、ブロードキャストは効率悪いね・・・
今回と前回でみたように、ユニキャスト、ブロードキャストを使って複数のあて先にデータを送信するとき、効率がよくないことがわかります。
ユニキャストであれば、受信者が増えれば増えるほど、ネットワークの帯域をたくさん消費してしまいます。ブロードキャストであれば、データを受信しない非受信者のコンピュータのCPUに負荷がかかってしまうという問題がでてきます。
こういった問題をマルチキャストでは解決することができるようになります。
次回、マルチキャストであれば、効率よく複数のあて先に同じデータを送信することができるということを解説していきます。
お楽しみに!