バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/
はじめに
lwIP PCシミュレーション結果のうちのpingを打ち込んだ時の話。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
lwIP PCシミュレーションにpingを打ち込む
次はpingを打ち込んでみよう。
あー、あの疎通確認するヤツ?
そうそう。
まぁGARP、IGMPがキャプチャできたんで、
疎通自体は出来てるはずなんだけど、
lwIPとしてpingに応答できるか、
応答するにあたっての挙動がどうなのか
ってあたりを見る感じだね。
じゃー、今回もWiresharkでキャプチャしながらだねー。
lwIP PCシミュレーションにpingを打ち込んだ結果
こんな感じになった。
うん。
ちゃんと応答しているね。
んー?
なんか最初のpingリクエスト後にARPのやり取りがあるような?
その通り。
ちゃんと気づいたようだね。
ARPのやり取りが起きる理由
あれ?
確か最初にGARP飛ばしてるからARP要らないんじゃない?
前回そんな話だったような気がするんだけど???
ARPが要らないとは言ってないかな。
じゃーいるの?
GARPは一体なんだったの???
GARPによって、PC側(pingリクエストした側)についてはMACアドレスとIPアドレスは紐づいた。
じゃー、lwIP側から見てPC側はどうなるか?
えーっと、
lwIPがGARPを飛ばして、PC側は解決。
PC側はGARP貰ったから・・・。
んー!わからん!
表にしてみよう。
GARP飛ばす前 | GARP飛ばした後 | |
lwIPがPCを知ってる | 未解決 | 未解決 |
PCがlwIPを知ってる | 未解決 | 解決 |
そっかー!
lwIP側がPCのIPとMACを解決できていないのか?!
そこでPCからARP投げてlwIPからARP返して解決。
表に追加するとこうか。
GARP飛ばす前 | GARP飛ばした後 | ARP | |
lwIPがPCを知ってる | 未解決 | 未解決 | 解決 |
PCがlwIPを知ってる | 未解決 | 解決 | 解決 |
そうそう。
それで、pingリクエストの後、pingレスポンスの前にARPが挟まってるのか。
lwIPからすると、誰ともわからないところからリクエストが来たから、
慌てて問い合わせてるって感じか。
ARPテーブル
ついでにPC側のARPテーブルも見ておこう。
どうやって見るの?
ARP -a
ってコマンドを入れてみな。
はいよ。
あ!
192.168.40.100っていうlwIPで設定したIPアドレスとMACアドレスが登録されてる!
これで、lwIPとPCがお互いを認識してIPより上位のプロトコルでやり取りができる状態が整ったわけだ。
Ethernetとかケーブル繋げは通信するもものだと思ってたけど、
結構いろんなことやってるんだねー。
まとめ
まとめだよ。
- lwIPに向けてpingを打ってみた。
- 問題無く応答。
- pingレスポンスの直前にlwIPからARP要求発生。
- GARPによりPCからlwIPは見えているが、lwIPからPCが見えていないため。
- ARPテーブルにlwIPのIPアドレスとMACアドレスが登録されているのを確認。
バックナンバーはこちら。
コメント