Yabu.log

ITなどの雑記

久々にパケットキャプチャをやってみた

初めてパケットキャプチャをしたのは大学2年の時で、ソケット通信のプログラムを作る課題が出た時、 自主課題としてパケットの解析結果的なのを載せるためにやった気がする。

その時はtcpdumpを使ったけど、今回はwiresharkを使う。

初日の成果でも書いてみる。

アカマイすげー

やはり前とやった時と同じく、何もやってない状態でもアカマイ、アマゾン、アップルとの通信は頻繁にやってる。

アップルはアカマイの顧客だけど、アップル以外っぽいエッジサーバーとも通信しているパケットも何度か見かけた。(LINEもアカマイを使っているというのを何処かで見た覚えがある)

TCPのハンドシェイクの確認ができた

TCPの開始・終了時のハンドシェィクは確認できた。 ちょっと意外だったのが、終了時のFIN,ACKパケットをクライアント側からではなく、サーバー側から投げられたこと。

HTMLのリクエストのための接続でしたが、サーバー側が一通りデータを送り終わった後、 「もう終わったから接続切りますね〜」的な切断をサーバー側から始めたのだろうか?通常解説書などでは、常にクライアント側からFIN,ACKパケットを送るような図になっていると思うのだが。。。

まだこの辺は知識が薄いので何が起こっているか不明。

動画サイトはUDP通信を利用していない?

  • youtube
  • youtube live
  • ニコニコ
  • twitch などとのパケットをキャプチャしてみたが、 UDPは使われていなかった。

動画サイトとの通信は基本UDPでやっていると思っていたのでちょっと驚き。 ネットで調べてみたら、パケットキャプチャ初心者が通る通過儀礼的なものらしいw (このことに関する質問などが山のように見つかる。)

stackoverflow.com

stackoverflow.com

teratail.com

ちなみに手元のアプリケーションでUDPが確認できたのはFaceTime(ビデオチャット)のみでした。

流れる情報が多すぎる。

リアルタイムのパケットを眺めているとオメーはツイッターの人気タグかよ。ってくらいの勢いでパケットが流れる。 まぁTCPのハンドシェィクだけで7回もパケット流れるわけですし。 プロトコルTCPだけでなく多種多様なものが流れている。(NBNS,SSDP,DBなんとかは初見)

またIPv6の通信が結構行われている。ただしHTMLとの通信は確認できる範囲では全てipv4だった。 確かipv6でHTTP通信をするには、クライアント側にしかるべき設定をしてからipv6ように用意されたサイトにアクセスする必要があったような気がする。

ipv6を使ったhttp通信のキャプチャも今後挑戦してみたい。

まぁわからないことだらけだけど、初日はこんなもん、ということで。

便利なサイト一覧

キャプチャ中に頼りになったサイトでも貼っておく

MACアドレスのベンダーアドレスを調べる

mac.uic.jp

基数変換

2進数、8進数、10進数、16進数相互変換ツール

今後の課題

  • 送付データの詳細の確認
  • Window制御
  • ipv6のHTTP通信
  • フィルタを工夫してLINE等特定アプリケーションのキャプチャ
  • バカハブどプロミスキャスモードを利用した他ディバイスへのパケットのキャプチャ