質問: なぜpingが通るのか分からない。 なぜpingが通るのか分からない。 私は今ubuntuを使っているのですが、同じローカルネットワークにいるホストになぜpingがとおるのかわかりません。 現在のネットワークの構成をいうと、pcが二台あり(以降ホストa、ホストbとしipはそれぞれ192.168.1.2 192.168.1.3です)それはルータ(ipは192.168.1.1です)によってつながれています。 またホストaのルーティングテーブルを見ると、 受信先サイト ゲートウェイ ネットマスク インターフェース 192.168.1.0 * 255.255.255.0 eth0 となっています。 この状態で「ping 192.168.1.3」とうつとpingが帰ってきます。 なぜ私がこれを疑問におもうかというと、 192.168.1.? 宛のpingは*にいくと書いてあります。また*は「-n」オプションでみると「0.0.0.0」であり、このipはlinuxではループバックipアドレスだと考えています。 なので192.168.1.3宛のipは*、つまり自分に帰ってきてしまい、通信ができないのではないかと考えました。 なぜ通信がこの状態でできるのですか?お返事をおまちしております。
回答: 同一ネットワーク内ですか。ethernetの場合通信パケットが自分宛かどうかはパケットを取り込まないとわかりません。 つまり、ネットワーク上を流れるパケットすべてを取り込んで、自分宛のパケットなら、そのパケットを処理するアプリケーションに通知するのです。 macアドレスがわかっても相手先macアドレスをパケット上に記載するだけです。 パケット上の宛先macが自分の物かどうかがは、結局パケットを取り込んでみないとわからないですから。