30 Minutes NetWorking
No.SW21

30Minutes NetWorking

BCMSN

第21回マルチキャスト(1) アドレッシング

■ ユニキャストとブロードキャスト

スーパーインター博士

ネット君、データの送信として3種類あるのは知っているな?

ハイパーネット助手

3種類? どういう基準の種類分けですか?

スーパーインター博士

む。そう言われれば基準がないと答えづらいな。
宛先の数、ではどうだ?

ハイパーネット助手

宛先の数? となると、ユニマルチブロードの3種類のキャストですか?

スーパーインター博士

そうだ。その3種類のキャストだ。

ハイパーネット助手

1つの宛先に送るのがユニキャスト。複数の宛先に送るのがマルチキャスト。
でもって、全ホストに送るのがブロードキャストでしたね。

スーパーインター博士

うむうむ。
実際今までの話の中でよく出てきたのは、ユニキャストとブロードキャストだな。

ハイパーネット助手

そうですねぇ、普通にデータ転送といえばユニキャストを指すことが多いですし。
あとはRIPとかDHCPとかARPとかでブロードキャストですよね。

スーパーインター博士

そうだな。で、ここからが今回の話のメインになっていくわけだが。
マルチキャスト、なんていうものが何故存在しているか、という話だ。

ハイパーネット助手

ん? マルチキャストってあっちゃいけないんですか?

スーパーインター博士

そういうわけではないが、「複数」ではなく「全ホスト」に送ったっていいわけだし。
「複数」ではなく「単一」へ「複数」送ったっていいわけだろう?

ハイパーネット助手

んんん? そう言われれば、そうかな?

スーパーインター博士

では、そのように考えてみる。
ユニキャストを使って、マルチメディアアプリケーションのデータを送りつけることを考えてみよう。

ハイパーネット助手

まるちめでぃああぷりけーしょん? 例えばどんなのです?

スーパーインター博士

メディアコンテンツのストリーミングとか、そうだな、ビデオ会議が一番いい例かな。
大きめのデータを、ビデオ会議に参加しているホストにだけ送るのだ。

[FigureSW21-01:ユニキャストでの転送]

ハイパーネット助手

こうなりますよね。

スーパーインター博士

そうだ、だが最大の問題は、使用する帯域幅だ。

ハイパーネット助手

使用する帯域……、最大でサーバ・ルータ間の4Mbpsですか?

スーパーインター博士

それは、この例が4台しか参加ホストがいないからだ。
もし、100台いたらどうなる?

ハイパーネット助手

100台だと、1Mbsp × 100で、100Mbps。ファストイーサの理論最大値ですね。

スーパーインター博士

逆に、転送データがもっと大きかった場合は?
このように、ユニキャストでの複数転送は消費帯域が大量に必要となるわけだ。

ハイパーネット助手

確かに。2Mビットのデータを100台になんていったら、ファストイーサじゃ運べませんね。

スーパーインター博士

そうだろう? さらに、ルータやスイッチのパケット転送量の問題も発生してくる。
とてもじゃないが、マルチメディアアプリケーションのような大サイズのデータを複数宛には送れない。

ハイパーネット助手

ん〜と、じゃあ。ブロードキャストなら?

スーパーインター博士

ブロードキャストだとこうなる。

[FigureSW21-02:ブロードキャストでの転送]

ハイパーネット助手

参加していないホストまで処理しなければならない…。

スーパーインター博士

そうなる。ブロードキャストは全ホストが無条件で受け取り、レイヤ4までデータを渡さなければいけない。処理が大きすぎるのだよ。

ハイパーネット助手

でも、DHCP DISCOVERとかもそうじゃないですか?

スーパーインター博士

データのサイズが違いすぎる。DHCP DISCOVERは1〜2Kビット程度だ。
それにくらべ、このようなマルチキャストアプリケーションは500K〜数Mになることもある。

ハイパーネット助手

う、う〜ん。

スーパーインター博士

というわけで、このような問題を解決するソリューションがマルチキャストなわけだ。

[FigureSW21-03:マルチキャストでの転送]

ハイパーネット助手

お〜。

スーパーインター博士

これがマルチキャストを使う利点なわけだ。
わかってもらえたかね、ネット君。

ハイパーネット助手

え〜、そりゃバッチリ。

■ IPアドレッシング

スーパーインター博士

さてさて、このマルチキャストだが。レイヤ4ではUDPを使用し、IPマルチキャストアドレスをアドレスとして使う。

ハイパーネット助手

クラスDですね。

スーパーインター博士

そうだな。
そして、マルチキャストのデータを受け取りたいホストは、マルチキャストグループに参加する。

ハイパーネット助手

ははぁ、グループ。

スーパーインター博士

このグループに対応したIPマルチキャストアドレス宛に送信されたパケットは、そのグループに参加したホストが受け取る。そういう形になるわけだ。

マルチキャストグループ

[FigureSW21-04:マルチキャストグループ]

ハイパーネット助手

ブロードキャストみたいに、「複数宛」の1つのアドレスを宛先として送るんですね。

スーパーインター博士

そうなる。ブロードキャストは「全員宛」の1つのアドレスを宛先として送るわけだからな。
このアドレスは、先ほどネット君が言ったとおり、クラスDなわけだが。

ハイパーネット助手

クラスD、224.0.0.0〜239.255.255.255ですね。

スーパーインター博士

クラスDは、階層化されていない、クラスA〜Cとは全く異なるアドレスだ。
まず、以下の2つの範囲は一般には使用できない。

224.0.0.0〜224.0.0.255管理・メンテナンス用
239.0.0.0〜239.255.255.255管理スコープ用

[TableSW21-01:使用できないアドレス]

ハイパーネット助手

224の最初と、239全部がダメ、と。
管理用と管理スコープ用ってどう違うんです?

スーパーインター博士

管理スコープについては、RFC2365参照のこと、だな。 ▼ link

ハイパーネット助手

……逃げましたね

スーパーインター博士

……、さて、さらに、224.0.0.0〜224.0.0.255では、Well-Knowなアドレスがある。
一部を抜粋しよう。

224.0.0.1サブネット内の全マルチキャストホスト
224.0.0.2サブネット内の全ルータ
224.0.0.4すべてのDVMRPルータ
224.0.0.5すべてのOSPFルータ
224.0.0.6すべてのOSPF DR
224.0.0.9すべてのRIPv2ルータ
224.0.0.13すべてのPIMルータ

[TableSW21-02:Well-Knownアドレス(抜粋)]

ハイパーネット助手

あ〜、なんか見覚えあるのと、見覚えない名前が……。
って、博士。ごまかされませんよ

スーパーインター博士

ちっ。しぶとい。
……そうだ、ネット君。君がRFC2365を読んだ上での質問なら受け付けようじゃないか。

ハイパーネット助手

う、うぅぅぅぅ。姑息な手を……。

■ MACアドレッシング

スーパーインター博士

さて、アドレスといえば、もう1つ必要なアドレスがあるな、ネット君。

ハイパーネット助手

MACアドレスですか?

スーパーインター博士

そうだ。IPアドレスはクラスD、マルチキャストアドレスを使う。
もちろん、これに対応するMACアドレスがないとイーサ上では送れない。さてどうする?

ハイパーネット助手

どうするって言われても……、ARP?

スーパーインター博士

ARPではダメだな。ARPを使ってマルチキャストグループのホストのMACアドレスを取得し、それを使うということは、結局、宛先MACアドレスが別のフレームをホスト分作成することになるからな。

ハイパーネット助手

う〜〜〜ん。

スーパーインター博士

ブロードキャストの場合はどうする?

ハイパーネット助手

ブロードキャストの場合は、ffff.ffff.ffff.ffffの固定値ですよ。

スーパーインター博士

そうだ、それと同じようにマルチキャストグループに対応したMACアドレスを宛先として使用する。
マルチキャストグループのホストは、対応したMACアドレス宛のフレームを受け取る形になる。

ハイパーネット助手

グループに対応したMACアドレス……。

スーパーインター博士

うむ。先頭が0100.5eで始まるアドレスだ。
IPマルチキャストアドレスと対応をこのようにつける。

[FigureSW21-05:マルチキャストMACアドレス]

ハイパーネット助手

は〜、固定値の0100.5eの後ろに、0とIPアドレスの後半23ビットをつけるんですか〜。

スーパーインター博士

そうなる。

ハイパーネット助手

ん。んん〜、っと。でも、博士? クラスDだから最初の4ビット(1110)はともかくとして、上に残った部分はどうなるんです?

使われていない5ビット

[FigureSW21-06:使われていない5ビット]

ハイパーネット助手

この5ビットの部分って、使われていないから、もし0000 0じゃなくて、0000 1でも同じ値になってしまいません?

同じMACアドレス

[FigureSW21-07:同じMACアドレス]

ハイパーネット助手

ほら、同じ0100.5e64.0a01ですよ?

スーパーインター博士

む、むむむむ。すごい、すごいぞネット君!!

ハイパーネット助手

へ?

スーパーインター博士

あのネット君がっ!! あのネット君が、これほどの理解力を示すとはっ!!
天上のネットワークの神もご照覧あれっ!! ネット君が……、なんて奇跡だっ!!

ハイパーネット助手

なんか、とても褒められているとは思えないんですけど?

スーパーインター博士

うむ、褒めてない

ハイパーネット助手

ですよね。はぁ。

スーパーインター博士

ともかく、ネット君の言う通りだ。マルチキャストの場合、IPアドレスとMACアドレスはユニークな対応にはならない
0100.5e64.0a01は、[224〜239].[100 or 228].10.1の32個のアドレスとの対応になる。

ハイパーネット助手

それっていいんですか?
っていうか、なんでこんな作りなんですかね?

スーパーインター博士

さて?

ハイパーネット助手

あれ?

スーパーインター博士

それは私に聞かれてもな。0100.5eという特別なベンダコードがあって、その中から半分(先頭が0)をマルチキャスト用に割り当てたってことなんじゃないかな? で、残った23ビットとIPアドレスをくっつけた、と。

ハイパーネット助手

そうなんですか?

スーパーインター博士

いや、どうだろう? ともかく、同じMACアドレスでも、マルチキャストIPアドレスや、UDPポートが異なるから、識別は可能、ということになるわけだ。

ハイパーネット助手

まぁ、そうですけれど。

スーパーインター博士

さて、今回はこれぐらいにしておこう。
しばらくはマルチキャストの話をするぞ。

ハイパーネット助手

はい。

スーパーインター博士

というわけで、また次回。

ハイパーネット助手

いぇっさ〜。
30分間ネットワーキングでした〜♪

ユニ
[UniCast]
マルチ
[MultiCast]
ブロード
[BroadCast]
ハイパーネット助手ハイパーネット君の今日のポイント
  • 複数の宛先に同一のパケットを送る場合マルチキャストを使用する。
    • ユニキャストでは帯域への負荷が高い。
    • ブロードキャストでは非参加ホストへの処理の負荷が生じる。
  • マルチキャストを受け取るホストはマルチキャストグループに参加する。
    • そのグループに対応したIPマルチキャストアドレスが宛先となる。
    • IPアドレスはクラスDを使用する。
    • MACアドレスはIPマルチキャストアドレスから生成する。
      • 0100.5eと次の0が固定値で残り23ビットはIPアドレスの後ろから23ビットをつける。
      • IPアドレスとMACアドレスの対比は32:1である。

30 Minutes NetWorking No.SW21

管理人:aji-ssz(at)selene.is.dream.jp