連載第2回
|
|
データ受け取りをスムーズに |
●受け取り確認をしても、遅くならないテクニックがあるんですか?
はい、あるんです。一言でいえば「ひとまとめにして、連続送り」です。何だこりゃ?こんな名前を聞いても、ピンと来ませんよね。これは「ひとまとめにする」と「連続送り」という2つのアイデアが組み合わさった話ですので、ここでは2つに分解して考えることにしましょう。
なお、この「ひとまとめ」と「連続送り」はTCPの標準的な用語ではありません。できるだけ多くの方がTCPの理解を深められるようにと、このページで作者が勝手に命名したものですので、あらかじめお断りしておきます。
「受け取り確認」をすると遅くなる理由の1つは、データを送るたびに確認を待ち、それを何度も繰り返さなければいけないという点にあります。それならば、受け取り確認の数を減らせばいい、ということになります。それには、ある程度のデータをひとまとめにしておいて、それ全体に対してまとめて「受け取り確認」をする方法が考えられます(図5)。
図5 まとめて送れば「受け取り確認」が省略できる |
例えばりんごを送るのに、1つ1つ受け取り確認をしていたら、受け取り確認そのものがものすごい量になってしまいます。そうではなく、りんごをまとめてトラックに載せ、トラック1台ごとに受け取り確認をしたらどうでしょうか? こうすれば、受け取り確認は1回で済みますので、受け取り確認の待ち時間が多少長くなっても全体で見ればほとんど影響を受けません。
「受け取り確認」をしても、「ひとまとめ」にすることで、だいぶ無駄をなくすことができました。でも人間は欲張りです。もっと効率よくりんごを運ぶ方法を見つけ出しました。それが「連続送り」です。
これにはまず、りんごを受け取る側が駐車場を作っておきます。りんごを納入するトラックは、納入先に到着したらこの駐車場に一時的に駐車して、納入受け付けが始まるのを待つことができます。ここでは、仮に20台停められる駐車場としましょう。
この駐車場があることで、りんごの発送方法は劇的に変わります。これまでトラック1台が出発したら、「受け取り確認」が来るまで次のトラックは出発できませんでした。でもいまは納入先に20台分の駐車場がありますから、「受け取り確認」が到着しなくても、最大20台までなら順次トラックを出発させることができます。
では、21台目のトラックを出発させられるのは、いつでしょうか? そう、これは1台目のトラックの「受け取り確認」が終わったときです。「受け取り確認」が終わると、駐車場には1台分の空きスペースができますから、次の1台を出発させてもあふれてしまうことなく、ちゃんと納品用駐車場に入ることができます。
「駐車場を作ることで、受け取り確認を待たずに連続してトラックを送り出す」とどのくらい効率が良くなるのか、分かりやすく表したのが図6です。これを見ると分かるように、受け取り側に駐車場があるおかげで、受け取り確認を待っている間にも送り主はトラックを出発させることができることになります。
図6 受け取り側に駐車場があれば連続して送ることができる |
※1 連続送りをしなければ、2台目の出発は1台目の「受け取り確認」が届いた後になる。こうして見ると、連続送りの効果はとても大きい。 なお、1台目の受け取り確認が20台目の出発より前に届いた場合には、21台目は直後に出発できる。この条件では、トラックはほぼ待ち時間なく、連続して出発できることになるからスゴイ |
もし駐車場がなかったとしたらどうでしょうか。2台目の出発は、1台目の「受け取り確認」が届いた後になります。そう、このタイミングまで待っていないといけないのです。その差は非常に大きいものです。片や21台目が出発するというのに、他方は2台目がやっと出発できる状況なのですから。
これから分かるように、「ひとまとめ」と「連続送り」の合わせ技を使うことで、同じ時間で送り届けられるりんごの数は劇的に増えます。これはイコール通信の効率が良くなるということです。
●「遅れ」が大きくても「ひとまとめ」「連続送り」は効果的なんですか?
この記事の最初の方で、「遅れ」が大きいときに「受け取り確認」をすると特に効率が悪くなる、という話をしました。でも「ひとまとめ」と「連続送り」を使えば、ある条件さえ整えてあげれば、その問題からもサヨナラできます。
「遅れ」が大きいことは、つまり相手からの「受け取り確認」の到着が遅いということです。この到着が遅くても大丈夫なようにする条件とは、ずばり「受け取り側の駐車場をぐんと大きくしてもらう」ことです。
具体例で考えてみましょう(図7)。先に登場した20台が入る駐車場を、一気に50倍の1000台まで広げてもらったとします。こうすると、「受け取り確認」を待たなくても出発できるトラックの数は、20台から1000台に大幅に増えます。
図7 「遅れ」があるときは、駐車場を大きくする(図版をクリックすると拡大表示します) |
※2 同じこの時間で見ると、駐車場が20台しかない場合はまだ20台しか出発できていない。しかし駐車場が1000台ある場合はすでに500台が出発済みだ。25台も差がついてしまった。「受け取り確認」の到着がとても遅いときには、駐車場の大きさを大きくしないといけないことがこの図からよく分かる |
ここで1台目の「受け取り確認」が500台目のトラックの出発タイミングに到着するような、大きな「遅れ」が発生しているとしましょう。
このとき、もし相手の駐車場が20台分しかないとすると、20台目のトラックを送り出した後、本当なら500台目まで送り出せるはずのタイミングまで、送り主はトラックの出発を止めてひたすら待っていなければいけません。
しかし相手の駐車場が1000台分あれば、送り主は少なくともトラック1000台が出発するまでは「受け取り確認」の到着とは無関係に出発させることができます。この例では、「受け取り確認」の到着が500台目の出発と同じタイミングですから、送り主は「受け取り確認」の到着を待つ必要は全くないわけです。
この2つの差は一目瞭然です。トラック500台目を送り出せるタイミングで見てみましょう。駐車場が20台分しかない場合は、わずか20台のトラックしか送り出せていません。しかし駐車場が1000台あるケースでは、500台のトラックを丸々送り出せているのです。
このように、「ひとまとめ」&「連続送り」の合わせ技を使うと、たとえ「遅れ」が大きい場合でも、「駐車場を大きく」することで効率の良い状態を保つことができるという特長も備えています。
今回はTCPが確実な通信を実現する基本となるアイデアを、なるべく平易に説明してみました。説明は次回に続きます。
データの受け取り「確認よし!」 |
|
|
関連リンク | |
連載: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疑似デバイスの作成も可能だ。
|
|