連載第3回
|
![]() |
|
| スライディングウィンドウの謎に迫る |
TCP最初の難関はこの「スライディングウィンドウ」という仕組みでしょう。なぜスライディングウィンドウが必要なのか。スライディングウィンドウを使うと通信速度を上げることができるのか。これを感覚的に理解できなければ、この先のTCPの仕組みも理解できません。
でも心配は要りません。前回の説明が感覚的に理解できれば、スライディングウィンドウも感覚的に理解できると思います。実をいうと、前回の説明も、今回のここまでの説明も、すべてこのスライディングウィンドウを説明するための前振りだったんです。
前回登場した「ひとまとめ」と「連続送り」の図解で、以下のことを説明しました。
| (1)受け取り側にはトラックを停めておける駐車場スペースがあること (2)このスペースが満杯になるまで、送り主のトラックは連続して出発できること (3)スペースが満杯になったら、荷降ろしが済んだトラックが現れた時点で送り主は次の1台を出発させられること |
(1)〜(3)の一連の仕組みで、受け取り確認をしながら効率的に運べるというお話です。
実は、この仕組みをよりコンピュータっぽく説明するのが「スライディングウィンドウ」です。だから、スライディングウィンドウの動作、そして必要な理由の1つは、すでに皆さん理解できているわけです。あまり心配は要らないというのはそういうワケです。
TCP/IPの一般書籍では、スライディングウィンドウを図1のように表すことが多いと思います。しかし、この図を見て、「連続送り」のイメージを浮かばせることは簡単ではないでしょう。
![]() |
| 図1 TCPの教科書によく登場するスライディングウィンドウの概念 |
ここでは大胆に、スライディングウィンドウを前回のトラックの話に例えてみたいと思います。登場するのは、トラックの運行を管理する「配車管理表」です(図2)。
![]() |
| 図2 トラックの話でスライディングウィンドウを考えると…… |
配車管理表を使うと、どのトラックが納入を完了しているか、どれが配送中か、どれが出発待ちかを一目で把握することができます。例えば図2では、1番のトラックと2番のトラックは、すでに納入を終えています。3番から12番のトラックは、納入先まで走っているか、納入先にある駐車スペースに入っています。また13番トラックは出発を待っていることが、これで一目で分かります。実際のTCPの世界でいえば、どこまで送信したかその状態を上手に管理できる、ということです。
ここで3番トラックが無事に納入を終えたとします。すると、送り主には納入先から「受け取り確認」が到着します。これを受け取ると、送り主は配車管理表の「配送中車両枠」を1つ右にずらします。すると、3番トラックは納入済みになり、新たに13番トラックが配送中車両枠に入ります。配送中車両枠に入った13番トラックは、ここで速やかに出発して配送をスタートします。このように管理すれば、どのトラックが納入済みで、どのトラックが配送中か、一目で見分けることができます。
この表の中で移動する「配車中車両枠」がスライドするウィンドウに相当します。つまり「スライディングウィンドウ」による通信状態の管理が行われているわけです。もともとこの図に書いたやり方は、前回登場した「連続送り」ですから、この図が「スライディングウィンドウ」を使って連続送りの状態を管理する仕組みであることをお分かりいただけると思います。
ちなみに、図2と同じものを、TCPの教科書などで使われるメッセージチャートで描いたものが図3です。それぞれを見比べてみて、このメッセージチャートの見方を把握しておくと、後で正式な教科書を読むときの役に立つと思います。
![]() |
| 図3 メッセージチャートもトラックの絵を思い浮かべると分かりやすい |
なお、「配送中車両枠」が、納入先の駐車スペースの大きさと同じである点にも注目してください。この2つが同じ大きさになっている限り、駐車スペースがなくてトラックがあふれるようなことはありません。つまり、より確実な通信ができるということです。この点もぜひ覚えておいてください。
どうでしょうか? スライディングウィンドウの仕組み、そしてその効果が、100%じゃないにしても、じんわり見えてきた気がしませんか?
実は、スライディングウィンドウの御利益は、連続送りの管理をしやすくするだけではありません。例えば、納入先が「受け取り確認」の通知を1回忘れてしまった場合も、スライディングウィンドウの考え方を使うと、配送を順調に続けることができます。
この辺りの具体的な話は、また後に譲りますが、スライディングウィンドウは「連続送り」の管理をカンタンにするほか、データの再送信の管理や、スロースタートを実現するためにも使われる、基本的でとても重要な仕組みなのです。
|
|
|
||||||||
| 関連リンク | |
| 連載:TCP/IPアレルギー撲滅ドリル【超実践編】(上位レイヤ編) 連載:インターネット・プロトコル詳説 連載:ルータの仕組みを学ぼう ホストのネット接続は正しく行われているか? 〜netstatによるネットワーク設定の確認〜 |
|
| 「Master of IP Network総合インデックス」 |
TechTargetジャパン
- 「ネットワーク仮想化」がもたらすもの (2012/5/25)
キャリアイーサネット網で展開されているVPNサービスをSPBに置き換えると、どんな変化が起こるのか - 「Meteor」で来れ、1億総Webアプリ開発者の時代 (2012/5/16)
文系人間の筆者でも、「これならWebアプリ開発、できるかも」と思わせてくれるフレームワーク、Meteorの可能性を予想してみたい - ついに来た? 「真のIPv4アドレス在庫枯渇」 (2012/5/14)
IANAやAPNIC/JPNICが管理するIPv4アドレスの在庫が枯渇してから1年。いま、水面下で「真の枯渇」が始まりつつあります - SLB-PTでWebサーバをさくっとIPv6対応に (2012/4/26)
いくつか存在するIPv6移行ソリューションの中から、SLB-PTを用いて、さくっとWebサーバをv6対応させる方法を説明
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




