5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

パケットゲットだぜ!!!!!!!

Last updated at Posted at 2022-12-09

概要

オレ、ヒロシ!今日はWiresharkとやらを使ってパケットゲットしてみるぜ!

Wiresharkってなに?

Wiresharkってのは、ネットワークを流れるデータをゲットして内容を解析・表示するプロトコルアナライザのことだ!

パケットってなに?

パケット(packet)は英語で「小包」を意味するんだぜ!
そんで、データ通信においてネットワーク経由でやりとりされる情報の伝送単位をパケットって呼ぶんだ!

プロトコルってなに?

通信をする上で守らなければいけないお約束のことだぜ!
各種のプロトコルはOSI参照モデルの7レイヤーによって以下のように分類されているんだ!

層(レイヤー)         名称 規格(プロトコル) 概要         利用例
7 アプリケーション層         HTTP,FTP,DNS,SMTP,POPなど 個々のアプリケーション www,メール
6 プレゼンテーション層            SMTP,FTP,Telnetなど データの表現形式 HTML
5 セッション層 TLS,NetBIOSなど 通信手段 HTTPS
4 トランスポート層 TCP,UDP,NetWare/IPなど エンド間の通信制御 TCP,UDP
3 ネットワーク層 IP,ICMPなど データを送る相手を決め最適な経路で送信 IP
2 データリンク層 PPP,ARP,RARP,Ethernetなど 隣接する機器同士の通信を実現 Ethernet
1 物理層 RS-232,UTP,無線 物理的な接続、電気信号 UTPケーブル,光ファイバーケーブル

環境

# OS情報
sw_vers
> ProductName:	macOS

# Wiresharkのダウンロード(3.6.5)
https://www.wireshark.org/download.html

Wiresharkを使ってパケットをゲットしてみる

Wiresharkは無線(Wi-Fi)、有線(Ethernet)両方のパケットをキャプチャできるけど今回は無線のパケットをゲットしてみるぜ!
image.png

こんな感じで、たくさんのパケットがゲットできたな!やったぜ!それじゃあ次はいくつかのプロトコルにそれぞれフォーカスして説明していくな!
image.png

TCPの概要

まずはTCPって奴の説明をしていくぜ!
TCPは、安全性重視で会話のキャッチボールをしようぜ!っていう通信をする特性があるんだ!TCPでは通信の最初に3ウェイハンドシェイクという通信をするんだ!
下の図にあるようにSYNACKはフラグと呼ばれていて、次にどのようなフラグで通信するか手順が決まっているぜ!
image.png

ちなみに、通信を終了するときはこんな手順になるぜ!
image.png

それじゃあ実際にパケットを見てみるぜ!
WiresharkでゲットしたパケットでもちゃんとSIN=>SYN, ACK=>ACKという順番で通信しているのが分かるな!
image.png

通信を終了するときもちゃんとFIN, ACK=>ACK=>FIN, ACK=>ACKという順番で通信してるな!
image.png

UDPの概要

次はUDPって奴の説明をしていくぜ!
UDPは、スピード重視で会話のキャッチボールをしようぜ!っていう通信をする特性があるんだ!UDPではTCPのように3ウェイハンドシェイクを行わないぜ!だから速い且つサーバー側の負荷も少なくて済むんだ!
あと、UDPはDNS(Domain Name System)のようなサーバー側で大量の通信を受け付ける場合に使われるぜ!
※DNSってのは、ドメイン名(コンピュータを識別する名称)をIPアドレスに自動的に変換してくれる奴のことだ!

それじゃあ実際にパケットを見てみるぜ!
こんな感じでUDPのパケットが飛んでいるのが分かるな!
image.png
image.png

ICMPの概要

次はICMPって奴の説明をしていくぜ!
ICMPってのは、Internet Control Message Protocolの略で、IPプロトコルの「エラー通知」や「制御メッセージ」を転送するためのプロトコルなんだぜ!ICMPメッセージには機能毎にいくつかのタイプがあって、主要なメッセージタイプと機能は以下の図の通りだ!ちなみに、皆んさんお馴染みのpingはこのICMPプロトコルを使用したプログラムだぜ!

タイプ         機能
0 エコー応答(echo reply)
3 あて先不達(destination unreachable)
5 リダイレクト要求(redirect、経路変更要求)
8 エコー要求(echo request)
11 時間超過(time exceeded)
13 タイムスタンプ要求(timestamp request)
14 タイムスタンプ応答(timestamp reply)
15 情報要求(information request)
16 情報応答(information reply)
17 アドレス・マスク要求(address mask request)
18 アドレス・マスク応答(address mask reply)

それじゃあ実際にパケットを見てみるぜ!
image.png
今回はエコー応答(echo reply)エコー要求(echo request)のパケットをゲットだぜ!

image.png
あとpingが通らなかったときは、こんな感じであて先不達(destination unreachable)のパケットが飛ぶぜ!

ARPの概要

次はARPって奴の説明をしていくぜ!
ARPってのは、Address Resolution Protocolの略で、IPアドレスからMACアドレスの情報を得られるプロトコルなんだぜ!ARPには「ARPリクエスト」と「ARPリプライ」っていう2種類のパケットがあるんだ!ARPリクエストとARPリプライでの組み合わせは下の図の通りだぜ!

通信種別 opcode MAC address IP address MAC address IP address
ARPリクエスト 1 自分 自分 00:00:00:00:00:00 解決したいIPアドレス
ARPリプライ 2 自分 自分 リクエスト送信元 リクエスト送信元

それじゃあ実際にパケットを見てみるぜ!
image.png
Who has 10.18.128.1? Tell 10.18.184.237ってあるな!これは、「おーい、みんなー!10.18.128.1のIPアドレスって誰ー?オレ(10.18.184.237)に教えくれ!」って言ってるわけだ!面白いぜ!

mDNS(Bonjour)の概要

最後にmDNS(Bonjour)の説明をしていくぜ!
mDNSってのは、Multicast Domain Name Serviceの略で、ローカルネットワーク内でホスト名からIPアドレスを割り出すために用いられるプロトコルなんだ!
これまでの名前解決はブロードキャスト、DNSではユニキャスト、mDNSではマルチキャストで名前解決をするんだ!

ブロードキャストとは

1対不特定多数で行われるデータ通信のことだぜ!

ユニキャストとは

1対1で行われるデータ通信のことだぜ!

マルチキャストとは

1対複数で行われるデータ通信のことだぜ!

それじゃあ実際にパケットを見てみるぜ!
image.png
おっと!ちゃんとオレのPCが名前解決されたぜ!これは面白いや!

表示フィルター

下の赤枠の小窓に条件構文を直接入力することでディスプレイをフィルタリングできるぜ!
image.png

プロトコル(以下など)
tcp
udp
icmp
arp
IPアドレス
送信元IP: ip.src==xxx.xxx.xxx.xxx
送信先IP: ip.dst==xxx.xxx.xxx.xxx
送信元/送信先両方: ip.addr==xxx.xxx.xxx.xxx
ポート番号
TCP: tcp.port==xxx
UDP: udp.port==xxx
組み合わせ
例)mdns&&ip.src==xxx.xxx.xxx.xxx

最後に一言

みんなもパケットゲットだぜ!!!!!!!!!!!!!!!!!

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?