mones2/05.ICMP応答準備編 IPパケット送信/04.ICMPエコー応答


Top / mones2 / 05.ICMP応答準備編 IPパケット送信 / 04.ICMPエコー応答

これは何か

ICMP応答をするためにIPパケット送信の仕組みを作ります。
そのための第4段階として、いよいよICMP応答します。

ここまでの成果

Ethereal上は正しくicmp echo replyしているっぽい

動作について

QEMUで動作します。→まだ動作しません。

  1. contrib_0.3Net/monesにsampleAppをおき、arptest で make && make install します。
  2. MonaNew/tool/mkimg で make して、ISOをつくります。
  3. QEMUでMonaを起動して、arptest を実行して、Windows側からpingを打つと動作します
  4. WindowsとQEMUのネットワーク連携については、Yamamiさんのまとめをご参照ください。

詳しい解説・資料

IPパケット送信の流れは以下のようになることがわかりました。

  1. ルーティング解決
  2. ARPによるMACアドレス取得
  3. ICMPヘッダの作成
  4. IPヘッダの作成
  5. IPパケットの送出

IPパケットの送出

WindowsからのICMPエコー要求(ping)に対して、MonaがICMPエコー応答を返すようになった。

でも・・・。Windows側の ping はパケットロス100%とおっしゃる。 Etherealでパケットを見ていると、きちんと応答していて特におかしな点は見られない。 うーんなんでだ。

ちなみにこの状態になるまでは、ICMPのチェックサムが間違っていて、それを直したのでいけるかと思ったんだがなぁ。 もう一息。 Mona君がWindows君の ping に応答しません。

でもEthereal上では、replyしているんですよねぇ。 http://f.hatena.ne.jp/images/fotolife/h/higepon/20051120/20051120214703.png

今話題 のEthereal でのDumpはこちら

http://f.hatena.ne.jp/images/fotolife/h/higepon/20051120/20051120215115.png

WindowsのICMPエコー要求に対して、MonaがICMPエコー応答すれば良いのだろうと思っていたのですが、違うのかなぁ。

こういう場合は、うまく言っている場合のパケットの様子と比べるのが良い。

つまりWindows⇔Windowsのping要求・応答をEtherealで観察すればよいということになる。

と思ったがうまく観察できないので、苦戦中。 MonaがWindowsのpingに返事するようになりました。

アドバイスを下さった方どうもありがとうございました。

pingに返事をするようになった瞬間は、Monaで初めてGUIが動いたり、文字が出たりと同じくらい感動しました。

今後は、pingに答える→ICMP応答できる→IP, ARPがうまく動いている→IPのやり取りができる→ウマー

という流れになるはずです。

さて親バカですがどうしてもその様子を見てみたいという方は、「やまなし」「おちなし」覚悟で↓をご覧ください。(初wink)

http://mona.sourceforge.jp/higepon/ping.htm

あとでまとめます。

結局、icmp->dataに含まれているid, sequenceを送信元と同一にすることで ping に応答することができるようになりました。

コメント

コメントはありません。 コメント/mones2/05.ICMP応答準備編 IPパケット送信/04.ICMPエコー応答?

お名前:

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 3025, today: 1, yesterday: 1

添付ファイル: filesampleApp-20051120.zip 436件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:00 (3737d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.047 sec.