連載第6回
|
|
大きなファイルを送る 様子を見よう |
Webブラウザから大きなファイルを受信する機会といえば、例えばファイルのダウンロードがあります。
ここではEthereal自体をダウンロードするときの様子を観察してみましょう。
画面は画面3のようになりました。このときのEtherealのインストールファイルサイズは846万502バイトでした。
画面3 大きなファイルのダウンロードをモニタした様子 |
この前の例と同じように、EtherealでモニタしたデータをExcelに読み込んで、同じ形の表にまとめてみました。ただし、通信のやりとりが多いので、興味深い一部分だけを抜き出してあります。表2がその結果です。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
表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アレルギー撲滅ドリル【超実践編】(上位レイヤ編) 連載:インターネット・プロトコル詳説 連載:ルータの仕組みを学ぼう ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜 |
「Master of IP Network総合インデックス」 |
- 完全HTTPS化のメリットと極意を大規模Webサービス――ピクシブ、クックパッド、ヤフーの事例から探る (2017/7/13)
2017年6月21日、ピクシブのオフィスで、同社主催の「大規模HTTPS導入Night」が開催された。大規模Webサービスで完全HTTPS化を行うに当たっての技術的、および非技術的な悩みや成果をテーマに、ヤフー、クックパッド、ピクシブの3社が、それぞれの事例について語り合った - ソラコムは、あなたの気が付かないうちに、少しずつ「次」へ進んでいる (2017/7/6)
ソラコムは、「トランスポート技術への非依存」度を高めている。当初はIoT用格安SIMというイメージもあったが、徐々に脱皮しようとしている。パブリッククラウドと同様、付加サービスでユーザーをつかんでいるからだ - Cisco SystemsのIntent-based Networkingは、どうネットワークエンジニアの仕事を変えるか (2017/7/4)
Cisco Systemsは2017年6月、同社イベントCisco Live 2017で、「THE NETWORK. INTUITIVE.」あるいは「Intent-based Networking」といった言葉を使い、ネットワークの構築・運用、そしてネットワークエンジニアの仕事を変えていくと説明した。これはどういうことなのだろうか - ifconfig 〜(IP)ネットワーク環境の確認/設定を行う (2017/7/3)
ifconfigは、LinuxやmacOSなど、主にUNIX系OSで用いるネットワーク環境の状態確認、設定のためのコマンドだ。IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる他、イーサネットフレームの最大転送サイズ(MTU)の変更や、VLAN疑似デバイスの作成も可能だ。
|
|