マルチキャストってなに? マルチキャストの場合
目次
いよいよマルチキャスト!
「複数のあて先に同じデータを送信したい!」というときに、ユニキャストを使った場合と、ブロードキャストを使った場合にどうなるんだろう?ということを解説しました。
どちらもこの目的にはあんまりよくなかったですね。そこで、マルチキャストの登場です!マルチキャストによって、どうやって複数のあて先に同じデータを流すことができるのか見ていきましょう。
ネットワーク構成はユニキャスト、ブロードキャストのときと同じく、とりあえずバス型ネットワークの次の図です。コンピュータAがビデオサーバで、コンピュータBとCがその画像を受け取りたい受信者です。
グループ化しよう
さて、マルチキャストの場合、データを受け取りたい複数のコンピュータをグループ化します。このグループ化のために、マルチキャストIPアドレスを利用します。
マルチキャストIPアドレスは、クラスDのIPアドレスですね。IPアドレスには、クラスA~Eがあって、クラスA~Cは普通に使うユニキャスト用のIPアドレス、クラスDがマルチキャスト用、クラスEが実験目的で予約されています。マルチキャストアドレスのクラスDは、224.0.0.0~239.255.255.255の間になります。
ここでは、コンピュータBとコンピュータCの受信者のグループを 224.1.1.1 というマルチキャストIPアドレスとして考えます。
このマルチキャストIPアドレスは、ほとんどはアプリケーションで設定をします。アプリケーションで設定すると、このグループあてのIPパケットは自分あてと判断するようになるわけですね。また、このマルチキャストIPアドレスに対応するマルチキャストMACアドレスあてのフレームを受け取るようにネットワークインタフェースカードに指示します。
データを送ろう
送信元のビデオサーバは、送信先IPアドレスにグループのマルチキャストIPアドレス224.1.1.1を指定して、ネットワークへと送り出します。すると、ここで「あれっ?」と思う人が出てくるでしょう・・・
「イーサネットヘッダはどうするの?」
って思いませんか?
イーサネットヘッダには、送信先MACアドレスを指定してあげないといけません。でも、送信先IPアドレスが224.1.1.1というマルチキャストIPアドレスだったらどうすればいいのかという疑問が出てきますよね?この答えは、マルチキャストIPアドレスに対応付けられるマルチキャストMACアドレスが存在するのです。
この対応関係は、次回詳しく説明しますが、イーサネットヘッダには、マルチキャストIPアドレスに対応するマルチキャストMACアドレスを書き込んで、ネットワークに送り出します。
ビデオサーバから送り出されたデータは、バス型ネットワークですからBにもCにもDにも届きます。まず、各コンピュータのネットワークインタフェースカードがイーサネットヘッダの送信先MACアドレスをみます。コンピュータBはマルチキャストグループに入っていないので、ネットワークインタフェースカードは、自分あてではないと判断してデータを破棄します。
コンピュータC、Dはネットワークインタフェースカードは、マルチキャストMACアドレスのフレームを受け取るように指示されているので、受信して上位のプロトコルに渡して、データの処理を行うことができます。
スイッチ型ネットワークでは?
いまのネットワークの一般的な形となっている、スイッチ環境も話は同じです。ビデオサーバは、送信先IPアドレスをマルチキャストIPアドレス、イーサネットヘッダの送信先MACアドレスは対応するマルチキャストMACアドレスとして、データを送信します。
スイッチは、マルチキャストフレームは基本的にフラッディングします。ですから、すべてのポートにこのマルチキャストフレームが転送されていきます。受け取った各コンピュータは、送信先MACアドレスから自分あてかどうかを判断して、上位のプロトコルへ渡していきます。
※マルチキャストフレームを関係のないポートにフラッディングしないようにすることもできます。IGMPスヌーピングという機能です。
マルチキャストっていいね!
こうしてみると、マルチキャストでは、ユニキャストの問題点、ブロードキャストの問題点が解決できることがわかります。
ユニキャストの問題点 | マルチキャストでは |
受信者が増えると、その数分だけパケットを送信するので、ネットワークが混雑する | マルチキャストではパケットはマルチキャストグループあたりひとつでいいのでネットワークが混雑しない!! |
ブロードキャストの問題点 | マルチキャストでは |
パケットはひとつでいいけど、非受信者のコンピュータに対してもCPU負荷をかけてしまう | マルチキャストでは、ネットワークインタフェースカードで所属していないマルチキャストグループあてのパケットをフィルタできるので、非受信者に負荷がかからない!! |
「マルチキャストを使うと便利になるなぁ」っていうことをわかっていただけましたか?
次からもう少し詳しくマルチキャストの世界を見ていきます。まず、マルチキャストなアドレスについて考えましょう。