HTTP

 イーサリアルで、HTTPのパケットを計測。HTTPについてプレゼンを行うって課題が出ている。金曜日に発表なので、それほど日がない。
 IEによってGoogleなどのサイトを開いたときのパケットを計測してみると、Getメソッドが2回よばれていて、サイトを要求しているGETと、トップのロゴを要求しているGETということがわかったりして楽しい。
 ARPのパケは、MACとIPのアドレス解決で、次にDNS、そしてTCPによって接続され(スリーハンドシェイク)んで、最後にHTTPパケが飛んで、TCPのACKが飛び交いつつ、再度HTTPを飛ばしあうといったかんじ。ポータルサイトなんかで観測すると、簡単にパケが500ぐらい飛んでしまう。どれだけ複雑な通信しているんだ!って言いたくなるけど、それだけ、OSやアプリがその手間を吸収して、ユーザを楽させてくれているのがわかって楽しい。
 発表はHTTPということなので、ARPやらDNSやらについては省いちゃう予定。聞かれれば何しているか答えるけど、発表で説明したら、余分だろうしね。
 それよりも、サーバからのレスポンスコードについてとか、もっとやったほうがいいのかもしれない。ただ、十数分の発表なので、行っても12,3枚程度のスライドに抑えたい。
 ところで、FIN ACKが飛ばないときがあるのだけど、観測できていない?若しくは、飛ばさずに終了させちゃうブラウザもあるとか?どのタイミングで飛ばしているのかちょっとわかりづらい。TCPが通信を確立して、その中でHTTPを遣り合ってるって思えば、TCPは意識しないほうがいいのだろうけど。ちょいとなぞっぽい。
 あと、クライアント側のポートって任意?アプリ識別に使ってるといった感じなんかな。