【Wireshark】ネットワークパケットを読む会に行ってきた

5月に有楽町でネットワークパケットを読む会に行ってきた。何故、ネットワークパケットかと言うと普段、組み込みLinux関係でRTPを飛ばしていることもあって。

WireSharkはネットワークトラフィックをキャプチャしパケットのバイナリ → ASCII化やプロトコルのフィルタリングなどができるツール。
TCP/UDP/ARP/ICMPなどプロトコル別に区別されていて、選択すると詳しくパケットが見れる。

プロトコルやパケットフォーマットを知ることは、セキュリティ面に関わることでもあるのでネットワークを使うアプリ開発者にも必要かなと思う。

例えば、動画サイトで配信する FLVにJavaScriptを埋め込んでflashで再生させる。でも、そのJavaScriptは偽装されたウイルスでした。みたいなこともあるらしい。

こんなときはWiresharkでFollow TCP Streamを使って、気になる先頭文字のパターンを見てそれ以降のパケットを細かくみていくといいらしい。

仕事をアプリ開発に話を絡めると、iOSでは HTTPLiveStreaming(HLS) が推奨されているので、ニコニコなどではモバイル配信ではRTMPをHLSにするため変換サーバを使ってやってるらしい。

無理矢理RTPでつくるならUDPソケットを扱うライブラリを使って、RTPヘッダー解析部分etcは自分で作るのだけど、H.264の展開などはアプリ側でやる、つまりiOS端末のH.264ハードウェアデコーダが使えないので処理は遅くなる。

ネットワークパケットを読む会は今月も開催されるらしいのでネットワーク/セキュリティに興味あるひとは是非。