Broadband Watch logo
バックナンバー

■ その116「DLNAの仕組み」
[2007/03/26]
■ その115「ドメインとActive Directory」
[2007/03/19]
■ その114「ワークグループができること」
[2007/03/12]
■ その113「WPSの仕組み」
[2007/03/05]
■ その112「Gopherの生い立ちと現在」
[2007/02/26]
■ その111「Wikiの使われ方」
[2007/02/19]
■ その110「文字コードとは」
[2007/02/05]
■ その109「IISの生い立ち」
[2007/01/29]
■ その108「NASの登場と一般への普及」
[2007/01/22]
■ その107「HomePNAのいろいろ」
[2007/01/15]
■ その106「Ogg Vorbisの成り立ち」
[2006/12/25]
■ その105「MIDIの原理とSMFの構造」
[2006/12/18]
■ その104「AIFFの構造」
[2006/12/11]
■ その103「WAVの構造と現状」
[2006/12/04]
■ その102「WMAの歴史」
[2006/11/27]
■ その101「AACの特徴」
[2006/11/20]
■ その100「MP3/MPEG Audioの仕組み」
[2006/11/13]
■ その99「HSDPAの仕組み」
[2006/11/06]
■ その98「H.264・MPEG-4 AVCの特徴」
[2006/10/30]
■ その97「IEEE 802.16e(モバイルWiMAX)の特徴」
[2006/10/23]
■ その96「TIFFの特徴」
[2006/10/16]
■ その95「PNGの現状と今後」
[2006/10/02]
■ その94「GIFの構造」
[2006/09/25]
■ その93「10GBASEの種類(2)」
[2006/09/11]
■ その92「10GBASEの種類」
[2006/09/04]
■ その91「GbEのいろいろ」
[2006/08/28]
■ その90「JPEGの特徴」
[2006/08/21]
■ その89「DivXの広がり」
[2006/08/07]
■ その88「MPEGの仕組み」
[2006/07/31]
■ その87「WMVのこれまで」
[2006/07/24]
■ その86「AVIの生い立ちとそのコーデック」
[2006/07/10]
■ その85「QuickTimeの変遷」
[2006/07/03]
■ その84「Realのこれまでと今後」
[2006/06/26]
■ その83「ShareとWinny」
[2006/06/19]
■ その82「DOCSISの仕組み」
[2006/06/12]
■ その81「SQLインジェクションの流れ」
[2006/06/05]
■ その80「RSSの動作」
[2006/05/29]
■ その79「Skypeの仕組み」
[2006/05/22]
■ その78「BitTorrentの特徴と今後」
[2006/05/15]
■ その77「Winnyの仕組みと現状」
[2006/05/08]
■ その76「WinMXの特徴」
[2006/04/24]
■ その75「Gnutellaの歴史と構造」
[2006/04/17]
■ その74「Napsterの歴史」
[2006/04/10]
■ その73「P2Pのいろいろ」
[2006/04/03]
■ その72「IEEE 802.11nの動向」
[2006/03/27]
■ その71「ActiveX Scriptingの動作」
[2006/03/20]
■ その70「Ajaxの仕組み」
[2006/03/13]
■ その69「DHTMLの動作」
[2006/03/06]
■ その68「Scriptの定義」
[2006/02/27]
■ その67「JavaScriptの仕組み」
[2006/02/20]
■ その66「Javaの動作」
[2006/02/13]
■ その65「RFCのプロセス」
[2006/02/06]
■ その64「ActiveX DocumentとActiveX Controlの違いと共通点」
[2006/01/30]
■ その63「ActiveX Controlの機能」
[2006/01/23]
■ その62「ActiveXを構成するもの」
[2006/01/16]
■ その61「Cookieの仕組みと用途」
[2005/12/26]
■ その60「malwareとその分類」
[2005/12/19]
■ その59「rootkitの動作」
[2005/12/12]
■ その58「CSSの役割」
[2005/12/05]
■ その57「HTMLの変遷」
[2005/11/28]
■ その56「PONとその種類」
[2005/11/21]
■ その55「FWAの仕組み」
[2005/11/14]
■ その54「DoSとDDoS」
[2005/11/07]
■ その53「SNMPとMIBの動作」
[2005/10/03]
■ その52「Jumbo Frameとフレームサイズ」
[2005/09/12]
■ その51「WPA2の仕組み」
[2005/09/05]
■ その50「WPAとWPA-PSKの違い」
[2005/08/29]
■ その49「WPAの仕組み」
[2005/08/22]
■ その48「WebDAVの動作」
[2005/08/08]
■ その47「OFDMAの仕組みとOFDMとの違い」
[2005/08/01]
■ その46「OFDMの仕組み」
[2005/07/25]
■ その45「WiMAXの特徴」
[2005/07/11]
■ その44「Wi-Fiの役割」
[2005/07/04]
■ その43「FTPの目的と動作」
[2005/06/27]
■ その42「UPnPの動作」
[2005/06/20]
■ その41「ネットマスクの仕組み」
[2005/06/13]
■ その40「ARPの機能」
[2005/06/06]
■ その39「DNSの原理」
[2005/05/30]
■ その38「デフォルトゲートウェイの役割」
[2005/05/23]
■ その37「MACアドレスの仕組み」
[2005/05/16]
■ その36「スイッチとその進化」
[2005/05/09]
■ その35「ルータによるメリット」
[2005/04/25]
■ その34「ブリッジの原理」
[2005/04/18]
■ その33「リピータの機能」
[2005/04/11]
■ その32「IPアドレスのクラス」
[2005/04/04]
■ その31「ブロードキャスト/マルチキャスト/ユニキャスト」
[2005/03/28]
■ その30「SMTP AUTHと認証の種類」
[2005/03/14]
■ その29「Submissionポートとスパムメール対策」
[2005/03/07]
■ その28「Outbound Port25 Blockingとは」
[2005/02/28]
■ その27「PGPの仕組み」
[2005/02/21]
■ その26「PKIと認証局」
[2005/02/14]
■ その25「公開鍵暗号方式とは」
[2005/02/07]
■ その24「共通鍵暗号とは」
[2005/01/31]
■ その23「SSHの仕組みと応用」
[2005/01/24]
■ その22「SSLの役割」
[2005/01/17]
■ その21「POP3とIMAP4の違い」
[2004/12/27]
■ その20「POP3の役割と機能」
[2004/12/20]
■ その19「SMTPの機能と問題点」
[2004/12/13]
■ その18「SPIとパケットフィルタリング」
[2004/12/06]
■ その17「LANの概念とその広がり」
[2004/11/29]
■ その16「SIPの役割」
[2004/11/15]
■ その15「プロキシの利用」
[2004/11/08]
■ その14「VoIPの仕組み」
[2004/11/01]
■ その13「イーサネットとは」
[2004/10/25]
■ その12「IP/TCP/UDP/ICMPとは」
[2004/10/18]
■ その11「DHCPの役割」
[2004/10/04]
■ その10「MIMOとは」
[2004/09/27]
■ その9「DMZとその効果」
[2004/09/13]
■ その8「ファイアウォールとは」
[2004/09/06]
■ その7「NATとNAPTの違いとIPマスカレード」
[2004/08/30]
■ その6「VPNとVPNパススルーの仕組み」
[2004/08/23]
■ その5「無線LANの問題とWEP」
[2004/08/09]
■ その4「IEEE 802.11a/b/gって何を意味しているの?」
[2004/08/02]
■ その3「ダイナミックDNSって?」
[2004/07/26]
■ その2「グローバルIPアドレスとプライベートIPアドレス」
[2004/07/12]
■ その1「PPPoEって何だろう?」
[2004/07/05]

その31「ブロードキャスト/マルチキャスト/ユニキャスト」


■ 3種類のキャスト

 これまでのメールに関するお話から、いきなりTCP/IPの深いところに戻ってきてしまいましたが(笑)、今回はユニキャスト/マルチキャスト/ブロードキャストのお話をしたいと思います。ネットワークの話をするときに時折出てくるこの用語ですが、簡単に言えば以下のことを指しています。

・ユニキャスト:1対1の通信
・マルチキャスト:1対多の通信
・ブロードキャスト:1対不特定多数の通信


■ ユニキャスト

図1:ユニキャストの通信例
 まず、ユニキャストでの通信方式を説明しましょう。例えば、図1のような構成でノードAからノードBへメッセージを送る場合、その通信はノードBだけが受け取ることができ、ノードC~ノードZは「通信があった」ということも原則として感知しません。こうした通信方式を、ユニキャストと言います。

 通信方式としては専らTCP/IPを利用します。厳密に言えば、UDP/IPを用いてユニキャストすることも可能ですし、これを実際に使った例もあります。ただ、UDP/IPの場合は、相手にメッセージが届くという保証がなく(第12回参照)、上位層で信頼性を確保する手間をかけるくらいなら、TCP/IPを使った方が良いということで、1対1の通信にも関わらず信頼性は必要としないという稀なケースでのみUDP/IPが利用されます。

 ところで、UDP/IPは1対多の通信に使われるものだから、1対1にならないんじゃないかと思われる方もおられるでしょうが、実はその通りです。つまり、図1のようなケースでUDP/IPを使った場合には、ノードC~ノードZにもその通信が届いてしまう可能性はあります。

 ただ、その場合はノードC~ノードZでは届いたパケットを見て「これは自分宛じゃない」と判断して破棄してしまうため、結果として届かない状態に近いということです。「それでは盗聴される可能性があるのでは?」と思われるかもしれませんが、これもその通りです。一方で、「それではTCP/IPだから盗聴されないか?」といえば、そうでもない場合もあります。


 実はTCP/IPでもUDP/IPでも、IPのレベルで見れば同一なので、図2のような状態でノードA→ノードBのメッセージがノードC~Zに届くか否かは、(1)メッセージの宛先アドレス、(2)間に入っているのがスイッチングハブか、リピータハブかどうかで決まってきます。

 (1)に関してはこのあと説明するので、(2)について説明しておきましょう。リピータハブの場合、受け取ったメッセージを“すべてのポートに”送り出します。つまり電気的にすべてのポートが接続された状態なので、そこに流れているパケットがTCPなのかUDPなのかは一切関係なく、すべてのノードがすべてのパケットを受信できます。

 一方、スイッチングハブの場合、必要なパケットを必要なポートにだけ送り出す仕組みになっているので、この場合はノードC~ノードZはパケットを受信しないことになります。もっと細かく言えば、スイッチングハブの種類によってこのあたりの振る舞いも微妙に変わってくるのですが、ここでは省略します。


図2:実際の結線

■ マルチキャスト

図3:マルチキャストの通信例
 次はマルチキャストです。この方式では、主としてUDP/IPを用いて複数のノードに同時にメッセージを送ることができます。ただし、ここで複数のノードに同時に送れるといっても、「すべてのノードに」送るわけではないのが、次に説明するブロードキャストと異なる部分です。

 マルチキャストでは、宛先に通常のIPアドレスではなく、マルチキャストアドレスと呼ばれる独自のアドレスを指定します。第2回でIPアドレスの話をご紹介した際に、プライベートIPアドレスにはクラスA/B/Cがある(実はこれはプライベートのみならず、グローバルIPアドレスにも当てはまるのですが)というお話をしましたが、このマルチキャスト用のアドレスをクラスDと呼びます。ちなみにクラスDの範囲は224.0.0.0~239.255.255.255です。

 図3の場合、ノードAはクラスDの任意のアドレスに向けてメッセージを送り出します。そして、ノードBとノードCは事前にそのアドレスを知っておくことで、これが受信できる仕組みです。一方、ノードD~ノードZはアドレスを知らないので、受信ができないことになります。


■ ブロードキャスト

 最後にブロードキャストです(図4)。技術的に見れば、ブロードキャストとマルチキャストはほぼ同じ仕組みで、主にUDP/IPを使いすべてのポートにメッセージを送ります。図2でスイッチングハブを使っている場合でも、マルチキャスト/ブロードキャストのメッセージは、すべてのポートにメッセージがコピーして送り出されるので、全ノードで受け取ることができます。

 IPアドレスの観点で言えば、マルチキャストとブロードキャストの違いは、アドレスの指定の違いです。IPネットワークを構築する場合、必ずブロードキャストアドレスと言われるものが決まっています。

 例えば、自宅のLANが「192.168.1.xxx」だとすると、ブロードキャストアドレスは「192.168.1.255」になるのが一般的です。マルチキャストとは異なり、このメッセージは接続されているすべてのノードが受け取り、処理することになります。

 もっとも、その用途はというと、例えばルーティング経路情報の送受信だったり、ARP(Address Resolution Protocol:IPアドレスからMAC Addressを求めるために利用するもの。第11回でも少し出てきました)に使われたりと、もっぱらIPネットワークの維持管理に利用されるのが主で、これをユーザーのメッセージ通信に使うことはまずないようです。


図4:ブロードキャストの通信例




2005/03/28 11:03

槻ノ木 隆
 国内某メーカーのネットワーク関係「エンジニア」から「元エンジニア」に限りなく近いところに流れてきてしまった。ここ2年ほどは、企画とか教育、営業に近いことばかりやっており、まもなく肩書きは「退役エンジニア」になると思われる。(イラスト:Mikebow)
Broadband Watch ホームページ
Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.