ブロードキャストアドレスの種類を知る:Tech TIPS
ブロードキャストとは、複数のコンピュータに対して一斉に送信する動作のことである。このとき利用されるブロードキャストアドレスには、リミテッドブロードキャストとディレクティッドブロードキャストの2種類がある。これらの違いは?
対象OS:Windows NT/Windows 2000/Windows XP/Windows Server 2003
解説
ブロードキャストは同報通信とも訳され、ネットワーク上の複数のコンピュータに対して、一斉にデータを送信するために利用される(通常は受信確認は行わず、一方的に送信するだけである)。例えばWindows OSでは、システム起動時に自分自身のコンピュータ名をブロードキャストして、ほかのコンピュータに自分自身の存在を知らせるようになっているし(ほかのコンピュータと名前が衝突しないかどうかを確認するためでもある)、RIPというルーティングプロトコルでは、ネットワークのルーティング情報を通知するために利用している。
ブロードキャスト通信(以下、IPレベルでのブロードキャスト通信を取り上げる)を行うためには、送信先アドレスを「ブロードキャストアドレス」という特別なアドレスに設定してパケットを送信する。どのコンピュータが通信相手になるか分からないため、特定のIPアドレスだけを対象に送信することはできないからだ。ブロードキャストアドレスには次のようにいくつか種類があるが、本TIPSではそれらの違いについて解説する。
●リミテッドブロードキャストアドレス(オール1ブロードキャストアドレス)
これはすべてのbitが1となっているIPアドレスのことである。つまり「255.255.255.255」というIPアドレスがリミテッドブロードキャストアドレス(limited broadcast addres)となる。
このアドレスに対してデータをブロードキャスト送信すると、実際には、そのネットワークセグメント(イーサネットなら、1つのイーサネットセグメントのこと)に接続されているすべてのコンピュータに対してデータが送信される。ルータを介して接続されているほかのセグメントへは送信されない。ローカルのネットワークセグメント上のコンピュータだけが送信対象となる。
●ディレクティッドブロードキャストアドレス
これは、ネットワークアドレス部はそのままにして、ホストアドレス部だけをオール1にしたアドレスのことである。例えば「192.168.1.0/255.255.255.0」(これは192.168.1.0/24と同じ。この表記方法については関連記事参照)というネットワークアドレスがあったとすると、このホストアドレス部(下位の8bit)をすべて1にした、「192.168.1.255」というIPアドレスがディレクティッドブロードキャストアドレス(directed broadcast addres)となる。
ネットワークアドレスとホストアドレス
IPv4で使用される32bitのIPアドレスは、サブネットマスク値を使って2つに分けることができる。このうち、サブネット値が1の部分をネットワークアドレス部、0の部分をホストアドレス部という。通常は、イーサネットの1つのセグメントが1つのネットワークアドレスになるようにネットワークを設計する。各ネットワークセグメント上には異なるホストアドレスを持つコンピュータを配置する(次の記事も参照)。
例えば192.168.1.0/255.255.255.0というネットワークがあるとすると、このネットワーク上には192.168.1.1〜192.168.1.254という、最大254台のコンピュータを配置できる。
このアドレスに対してブロードキャスト送信すると、「192.168.1.0/255.255.255.0」というネットワークアドレスを持つすべてのコンピュータが通信対象となる。特定のネットワークアドレスに向けて(directして)送信するので、こう呼ばれる。一般的にはこちらのブロードキャストの方が多く使われているようである。
●オール0ブロードキャストアドレス
これは現在では使われなくなった古い形式のブロードキャストアドレスである。リミテッドブロードキャストアドレスもしくはディレクティッドブロードキャストアドレスにおいて、(2進数の)1ではなく0を使ったものであり、0.0.0.0もしくは172.16.1.0/255.255.255.0などのアドレスが該当する。現在では互換性のためにのみ存在し、使われることはない。
●リミテッドブロードキャストとディレクティッドブロードキャストの違い
リミテッドブロードキャストとディレクティッドブロードキャストは似ているが、複数のネットワークアドレスやネットワークセグメントを利用していると、その差がはっきりする。
タイプ | あて先 | 意味 |
---|---|---|
リミテッドブロードキャスト | ローカルのネットワークセグメント | ・同じローカルのネットワークセグメントに接続されているすべてのコンピュータに対するブロードキャストになる。 ・ネットワーク階層モデルで言えば、同一の物理層(第2層)媒体に接続されているすべてのコンピュータに対するブロードキャストになる。 ・ネットワークアドレスには関係なく、現在接続されている(イーサネットなどの)ネットワークセグメント上のすべてのコンピュータを対象とする。 ・ルータを介したほかのネットワークへは伝播しない。 ・ローカルネットワークセグメント上に複数のネットワークアドレスが存在している場合は、それらすべてが対象となる |
ディレクティッドブロードキャスト | 指定されたネットワークアドレス | ・指定されたネットワークアドレスを持つすべてのコンピュータに対するブロードキャストになる。 ・ネットワーク階層モデルで言えば、ネットワーク層(第3層)レベルで同じネットワークアドレスを持つコンピュータ全体に対するブロードキャストになる。 ・指定されたネットワークアドレスがローカルのネットワークセグメントではなく、ルータを介してつながっている先にあるならば、そこのネットワークセグメントまでルータによってパケットが運ばれ(ブロードキャストのルーティングが許可されている場合のみ)、さらにルータによってそこでブロードキャストされる。ローカルではブロードキャストされない。 ・ローカルネットワークセグメント上に複数のネットワークアドレスが存在している場合は、指定されたネットワークアドレスを持つコンピュータのみが対象となる。 |
2種類のブロードキャストタイプの違い |
つまり、リミテッドブロードキャストは、ローカルのネットワークセグメントのみがブロードキャストの対象、ディレクティッドブロードキャストは(そのネットワークがどこにあろうとも)指定されたネットワークアドレスのみがブロードキャストの対象ということである。
余談であるが、例えばpingコマンドを無理矢理実行すると、次のような違いが出る(このようなpingの使い方は本来は正しくない)。
C:\>ping 255.255.255.255 …(1)
Ping request could not find host 255.255.255.255. Please check the name and try again.
C:\>ping 192.168.1.255 …(2)
Pinging 192.168.1.255 with 32 bytes of data:
Reply from 192.168.1.168: bytes=32 time<1ms TTL=64
Reply from 192.168.1.168: bytes=32 time<1ms TTL=64
Reply from 192.168.1.168: bytes=32 time<1ms TTL=64
Reply from 192.168.1.168: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.0.255:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
(1)はリミテッドブロードキャストアドレスへのpingであるが、実はpingではこのようなアドレスへの送信は禁止されているので、(送信前に)エラーとなっている。
(2)はディレクティッドブロードキャストアドレスへのpingであるが、どこかのコンピュータ(この例では192.168.1.168)から応答が戻ってきているように表示されている。実はこれ以外にも多数のコンピュータから応答が戻ってきているのだが(arpコマンドやネットワークモニタなどで確認できる)、このようなpingとそれに対する応答の挙動は定義されていないので、結果は不定である。この方法では、ローカルのネットワークでなく、ルータで接続された別のネットワークへpingすることができる。
■更新履歴
【2012/03/09】同一ネットワークセグメント上に複数のネットワークアドレスが存在する場合の挙動を、より詳細に記述しました。
【2007/01/06】初版公開。
■この記事と関連性の高い別の記事
- Windowsのpingコマンドでネットワークトラブルの原因を調査する(TIPS)
- Windowsで、使用中のIPアドレスを調査する(TIPS)
- pingのタイムスタンプ・オプションで進行状況を確認する(TIPS)
- pingを繰り返し実行させる(TIPS)
- ローカル・ループバック・アドレス(127.0.0.1)とは?(TIPS)
Copyright© Digital Advantage Corp. All Rights Reserved.