基礎から学ぶ ネットワーク塾 > TCP/IP入門 > TCPの制御(フロー制御・ウィンドウサイズ)その2

 ネットワーク書籍
基礎から学ぶ ネットワーク塾
◆TCPの制御(フロー制御・ウィンドウサイズ)その2

※ネットワークの学習は、TCP/IPを学ぶことから始めることをオススメします。TCP/IPは、今日のLANやインターネットを支えている重要な技術になっています。ここでは、これからネットワークを学ぼうとする方に必要なネットワークの用語やテクノロジーの紹介、そして、TCP/IPプロトコルの基礎知識を中心に説明してゆきます。


◆TCPの制御(フロー制御・ウィンドウサイズ)その2

 「TCPの制御(フロー制御・ウィンドウサイズ)その1」では、一度に送ることが可能なセグメント数が「1」の時のフロー制御を説明しました。

ここでは、一度に複数のセグメントを送信する場合におけるやり取りの流れを説明してゆきます。

 スリーウェイハンドシェイクのコネクションの確立時には、シーケンス番号、確認応答番号の他にウィンドウサイズ(自分のバッファのサイズ)やMSSもお互いに教え合っています。

例えば、受信側のウィンドウサイズとMSSの値が以下の場合

ウィンドウサイズ = 3000
MSS = 1000

一度に送ることが可能なセグメント数は、「3」になります。


 送信側が、セグメントの1、2、3を連続して送信しています。送信側は、パケット3の応答の「ACK=4」を受信すると、今度は、連続してセグメントの4、5、6を連続して送信します。
※実際には、受信側が報告してくるウィンドウサイズで変わってきます。

 個々のセグメントの対するACKの応答を待ってから、次のセグメントを送信するのではなく、一度に複数のセグメントが送信することで効率性を高めています。

 このようにTCPにおける通信では、ACKの応答を待つことなく一度に複数のセグメント送信することで、フロー制御を行っています。

 一度に送信できるセグメント数は、ウィンドウサイズによって決まります。このウィンドウサイズは、いつも同じ値というわけではありません。相手先のバッファサイズによって増減します。

 受信側のバッファサイズは、セグメントを受信すると小さくなりますし、処理が完了すると空き容量が増えてバッファサイズが大きくなります。

 送信側は、次に、どのセグメントをどれぐらいの数で送信すればよいのかを管理する必要があります。そうしなければ、たくさんのセグメントを送信して受信側のバッファをあふれさせてしまいかねませんし、逆に送信するセグメント数が少なすぎると効率が悪くなってしまうからです。

 そこで、TCPでは、次にどのセグメントをどれぐらい送信すればよいのかということを管理するためにスライディングウィンドウという仕組みを使っています。

次の「TCPの制御(スライディングウィンドウ)」では、スライディングウィンドウについて説明してゆきます。

TCPの制御(フロー制御・ウィンドウサイズ)その1」 ← 前項 | 次項 → 「TCPの制御(スライディングウィンドウ)




Copyright(c)2006- 基礎から学ぶ ネットワーク塾 All rights reserved.