連載第6回
TCP/IPアレルギー撲滅ドリル【下位レイヤ編】

Etherealでリアルな
TCPの動きを観察する

福永勇二
インタラクティブリサーチ
2004/9/18


素朴な疑問
事件は現場で……
1 “理屈以上”を知る
道具の準備と使い方
2 どうやって観察するの
3 モニタするのは誰と誰の通信か
4 どんな通信を観察するか
フツーの通信の様子
5 何を観察するか
6 データのやりとりの表
7 最初のSYNの意味
8 Webサーバへのリクエスト
9 どこで画像データを送信するの
10 最後のFINの意味は
大きなファイルを送る
11 どうやって観察するの
12 大きなファイルの特徴
 大きなファイルを送る
 様子を見よう

●何をどうやって観察するのでしょうか?

 Webブラウザから大きなファイルを受信する機会といえば、例えばファイルのダウンロードがあります。

 ここではEthereal自体をダウンロードするときの様子を観察してみましょう。

 画面は画面3のようになりました。このときのEtherealのインストールファイルサイズは846万502バイトでした。

 


画面3 大きなファイルのダウンロードをモニタした様子

 この前の例と同じように、EtherealでモニタしたデータをExcelに読み込んで、同じ形の表にまとめてみました。ただし、通信のやりとりが多いので、興味深い一部分だけを抜き出してあります。表2がその結果です。

# time Webブラウザ 192.168.1.49 (4044) 方 向 Webサーバ 211.4.250.170 (80) 備考
flg Seq Ack Win Len Seq Ack Win Len
77 0.190587 [ACK] 474 62502 5656 0
78 0.190912 62502 474 57974 1414 (後続部分)
79 0.198112 63916 474 57974 1414 (後続部分)
80 0.198239 [ACK] 474 65330 2828 0
81 0.199514 65330 474 57974 1414 (後続部分)
82 0.200775 66744 474 57974 1414 (後続部分)
83 0.200837 [ACK] 474 68158 0 0 (TCPウィンドウサイズ=0)
84 0.696912 [ACK] 474 68158 16968 0 (#83に対する重複ACK)
85 0.717975 68158 474 57974 1414 (後続部分)
86 0.719719 69572 474 57974 1414 (後続部分)
表2 大きなデータのやりとりを表にしたもの(クリックすると拡大、さらに詳細な情報を表示します

●大きなファイルの場合の特徴はどこですか?

 この例の最大の特徴は、途中に#83と#84に(TCPウィンドウサイズ=0)と(#83に対する重複[ACK])という項目がある点です。これは、大量のデータを受信しているWebブラウザが、フロー制御を行っている証拠です。

 フロー制御とは、自分が忙しくなってきたら、相手に送信をゆっくりしてもらおうという話です。第4回「ウィンドウは主導権と良心のはざまで」●駐車場(ウィンドウ)の大きさが変わる?で説明していますが、ゆっくり送ってもらうためには、[ACK]に含めるウィンドウサイズを小さくします。もし、全く受信できない場合にはウィンドウサイズを0にします。

 ゆっくり送ってもらうためには、[ACK]に含めるウィンドウサイズを小さくします。もし、全く受信できない場合にはウインドウサイズを0にします。

 Webブラウザは#83のメッセージでウィンドウサイズ0の[ACK」を送っています。つまり、もうこれ以上データを受信できないよ、ということをWebサーバに知らせているわけです。このときの時間が0.2秒程度経過後です。その後、0.7秒前までの間に、たまっているデータを処理し、#84で、#83に対する重複した[ACK」を送り返しています。この中にはウィンドウサイズ16968を設定しています。これは通信を開始したときのウィンドウサイズですから、すっかり処理が終わって、たまっているデータがなくなったことを表しています。これを受信すると、またWebサーバはデータを送ってくるようになりました。

 大量のデータをやりとりする場合は、こういったフロー制御が必要に応じて行われています。

 これまで難解といわれるTCPのポイントをできるだけシンプルに説明してきて、今回はそれらの知識を総動員し実際の通信を観察してみました。さていかがでしたでしょうか。TCPの通信のイメージがつかめたことでしょうか。本連載の説明が、本格的な解説書を読むときの基礎知識となれば幸いです。次回からIPについて説明する予定です。

フツーの通信の様子

TCP/IPアレルギー撲滅ドリル【下位レイヤ編】(6)目次
1  TCP再送は現場で起きている/道具の準備と使い方
2  フツーの通信の様子を見よう
3  大きなファイルを送る様子を見よう

関連リンク
  連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編)
連載:インターネット・プロトコル詳説

連載:ルータの仕組みを学ぼう
ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間