ブロードキャストとマルチキャスト PDF Print

最近、照明制御で利用されることが増えたアートネットというプロトコルはブロードキャストと呼ばれる方式のプロトコルです。ブロードキャストというプロトコルは、ネットワークに接続されたすべての機器にパケットを送り届けます。受信した機器はそれらをすべて読み取ります。つまり必要のないデータであってもそれを処理する必要があるのです。照明のネットワークの場合、この信号を常時、出力し続けており、この状態は通常のネットワークの世界では、かなり特殊な環境と言えるのではないかと思います。

しかしながら、これがそのままブロードキャスト型のプロトコルはダメという短絡的な話ではありません。ブロードキャストという方式の特徴を理解し、正しい知識を得ることが重要で、それを理解すれば、問題が起きても対処することができます。ここでは、この特殊なプロトコルであるブロードキャストという仕組みと、それを補うユニキャスト、そしてマルチキャストプロトコルの概念について解説します。

 

通常のネットワークの状態

 

一般にコンピューターの通信においては、それぞれのコンピュータが目的に合ったプロトコルを出力し、通信を行っています。それは例えばメールやFTPによるデータ転送、HTTPによるWebページの表示などです。

この環境においては、個々のコンピューターは、通信先をすでに知っており、目的の箇所にメッセージを送ることで通信が確立しています。しかし、この通信でも、一番最初に行う通信においては、個々のコンピューターもスイッチも接続先を知りませんから、最初の1回だけはブロードキャスト通信を行い、自分のIPなどの情報を知らせる必要があります。これが一般のネットワークで起こりうるブロードキャスト通信です。

その後、それぞれのIPやMACアドレスなどの情報は、ルーターやネットワークスイッチなどが記憶しているため、ブロードキャスト通信は起こりません。つまり通常のコンピューターネットワークにおいてブロードキャスト通信が継続することはなく、またデータを送信する元は1カ所ではなく、1対1の通信がネットワーク上に多数存在するような通信環境であるということです。

 

照明のデータ伝送

照明や音響のブロードキャストプロトコルを使った通信環境では、常時、ブロードキャストパケットが送信され続けています。そして照明の場合、他の装置はこのパケットを受信するのみという1対多の通信環境と言えます。

また、もともとDMX512というプロトコルは1秒間に20〜40程度、繰り返しデータを送る仕組みとなっており、且つ接続される機器すべてにデータを送ります。その意味では照明のプロトコルはもともとブロードキャスト型と言えるでしょう。このことを鑑みるとDMXデータを届けるのにブロードキャスト方式は、必然で、非常にシンプルが故にわかりやすいとも言えます。

 

ブロードキャストパケットが届く仕組み

TCP/IPというプロトコルの仕組みは、データパケットの先頭に宛先IPというヘッダー情報を付加してデータを送信しますが、この宛先にブロードキャストアドレスを指定しているのがブロードキャストプロトコルの特徴で、ネットワークIDが2のアートネットの場合、2.255.255.255がブロードキャストアドレスとなります。

そしてこのIPが与えられると自動的にイーサネットレベルのMACアドレスもすべてFFというブロードキャストアドレスが指定されます。これにより、この宛先を指定されたパケットはスイッチングハブに届くと、MACアドレスの宛先を参照して、すべてのポートにフラッディングされます。(全ポートに転送)その結果、ネットワークに接続されたすべての機器にこのパケットが届くことになります。

 

ブロードキャストはCPUリソースを消費する

イーサネットの仕組みでは、MACアドレスがすべてFFであれば、イーサネットスイッチはそれを全ポートに転送するため、先のようにすべての機器にトラフィックが届くわけですが、ここまではネットワークスイッチやネットワークカードのレベルで処理される話で、コンピューターのCPUリソースは消費されていません。

しかしIPアドレスに、ブロードキャストアドレスが指定されているため、このパケットはネットワークカードのレベルからOSやソフトウェアのレベルに渡され、このデータは処理されます。結果的にここでCPUリソースが消費され、ブロードキャストという送信方法では必要ないパケットの処理にCPUが消費されるという点で、負荷のかかる方式だといわれます。また、それと同時にネットワーク上を常にブロードキャストトラフィックが占有している状態となる照明や音響のネットワークは、一般のネットワークから見ると異常とも言える状態に映るでしょう。

ブロードキャストデータが占有しているとは言え、100Mb/sの帯域において、10〜20程度のユニバースデータでは大きなトラフィックになりえません。ブロードキャストの大きな問題点は、受信する機器のCPUリソースを消費するこの1点にあるとも言えます。

 

ユニキャスト通信

ブロードキャストパケットをすべて処理することで、CPUリソースが消費され、データ量が増えると装置の処理が間に合わなくなるという現象が、安価なDMXノードなどを利用している時にDMXの遅れなどとして見る事ができます。

これは、使用するユニバース数を増やす事で、届くデータ量が増えた結果、それを処理しきれないノードで、DMXの出力が遅れたり途切れたりする現象です。これがブロードキャストデータの問題点で、ノード側に大きなCPUパワーを要求します。Artnet2というプロトコルでは、これを回避する手段として、ユニキャスト通信をサポートしており、特定のDMXユニバースを特定のIPにだけ届くように指定することができます。

ユニキャスト通信では、送信相手のIPを指定して送るため、そのIPの装置以外にそのパケットは届きません。しかしこれはデータを送る側、つまりコンソールにこの機能がなければ実現できません。例えばDMXユニバースごとにIPを指定するといったことです。次の図のようにLuminex社のノードには、インプットしたDMXをそれぞれ指定したIPだけに送るユニキャストモードがあります。

ユニキャストの問題点は、それぞれのユニバースごとに特定の装置にしかデータを送れないため、装置が増えるとそれだけ多くのパケットが同時に流れるようになり、受信する機器に負荷はかけなくても、ネットワークトラフィックに負荷がかかることになります。また、送信する装置側もつながる装置が増える分のパケットを送出することになり、それだけ負担がかかります。

しかしながら、現在主流の100Mb/sのイーサネットでは、400ユニバースのDMXを伝送できる能力があることを考えると、やはり10〜20程度のユニバースでは、大きな影響はなく、このネットワークトラフィックの負荷について、すぐに問題であるとか、ユニキャストが悪という答えにはならないと思います。先のブロードキャストとユニキャストを併用することで、負荷を分散させることはよい解決策になると思います。

 

 

ローカルブロードキャスト

 

ブロードキャストパケットはネットワークスイッチでフラッディングされるため、すべての装置に届くといっても、ネットワークIDが異なれば、それは処理されません。よってネットワークにつながるすべての機器にこのパケットが届くけれど、先の例のように2.255.255.255というIPの場合では2のネットワークIDを設定した装置では処理されても、192.168.11.1のような異なるIPの装置には負荷をかけないということです。このような同じネットワーク内で利用されるブロードキャストアドレスをローカルブロードキャストと言います。

通常、同じ物理ネットワーク内でネットワークIDが異なる設定になることはありませんが(通信できないため)これはローカルブロードキャストアドレス宛のパケットが異なるネットワークには届かないことを意味しています。(ルーターでも、ローカルブロードキャストアドレス宛のパケットは転送されません)

これに対し、異なるネットワークIDにねらってブロードキャストを行う場合、ダイレクトブロードキャストといい、192.168.11.1/24のようなネットワークの場合、192.168.11.255になります。

そして制限ブロードキャストと言われるIPが255.255.255.255というIPで、これに転送するということは、物理的につながったネットワーク装置すべてにブロードキャストが行われ、ネットワークiDの差異に関係なくすべての装置にパケットが届き、処理されます。しかしこのブロードキャストはルーターを越えることはできないため、あくまで物理的に接続された装置のみにパケットを届けます。照明コンソールによってはこちらのブロードキャストを利用する製品もあります。

 

 

マルチキャストプロトコル

 

ブロードキャストプロトコルの問題点は、これを受信する装置に対して大きな負荷がかかることです。そしてユニキャスト通信では、数が増えるとネットワークそのものに負荷をかけます。そしてこれを解消する仕組みが、マルチキャストという方式です。

マルチキャストプロトコルの場合、あらかじめ決められたマルチキャストアドレスを宛先に指定するため、その宛先に指定されたパケットは、同様にマルチキャストIPに対応したマルチキャストMACアドレスをヘッダー情報に付加して送信されます。このパケットを受信したスイッチングハブは、ブロードキャストパケット同様に全ポートに転送します。(この点では、マルチキャストもブロードキャストも大きな違いはありません)

結果的に、このマルチキャストアドレス宛のデータは全ノードに到達しますが、マルチキャスト用のMACアドレス情報のあるパケットが届いたときに受信した装置は自分宛のデータかどうかをアプリケーションで設定しておくことで、判別できるため、余計なデータは破棄して自分宛だけのデータを処理するために、CPU負荷をかけずにデータを処理することができます。

 

マルチキャストアドレス

一般的なアプリケーションやインターネット上で利用できるマルチキャストのグループは、グローバルスコープマルチキャストと呼ばれ、次の範囲のアドレスになります。

  • 224.1.0.0~238.255.255.255

このアドレスはインターネット上で利用で きるアプリケーションなどさまざまな用途のために定義されています。そしてローカルネットワーク内で利用可能なアドレスがプライベートスコープです。

 

  • 239.0.0.0~239.255.255.255

プライベートスコープは、組織内のネットワーク(プライベートネットワーク) での利用を想定しているマルチキャストグループアドレスです。sACNが利用するアドレスもこの範囲のもので、239.255.x.xの範囲が利用されます。

x.xは2つの数字の組み合わせでDMXユニバースを指定します。256×256で65536系統のユニバースが指定できますが、実際には64000〜65535の範囲はリザーブとなっており、現在定義されているユニバースは、1〜63999ユニバースまでになります。

マルチキャストアドレスを指定してデータを送るということは、つまりユニバースナンバーを指定して送る事でもあり、このユニバースナンバーを出力すると設定したノードなどでは、そのデータ以外を無視することができます。これにより、無駄にCPUリソースを消費せずにノードが機能することができます。

下図(LuminexノードのsACN出力設定)

 

マルチキャストの伝送方式は合理的な方法ではありますが、L2レベルでは、ブロードキャストプロトコル同様にすべてのパケットが全ポートにフラッディングされており、ネットワークスイッチにかかる負担は同様と見る事ができます。この点では、スイッチングハブは耐久性の高いものを用意する必要がありますが、本来のスイッチングハブの機能のように、目的のノードに対して正しいパケットだけを送るよう、スイッチングさせたい場合には、IGMPスヌーピングという機能をもったネットワークスイッチを利用することになります。

IGMPスヌーピングは、IPレベルではなくL2、つまりMACアドレスによるスイッチング処理であり、これはL3やルーターなどの役目ではなく、マルチキャストMACアドレスのテーブルを持つことができるL2スイッチの機能です。

しかしIGMPスヌーピングをしなければネットワークに大きな問題が起こるかのような想像は、間違いだと思います。何度も言うように現在のDMXユニバースの転送(100ユニバース以下)レベルであれば、耐久性の高いノンブロックのネットワークスイッチであれば十分に対応できますし、どうしてもIGMPスヌーピングが必須というわけではありません。