フロー制御のためにどのようにTCPトランスポートプロトコル?

フロー制御のためにどのようにTCPトランスポートプロトコル?

TCPフロー制御は、データ受信機は簡単にTCPコネクションの終了上のデータ伝送のためのフロー制御を実装することができスライディングウィンドウメカニズムを使用して、受信する時間を持っていたように、伝送速度のデータ送信端が、速すぎないようにするために、単純です。受信端末でデータを転送するためにデータを理解する:バイトではなく、セグメントにおけるTCPウィンドウ、送信端のデータ伝送ウィンドウ受信側の受信ウィンドウの値を超えることはできないが与えられ、流量制御機構は、パケット損失率、主な目的を制御することです現在の受信能力の終了、伝送速度を柔軟に調整することができます。フロー制御機構を以下に示します。

フロー制御のためにどのようにTCPトランスポートプロトコル?

スライディングウィンドウ:

TCPは、可変サイズのスライディングウィンドウを使用して、フロー制御、バイト単位のウィンドウ・サイズ。

接続が確立されたとき、両方のデータ伝送ウィンドウが合意しました。しかし、通信の過程で、データを動的にいつでも互いに送信ウィンドウサイズを調整し、独自のリソースに応じて受信側。スライディングウィンドウの例を以下に示します。

フロー制御のためにどのようにTCPトランスポートプロトコル?

その理由をご紹介し、ウィンドウをスライディング:

私たちは、バッファ・ウィンドウ(ただし、いくつかのウィンドウやバッファではなく、同じ)として理解することができます。

これらの「窓」がなければ、その後、それぞれのデータを送信した後、TCPはデータ受信が承認した後、次のデータを送信する前に待機しなければならないので、TCP輸送効率が低すぎるん。

送信側は、Xがそうに受け入れられる許容範囲内であれば、データは、受信側のプロファイルデータを受信したX番目のセグメントに送信されると仮定すると、確認応答がデータを送信するために待機し続けると溶液があります。これは、ウィンドウ(バッファ)が導入された理由です。

スライディングウィンドウ:

、Xは、画面データ受信
端末のバッファサイズを受信します。送信者に送信されたパケットのTCPヘッダ内の受信側ウィンドウのフィールドに、このウィンドウ値。

B、Yは、輻輳ウィンドウ
送信側のバッファサイズ

C、Zデータ伝送ウィンドウ
送信ウィンドウ最小=の上限値[X、Y]
①X <Y、端末が最大受信伝送ウィンドウ制限データを受信することができます。
②Y <時間X、制限は最大データ伝送ネットワーク輻輳ウィンドウである場合。

ウィンドウはじめスライディング例:

ウィンドウサイズ不変ながら、データ送信側は、データの400のバイトを送信するが、受信した確認応答データの最初の200バイトました。また、300のバイトを送信することができます。

フロー制御のためにどのようにTCPトランスポートプロトコル?

データの最初の400バイトのデータ送信受信確認が、データ伝送ウィンドウの他端通知の他端は、400のバイトまで低減しなければなりません。今まではデータ送信端末は、データの400のバイトを送信することができます。

ウィンドウの需要知識ポイントをローリング:

、あなたは、データ受信バッファサイズを通知ACKを介してデータ送信側に、TCPヘッダ「ウィンドウサイズ」フィールドに配置されます受け入れることができます。

B、大きなウィンドウサイズフィールド、ネットワークのスループット

Cは、ウィンドウサイズが、それは受信側応答データを必要としないと言うことで、肯定応答を待たずに最大値であり、データを送信し続けることができる、データを連続的に送信されます。

D、ウィンドウをスライディング、オペレーティングシステムのカーネルを維持するために、あなたは何も答えはありませんどのようなデータだけでなく、電流を記録するために、送信バッファを開放する必要がある、唯一確認されたデータの応答がバッファから削除されなければなりませんでした。PS:送信バッファが大きすぎると、スペースのオーバーヘッドが発生します。

Eは、受信側のデータが一度自分のバッファがほぼ満杯である、それはデータ送信側に通知小さな値にウィンドウのサイズを設定し、見つかった後、送信側は、データ値を受信し、自身の送信速度が遅く。

F.は、受信側のデータバッファが一杯になった自分を発見した場合、ウィンドウサイズは、データ伝送がもはやデータ端末を送信している、0に設定されますが、データは、サイドウィンドウを受信するように、周期的なウィンドウプローブセグメントを送信する必要がありますサイズデータ送信側に伝えます。

PS:TCPヘッダに、ウィンドウサイズ情報を格納するために使用されるフィールドの窓16があります。

TCPセグメントの送信タイミングの選択

。1、TCPはバッファに格納されたデータはMSSバイトが送信されたTCPセグメントに組み立てられる達する限り、最大セグメントサイズMSSに等しい変数を維持します。

図2は、クレーム送信側で指定されたアプリケーションによって、すなわち、TCPは、プッシュ動作をサポートし、セグメントを送信します。

3、送信者にタイマー期間で、その後、送られた現在の既存のキャッシュデータセグメントに置きます。

おすすめ

転載: blog.51cto.com/13609234/2429763