連載第4回
|
|
もー、やってらんない!なっ てときは |
前回「分かるスライディングウィンドウ、見えるEhtereal」では、TCPの仕組みを本来のTCP用語で説明してみました。「連続送り」をキーワードに、独自スタ イルでの説明を試みる「TCPの迷宮をさまよってみませんか? 」とぜひ一緒にご覧ください。今回は、手が回らずに受け取りきれそうにないとき、TCPがどう対処するのかについてお伝えします。 |
サボっているわけじゃないのに、いくらやっても片付かない。手元の仕事だけであっぷあっぷしているのに、さらに新しい仕事がやって来る。そんなとき、あなたならどうしますか? 仕事を出す側の気の利いた調整に期待? そんなの無理だってことは、誰しも承知しています。
そんなときは「いま、対応できません。ちょっと待ってください」と、仕事を出す側にはっきり伝える必要があります。仕事を出す側は、仕事を受ける側の状況を知りません。そこで、仕事を受ける側が、自分の現在の状況に応じて仕事を出す側に調節を依頼する。そういう考え方です(現実には、そう伝えても仕事がやって来ることが多いのは、皆さんご承知のとおりですが)。
実は、確実な通信がモットーのTCPでも、これと同様なことが行われています。こうすることで、受信側が手に負い切れない状況の発生を防いでいるのです。処理できないといっているのに、無理やり仕事を押し付けてくる困った上司はいないので安心してください。今回はこの辺りの話をしたいと思います。
忙しさを伝えて無理難題から逃れる |
これまでの説明では、荷物を受け取る側に駐車場を用意して、その広さいっぱいまで、送り主がトラックを送り出せるという話をしました。でも、ちょっと考えてみてください。いくら駐車場が広いからといって、棚卸しでスタッフが全員出払っているときに、アルバイト学生1人が駐車場にあるトラック1000台の荷物の検収ができるでしょうか?
多くのトラックが、想定を超えた長時間、ひたすら駐車場で待たされることになり、食料品などは腐って使い物にならないかもしれません。
図1 検収し切れないのに広い駐車場にトラックがたまる |
こんな事態が予想されるのであれば、荷物を受け取る側は、荷物の発送元に「しばらく受け取れそうにありません」と通知しておくのが親切というものです(図2)。これを聞いた発送元は、トラックを出発させませんから、駐車場でみすみす荷物を腐らせずに済みます。
図2 手が回りそうにないときは「受け取れない」と通知する |
これは冒頭に書いた話に通じます。荷物を受け取る側が、自分の現在の状況を伝えることで、荷物をスムーズに、かつ漏れなく受け取ることができる仕組みだからです。
TCPでは例のウィンドウの仕組みを使って忙しさを知らせます。TCPを知るのにウィンドウをパスできないのは、ここからも垣間見ることができます。
ウィンドウの仕組みを使って、どうやって忙しさを伝え、さらに受け取る情報量をコントロールするのでしょうか。これは意外と簡単です。1000台入る広い駐車場があっても、20台しか入らないとアナウンスすればいいのです(図3)。
図3 実際の駐車場の広さ(ウィンドウサイズ)より小さく知らせる |
発送元は、受け取り確認が来るまでの間、最大で駐車場の広さ分までしかトラックを出発させません。たとえ本当は1000台分のスペースがあるとしても、駐車場スペースが20台分だと知らせておけば、ある瞬間に到着しているトラックは最大でも20台を超えることはありません。この程度なら、学生アルバイト1名でも検収できる量でしょう。
ウィンドウ(駐車場)の大きさは、通信が始まる冒頭で相手に知らせます。しかしこれだけだと、受け取る荷物の量を調節できません。そこでTCPでは、このほかに受け取り確認(ACK)と一緒に最新のウィンドウサイズを発送元に知らせるルールになっています(図4)。このとき知らせるウィンドウサイズ(駐車場容量)を小さくしておけば、送信元から送り付けられる荷物の数は少なくなります。
図4 受け取り確認にウィンドウサイズが入っている |
このように、受信側が自分の状態を相手に知らせ、それに基づいて送信側が送信を控えたり、再開したりすることで、取りこぼしが起きないようにすることを「フロー制御(流量制御)」といいます。フロー制御をすれば、受信側が過負荷状態などになっても、取りこぼしのない確実な通信を行うことができます。
|
関連リンク | |
連載: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疑似デバイスの作成も可能だ。
|
|