GetRTTAndHopCount()
たまたまPingを利用するアプリを作成していたところ、IP Helper関連の中にPingを打つようなAPIを発見した。CodeGuruで見てみると"A New Way to Ping
"ということで紹介されていたのを思い出したがなんか怪しい。
ということでGetRTTAndHopCount()を1回だけ実行してSnifferで調べてみると以下のようになっていた。
つまり、
・まず相手に到達するまでTTL=1から順に増やしてICMP-Echoを飛ばす。
・相手に到達しICMP-EchoReplyが返ってきたらTTL=32のICMP-Echoパケットをさらに2回飛ばす。
・これに成功すると関数はtrueを返す。hopには届いたTTLの数(上の例では3)が入る。
ということで純粋にICMP-Echoを1回、飛ばしているわけではないことが判明。
あと見ていて分ったのは送信データサイズは32バイトで変更ができなさそう。もちろんIP Option関連もできない。やっぱりICMP.dllのほうが柔軟な対応ができる。
| 固定リンク
この記事へのコメントは終了しました。

コメント