こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

LAN内での通信について教えてください

LAN内での通信について教えてください。


家庭用の市販のルーターがあり、ルーターの3つのLANポートには、1つのLANポートにつき1台のパソコンという形で
パソコンが3台(パソコンA,パソコンB,パソコンC) 接続されているとします。

(パソコンA,パソコンB,パソコンCはルーターを介して接続されています)


ルーターはDHCPサーバーとして働き、パソコンにはプライベートIPアドレスが割り振られているとします。


パソコンA 192.168.0.2
パソコンB 192.168.0.3
パソコンC 192.168.0.4

ルーター 192.168.0.1


また、パソコンAは[パソコンB、パソコンC]の[IPアドレスとMACアドレス]を知っているとします。




ここでパソコンAのアプリケーションからパソコンBへ通信を行おうとした場合、


アプリケーションは[IPパケットにパソコンBのIPアドレスである192.168.0.3、MACフレームにパソコンBのMACアドレスを含んだ]データグラムを

パソコンBとパソコンCの両方に届ける。


そして

パソコンBは届いたデータグラムのMACフレームにパソコンBのMACアドレスが含まれていることから、自身が担当すべきとしてパソコンAに応答を返す。
ただ、パソコンBはIPパケット内の192.168.0.3の部分については全くチェックしない。

パソコンCは届いたデータグラムのMACフレームにパソコンBのMACアドレスが含まれていることから、自身が担当すべきでないと判断し、パソコンAには応答を返さない。
また、パソコンCはIPパケット内の192.168.0.3の部分については全くチェックしない。


間に存在するルーターは何もしない。



このようになるのでしょうか?

投稿日時 - 2014-05-17 17:49:37

QNo.8599154

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

少々想定が曖昧な感じです。

>アプリケーションは[IPパケットにパソコンBのIPアドレスである192.168.0.3、MACフレームにパソコンBのMACアドレスを含んだ]データグラムを

一般的にはアプリケーションはIPに必要なデータをプロトコルスタックに投げるだけなのでMACフレームは意識しません。
ただ、OSやドライバもアプリケーションという括りに含めるのならばそうとも言えないこともありませんが。

>パソコンBとパソコンCの両方に届ける。

届けるのはアプリケーションではなく、届くかどうかは物理的な接続などに依存します。
アプリケーションはただデータを投げるだけです。

また、質問者さんの想定環境ではルータのL2スイッチ(スイッチングHUB)部分を経由します。
他の方も書かれていますがL2スイッチ部分のMACアドレスの学習状況によってパソコンCに届くか届かないかは変化します。

>パソコンBは届いたデータグラムのMACフレームにパソコンBのMACアドレスが含まれていることから、自身が担当すべきとしてパソコンAに応答を返す。

MACアドレスのチェックの部分までは正しいです。
なお、これは一般的にはNIC側の処理です。

応答にに関しては、データグラムと言っているので一般的にはコネクションレス通信ということになります。
アプリケーション側がデータを解析して必要ならばアプリケーションが応答を返しますがそうで無い場合は基本的に応答は返らないと思われます。

>ただ、パソコンBはIPパケット内の192.168.0.3の部分については全くチェックしない。

パソコンBのどの部分について想定されているのでしょうか?
NIC側では確かにIPパケットについてはチェックしませんが、
プロトコルスタックではIPアドレス部分もチェックされるはずです。

>間に存在するルーターは何もしない。

ルータが間に存在すると考えていると混乱すると思います。

コンシューマ向けの複数のLANポートがあるルータは一般的に、
純然たるルータとスイッチングHUBの2つのハードウェアがくっついたものです。
2つのハードウェアが1つの箱に入っていて中でケーブルがつながっていると考えて良いです。

複数のLANポートがあるルータの1つのポートにスイッチングHUBをつないで、その下にPCをつないだ状態ともネットワーク的にはほぼ同じです。

従って、PC同士はスイッチングHUBでつながっているだけなので、ルータは間に存在するのではなく上に存在するというイメージのほうが良いと思います。

投稿日時 - 2014-05-19 09:39:57

ANo.2

ルーター内蔵のハブがスイッチングハブなどであれば、それぞれのポートにつながっているMACアドレスを学習していて必要なポートにのみ送信したりしますからパソコンCはパソコンBに送信されたパケット自体受け取らないという事もあります。

投稿日時 - 2014-05-17 18:23:16

ANo.1

>ただ、パソコンBはIPパケット内の192.168.0.3の部分については全くチェックしない。
自身のMACアドレス宛と認識すればIPスタックに渡し、IPアドレスのチェックをします。

投稿日時 - 2014-05-17 18:11:21

あなたにオススメの質問