Windows TIPS
[Network]
ブロードキャスト・アドレスの種類
デジタルアドバンテージ 打越 浩幸
2007/01/06
対象OS
Windows NT
Windows 2000
Windows XP
Windows Server 2003
■
ブロードキャストとは、複数のコンピュータに対して一斉に送信する動作のことである。このとき利用されるブロードキャスト・アドレスには2種類ある。
■
リミテッド・ブロードキャストは、すべてのbitが1のアドレス(255.255.255.255)であり、ローカル・セグメント上のすべてのコンピュータを対象とする通信となる。
■
ディレクティッド・ブロードキャストは、ネットワーク・アドレス部はそのままで、ホスト・アドレス部がすべて1のアドレスであり、指定されたネットワーク・アドレスを持つすべてのコンピュータを対象とする通信となる。ルータを介した先にあるネットワークへもブロードキャストできる。
ブロードキャストは同報通信とも訳され、ネットワーク上の複数のコンピュータに対して、一斉にデータを送信するために利用される(通常は受信確認は行わず、一方的に送信するだけである)。例えば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などのアドレスが該当する。現在では互換性のためにのみ存在し、使われることはない。
リミテッド・ブロードキャストとディレクティッド・ブロードキャストの違い
リミテッド・ブロードキャストとディレクティッド・ブロードキャストは似ているが、複数のネットワーク・アドレスやネットワーク・セグメントを利用していると、その差がはっきりする。
タイプ
あて先
意味
リミテッド・ブロードキャスト
同一セグメント
同じローカルのネットワーク・セグメントに接続されているすべてのコンピュータに対するブロードキャスト。ネットワーク・アドレスには関係なく、現在のホストが接続されている(イーサネットなどの)ネットワーク・セグメント上のすべてのホストを対象とする。ルータを介したほかのネットワークへは伝播しない。1つのネットワーク・セグメント上に複数のネットワーク・アドレスが存在している場合は、それらすべてが対象となる
ディレクティッド・ブロードキャスト
指定されたネットワーク
指定されたネットワーク上のすべてのホストへのブロードキャスト。指定されたネットワークがローカルのネットワークではなく、ルータを介してつながっている先ならば、そこのネットワークまでルータによってパケットが運ばれてから、さらにルータによってそこでブロードキャストされる。ローカルではブロードキャストされない
2種類のブロードキャスト・タイプの違い
つまり、リミテッド・ブロードキャストは、ローカルのセグメントのみがブロードキャストの対象、ディレクティッド・ブロードキャストは(そのネットワークがどこにあろうとも)指定されたネットワークのみがブロードキャストの対象ということである。
余談であるが、例えばpingコマンドを無理矢理実行すると、次のような違いが出る(このようなpingの使い方は本来は正しくない)。
C:\>ping 255.255.255.255 …
Ping request could not find host 255.255.255.255. Please check the name and try again.
C:\>ping 192.168.1.255 …
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
はリミテッド・ブロードキャスト・アドレスへのpingであるが、実はpingではこのようなアドレスへの送信は禁止されているので、(送信前に)エラーとなっている。
はディレクティッド・ブロードキャスト・アドレスへのpingであるが、どこかのコンピュータ(この例では192.168.1.168)から応答が戻ってきているように表示されている。実はこれ以外にも多数のコンピュータから応答が戻ってきているのだが(arpコマンドやネットワーク・モニタなどで確認できる)、このようなpingとそれに対する応答の挙動は定義されていないので、結果は不定である。この方法では、ローカルのネットワークでなく、ルータで接続された別のネットワークへpingすることができる。
この記事と関連性の高い別のWindows TIPS
generated by
TechTargetジャパン
Windows Server Insider フォーラム 新着記事
キャリアアップ