TCP/UDP - TCPウインドウ制御

 

ウインドウ制御

TCP ではデータを送信するたびに、ACK による確認応答が必要になるため、
送信するパケットが多ければ通信性能が悪くなってしまいます。

これを解決するための機能がウインドウ制御という機能です。

ウインドウ制御とは「ウインドウ」といわれるバッファを用意して、
大きな単位でデータを転送することで、効率化を実施します。

この「ウインドウ」の大きさを「ウインドウサイズ」といいます。
受信側ノードは送信側ノードにスリーウェイハンドシェイクを実施した時に
ウインドウサイズを伝えます。

もちろん前回説明しましたが、通信の最中にこのサイズは変化します。

□ウインドウサイズを利用したフロー制御

 

ウインドウ制御が無い場合

まず、ウインドウ制御が無い場合のやりとりを見てみましょう。

以下の図のようにウインドウ制御が無い場合は、データを送るごとに ACK
による確認応答を受信するのを待ってから次のデータを送信していきますので、
通信性能がどうしても悪くなってしまいます。

 

ウインドウ制御が無い場合

 

ウインドウ制御がある場合

逆にデータをまとめてより大きなサイズの単位で一度に
転送してしまえば、通信効率が高まります。

 

ウインドウ制御がある場合

 

インドウ制御は送信側ノード、受信側ノードがそれぞれ用意した容量に
納められるだけのデータをまとめて転送します。

受信側ノードでは、受信したデータを順次処理していき、受信できた
セグメントの情報をまとめて ACK による確認応答を送信側ノードへ
送信します。

送信側ノードでは、ACK を確認しながら、欠落したデータの再送を行います。

 

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

ウインドウ制御でデータをまとめて転送し、Ack の返答があったら
転送したセグメントをウインドウの外に出し、次に転送するセグメントを
ウインドウに入れていきます。

 

Highslide JS

 

このような動作を、ウインドウがスライドしていくように動作することから、
「スライディング・ウインドウ」と呼びます。

 

関連記事

トランスポート層(レイヤ 4)の役割
トランスポート層(レイヤ 4)の役割について

ポート番号
ポート番号について

コネクションとコネクションレス
コネクションとコネクションレスについて

UDP
UDPについて

TCP ヘッダ
TCP ヘッダについて

仮想コネクションの確立
TCP ヘッダについて

ACK による到達確認
TCP ヘッダについて

ウインドウサイズを利用したフロー制御
TCP ヘッダについて

TCPウインドウ制御
TCPウインドウ制御とスライディング・ウインドウについて

メールマガジン

ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!

「初心者にも理解できるネットワーク技術」

これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。

もちろん無料です!!

↓メールマガジン購読はこちら↓

メールアドレス: