##wiresharkとは
ネットワークパケットをキャプチャすることが出来るフリーソフト
今回はwiresharkを使用して、pingがどのように行われているのか確認してみます。
##wiresharkの使い方
アプリを起動すると以下の画面が表示され、画面内にネットワークデバイスが表示されます。
今回はイーサネット2を選択します。選択すると以下の画面が表示されます。
現在は通信を行っていないため、何も表示されていません。
##pingで通信を発生させてみた
接続されているPCからpingを行うと以下のように表示されます。
今回はICMPのプロトコルを使用するため、フィルタリングしてICMPのみを表示させています。
pingは基本的に4回リクエストが行われます。
そのため、リクエストとそれぞれのリクエストに対するリプライが以下に表示されています。
(「ping」を「ping-n 1」にすると、4回のリクエストが1回になります。)
##データの確認方法
wiresharkではキャプチャしたパケットを選択すると下のほうにパケットの詳細とパケットのバイトが表示されます。
まずはリクエストを受信した場合のパケットを確認してみます。
今回はIPヘッダとICMPヘッダを確認してみます。
IPヘッダは以下の構造になっています。
ICMPのProtocol番号は1なので、1になってるはずです。
wiresharkでIPヘッダを確認してみます。
背景が青くなっている箇所がIPヘッダです。
同じ構成になっていおり、プロトコルが1であることがわかります。
次にICMPヘッダを確認してみます。
背景が青くなっている箇所がICMPヘッダで、同じ構成になっています。
また、typeが8(エコー要求)であることがわかります。
typeは0(エコー応答)や3(宛先到達不能)など数字によって決まった意味があります。
まずは受信したリクエストに対するリプライを送信する場合のパケットを確認してみます。
wiresharkでIPヘッダを確認してみます。
背景が青くなっている箇所がIPヘッダで、同じ構成になっています。
先ほどリクエスト受信時のパケットと異なり、送信元アドレスと宛先アドレスが逆になっていることがわかります。
次にICMPヘッダを確認してみます。
背景が青くなっている箇所がICMPヘッダで、同じ構成になっています。
また、typeが0(エコー応答)であることがわかります。
##おわりに
pingのような単純なコマンドでも、ヘッダーまで確認するとわからない点なども多くあったりします。
他にもネットワークプロトコルはたくさんあるので、色々なプロトコルをwiresharkで確認すると理解が深まるかもしれません。