連載第5回
|
|
肯定確認応答が届かない ケースを追う |
では図4を使って、肯定確認応答が消えてしまう場合に、TCPはどんな動きをするか説明します。先の説明と重複する部分は簡単に触れます。
(1)まず送信側がウィンドウ内にある[1]〜[4]のデータを順に送信します。
(2)[1]のデータが受信側に到着したら、データを受信側の箱に入れ、肯定確認応答を送信側に返送します。この肯定確認応答には「次は[2]を送ってください」という情報が含まれています。
(3)受信側は[1]の肯定確認応答の送信をもって、送信側は肯定確認応答の受信をもって、ウィンドウの位置を[2]にスライドさせます。
(4)送信側は[5]を送信します。また[2]を受け取った受信側は「次は[3]を送ってください」という情報を含んだ肯定確認応答を返します。しかしそれは通信回線上のトラブルで消えたとします。
(5)受信側は送信した肯定確認応答に基づいてウィンドウを[3]に進めます。しかし送信側には肯定確認応答が届いていないのでウィンドウはそのまま動かしません。
図4 肯定確認応答が消えてしまうケース |
(6)[3]が受信側に到着します。それを保存して「次は[4]を送ってください」という情報を含んだ肯定確認応答を返します。
(7)受信側は返した肯定確認応答に基づいてウィンドウを[4]に進めます。送信側は受け取った肯定確認応答内の指示に従ってウィンドウを[4]に進めます。先に肯定確認応答が1つ抜けましたが、通信状態はこれで正常に戻ります。
(8)[6][7]がウィンドウ内で未送信なので、順に送信を開始します。[4]が受信側に到着し、「次は[5]を送ってください」を含んだ肯定確認応答を返します。
(9)受信側は返した肯定確認応答に基づいて、送信側は受け取った肯定確認応答内の指示に従ってウィンドウを[5]に進めます。
(10)[5]が受信側に到着し、「次は[6]を送ってください」を含んだ肯定確認応答を返します。
(11)受信側は返した肯定確認応答に基づいて、送信側は受け取った肯定確認応答内の指示に従ってウィンドウを[6]に進めます。
(12)[6]が受信側に到着し、「次は[7]を送ってください」を含んだ肯定確認応答を返します。
以降、これと同じ動作を繰り返します。アニメーション2で動作を確認しましょう。
アニメーション2 肯定確認応答が消えてしまうケース |
データが受信できないときに、積極的に再送信を求めるという考え方をするTCPでは、送信状態の確認をするときの肯定確認応答は、あまり厳密には求められません。その考え方でも問題がないことは、(4)で肯定応答確認が抜けても(6)の肯定応答確認の受信で、元の状態に戻ることから読み取れます。
つまり「多少、返事が抜けても、その後に普通に返事をしていたら、きっと問題はない」という考え方です。正確というイメージの強いTCPが、こういう楽観的な考え方をするのは意外ですが、通信の効率を考えて余計な応答はしないことを突き詰めると、こういうスタイルになったのでしょう。
ちなみに、[2]のほかに、[3][4][5]への肯定確認応答も立て続けに消えてしまうとどうなるでしょうか? この仕組みだけでは、送信側も受信側も、相手からの送信を待ち続ける状態に陥ってしまい、通信は永遠に終わらないことになります。
しかし実際には、ウィンドウサイズはもっと大きく、数回の肯定確認応答の消失だけでこのような状態に陥ることはありません。
また、仮にそうなったとしても、送信データの消失のところで説明したとおり、送信側がタイマをセットしていて、一定時間待って肯定確認応答が来ないと、自動的に再送信します。ですので、お互いに待ちを決めて先に進まない現象は原理的に起きません。心配は無用です。
通信データが消えてしまうケースを追う |
|
関連リンク | |
連載: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疑似デバイスの作成も可能だ。
|
|