• ベストアンサー

MS-DOSおよびUNIXでのpingの違い

お世話になります。 UNIXでpingをしますと「64 bytes from 211.14.6.244: icmp_seq=0 ttl=51 time=17.334 ms」のリプライが来ますが、MS-DOSでpingすると、このseq(シーケンスNO)がありません。UNIXでは、シーケンスNOでパケットの順番ずれがわかるということですが・・ そこで質問ですが、 (1)pingはそもそもIPパケット=レイヤ3なのに、なぜにシーケンス番号がUNIXで表示されるのでしょうか?シーケンス番号はTCPなら互いにノード間で送達確認をすることはわかります。 (2)MS-DOSでpingの場合、UNIXのようにシーケンスNOをオプションで表示させることはできますでしょうか? 以上、お願いもうしあげます。

質問者が選んだベストアンサー

  • ベストアンサー
  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.2

シーケンス番号を持っているのはICMPの中でもecho/echo replyとかtime stampとか、要求に対して応答を返すもののみです ICMPが全てシーケンス番号を持っているわけではありません そもそもTCP以外ならシーケンス番号を持たない、という考えがおかしいです 確かにUDPはヘッダ部分にはシーケンス番号を持ちませんが、例えばVoIPの音声を送ったり、映像配信に使用されるRTPというプロトコルではペイロード部分にシーケンス番号を持つので、UDPであってもRTPヘッダ部分にシーケンス番号を持ちます http://www.geekpage.jp/technology/rtp/rtp.php MS-DOSプロンプトからのpingコマンドではシーケンス番号を表示できないので、どうしてもWindowsでシーケンス番号を知りたければWireshark等でパケットキャプチャしながらpingするしかないでしょう

dert342
質問者

お礼

ありがとうございます。 >そもそもTCP以外ならシーケンス番号を持たない、という考えがおかしいです。 パケットフォーマットを今、一度確認してみます。Wireshark試してみます。

その他の回答 (1)

noname#227025
noname#227025
回答No.1

(1)ICMP のパケットの中にはシーケンス番号が含まれています。(詳細は参考 URL を参照下さい。) ですから、シーケンス番号が表示されるのは何ら不思議なことではありません。 (2)そのようなことを実現するオプションがないので、おそらくできないのだと思います。

参考URL:
http://ja.wikipedia.org/wiki/Internet_Control_Message_Protocol
dert342
質問者

お礼

ありがとうございました。