52013


ネットワークの基礎を現在学習しており、不明点がありました為、質問させて頂きます。

一対複数時の通信の時の挙動なのですが、  
どの層の時点で、PCの数の把握、必用なデータの数のコピー（一対一の通信ならデータは一つで十分なはずだが、複数との通信では複数いるのだろうと現在理解しています。）を行っているのかが理解できていません。

例として、（自分の考えている）ローカルブロードキャストの時の動きとしましては、

送信側  
ネットワーク層でローカルブロードキャストのブロードアドレスをIPホストアドレスに指定  
↓  
ネットワーク層にてARPをかける（ローカル領域の接続PCの数の確認）  
↓  
応答（ARP?）が返ってくる。  
↓  
ネットワーク層まで応答（ARP？）が上がってくる  
↓  
データリンク層、物理層を通って、ローカル領域の接続PCの数の分のデータを送信

が一連の流れになると思うのですが、  
この時、PCの数分のデータのコピー（用意）はどこで行っているのでしょうか？  
また、応答（ARP？）を送信側が受け取った後、「ネットワーク層までしか、連絡は来ない」という認識は正しいでしょうか？  
どなたか回答をお持ちの方がいらしたら、是非ともご教示頂きたいです。


CC BY-SA 4.0
2019-01-11T10:51:39.600
51892
2019-01-22T08:30:47.840
31383
question
network tcp
TCP/IP通信によるブロードキャストの挙動


ブロードキャストIPアドレス宛のパケットは、LAN(Ethernet)であればブロードキャストMACアドレス宛に送信されます。MACアドレス解決の必要はないのでARPのやりとりは行われません。

wiresharkなどパケットキャプチャソフトを使って実際の通信を観察してみるとよいでしょう。


CC BY-SA 4.0
2019-01-11T12:49:01.867
51897
2019-01-11T12:49:01.867
5793
51892
answer


> 一対一の通信ならデータは一つで十分なはずだが、複数との通信では複数いるのだろうと現在理解しています。

おそらくこの認識が誤りの元だと思われます。  
ブロードキャスト通信では複数の端末に別々にデータを送信するわけではありません。  
ブロードアドレスなどに宛てて送信したデータを、受信可能な端末が自分宛だと解釈して受信しています。  
不特定多数向けのブロードキャストに応答（ARP）を期待するのも誤っています。

極端な例ですが、地上波でもケーブルでもテレビ局がいちいちテレビの台数分データのコピーを取っているわけではありません。  
アプリケーションレベルのデータのコピーと、物理的なレベルの拡散は混同すべきではありません。  
ネットワークの基礎の学習中ということでしたら不要な知識ですが、ケーブルや電波などのコピーしなくても拡散するイメージ程度は持っていた方がいいかもしれません。

＊追記  
ブロードキャストは受信側が自分宛だと解釈して受信と前述しましたが、自分宛でない通信もネットワーク上には流れてきています。  
その中で自分宛のものを拾う際にブロードキャストアドレス（一例）も含めて受信しているという意味です。  
ブロードキャストだけが特別にネットワーク全体に伝番しているかのようなイメージを与えてしまっていたら訂正します。

＊再追記

> @Yamaguchi Kohei  
>
> 送信データは送信先アドレスがローカルでない以上全てWANに出ており、各受信先ルーターが自分のネットワークアドレスでない場合は破棄しているという解釈であっていますか？

こちらについてですが、ブロードキャストは基本的に同一のデータリンク層かネットワーク層で行われています。  
このうちデータリンク層レベルであれば送信先のアドレスに関わらずネットワーク全体に伝番しています。こちらの意で追記しました。  
ネットワーク層レベルのブロードキャストであればルータによってブロードキャストが行われるので自然に伝播しているとは言い難いです。しかし、ネットワーク層を介した先のデータリンク層内で伝番するので、質問のような複数端末向けにデータのコピー（アプリケーションレベル）をするわけではありません。  
”送信先アドレスがローカルでない”や”全てWANに出ており”という解釈については、質問のローカルブロードキャストの前提とは異なりますし、ブロードキャストを使用したからといって広域に広がってセキュリティ上問題があるようなことにはなりません。（ネットワーク層レベルでは、ブロードキャストであってもネットワークアドレスを指定するため）  
ブロードキャストのデータのコピーの不必要性の説明のためにデータの拡散性について述べましたが、それはローカルのネットワークに限っての話です。  
ブロードキャスト通信はデータリンク層レベルであればローカルのネットワーク接続機器のみが、  
ネットワーク層レベルであれば指定されたネットワークアドレスのみが対象で限られた範囲の話です。  
テレビ局の例はブロードキャストの例としては不適切ですので忘れてください。

> 各受信先ルーターが自分のネットワークアドレスでない場合は破棄しているという解釈であっていますか？  
>  ルータがという部分をローカルの接続機器に読み替えれば後半の解釈は概ね正しいです。


CC BY-SA 4.0
2019-01-16T05:48:10.687
52009
2019-01-22T08:30:47.840
2019-01-22T08:30:47.840
31800
31800
51892
answer


@suzukisさん@bluevioletさんの補足で、質問記述に対する内容を書くと以下になるでしょう。

> どの層の時点で、PCの数の把握、必用なデータの数のコピーを行っているのかが理解できていません。

**答：これらは送信側ホストの中では行っていません。**

> 例として、（自分の考えている）ローカルブロードキャストの時の動きとしましては、
>
> 送信側  
>  ネットワーク層でローカルブロードキャストのブロードアドレスをIPホストアドレスに指定  
>  ↓  
>  ネットワーク層にてARPをかける（ローカル領域の接続PCの数の確認）  
>  ↓  
>  応答（ARP?）が返ってくる。  
>  ↓  
>  ネットワーク層まで応答（ARP？）が上がってくる  
>  ↓  
>  データリンク層、物理層を通って、ローカル領域の接続PCの数の分のデータを送信
>
> が一連の流れになると思うのですが、

**答：ARPは行われません。  
また送信側ホスト内での接続PC数把握やデータのコピーもありません。**

[code]

    送信側
    ネットワーク層でローカルブロードキャストのブロードアドレスを宛先IPホストアドレスに指定
    ↓
    宛先MACアドレスは全てのbitが1のブロードキャストMACアドレスが設定されます。
    ↓
    データリンク層、物理層を通って、ネットワークにデータを送信
    
[/code]

ブロードキャストだからといって特別なコピーが行われるわけではなく、通常の通信と同様に  
ハブ等のネットワーク機器が中継してネットワーク内の各ホストに送信します。

**質問者さんの考える、「必要なデータの数のコピー」はそれら機器で行われているとも言えます。**  
ただし、「必要」かどうかとか「台数」は低機能なハブ等では考慮されません。  
ポートの先に何かの装置が接続されて通信できているかどうかくらいですか。

インテリジェントハブとか高機能な機器は、設定情報などにより中継する/しないを制御します。

そしてブロードキャストを受信した側で、自分が処理すべき通信か(対応するサービスやプロセスが動作しているか)どうかを判断することになります。

候補がいっぱいあるのですが、この辺の記事あたりが参考になるでしょう。

[ブロードキャストアドレス・マルチキャストアドレス](http://www.n-study.com/network/broadcast.htm)

[◆ブロードキャストアドレスの用途](http://atnetwork.info/ccent/ip21.html)


CC BY-SA 4.0
2019-01-16T08:06:32.407
52013
2019-01-16T08:13:43.897
2019-01-16T08:13:43.897
26370
26370
51892
answer