![]() |
![]()
ホーム > TCP/IP技術(4) > TCP/UDP - ウインドウサイズを利用したフロー制御
マスタリングTCP/IP 応用編
入門編を卒業したらこちら。
応用編も入門編と同様に豊富な図を使用し、TCP/IPに関するさらに詳細な解説を記している。
特にパッケットの構造はかなり詳細に解説しており、初心者にはすこしつらいかもしれないが非常に読みやすいのでぜひ読んでみてほしい。
詳解TCP/IP〈Vol.1〉プロトコル
これも 必読中の必読書。
TCP/IPアーキテクチャを、実際にネットワークを組んで通信の動きを観察するという方法で書かれている。
本書に構成されているネットワークは単純なので、実際に同じ構成を組んで実機をいじりながら読み進めると非常に効果的に学ぶことが出来ると思います。
TCP では信頼性を向上させるために以下の 3 つの技術を採用しています。
今回は最後の「ウインドウサイズを利用したフロー制御」について
解説していきましょう。
3 ウェイハンドシェイクで仮想コネクションを確立し、
データの送信中は ACK パケットを使用して到達確認を実施する。
これだけでも、かなりの信頼性向上になっているわけですが、
TCP ではさらにもう 1 つの機能を利用して信頼性向上を図っています。
それは送信するデータ量。
以下のように送信側ノードがむやみにデータを送信した場合、
受信側ノードのデータ処理能力が低く、すべてのデータを受信できない
可能性が発生してしまいます。
このような状態が続けば、当然通信の信頼性は落ちてしまいます。
そのため受信側ノードの処理能力を考慮しつつ、最適なデータサイズを
送信する機能が必要になります。
この機能を「フロー制御」と呼びます。
送信するデータのサイズは、何の情報で最適化されるのでしょうか?
それは「ウィンドウサイズ」を使用して最適化を行っています。
一度に受信できるデータのサイズを「ウインドウサイズ」と呼び、
送信側ノードは受信側ノードあら通知されるウインドウサイズに
従って、送信するデータのサイズを調整しています。
受信側ノードがどのようにウインドウサイズを通知するかと
いいますと、データを受信するたびに返信する ACK パケットに
ウインドウサイズを盛り込んで通知しているのです。
もし、受信側で処理できなくなった場合は、ウインドウサイズを「0」
にして ACK パケットを送信します。
すると、送信側ノードはデータの送信を中断します。
受信側ノードでデータ受信が出来る状態になると、改めて ACK パケット
を送信することで、データ送信が再開されます。
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓
トランスポート層(レイヤ 4)の役割
トランスポート層(レイヤ 4)の役割について
ポート番号
ポート番号について
コネクションとコネクションレス
コネクションとコネクションレスについて
UDP
UDPについて
TCP ヘッダ
TCP ヘッダについて
仮想コネクションの確立
TCP ヘッダについて
ACK による到達確認
TCP ヘッダについて
ウインドウサイズを利用したフロー制御
TCP ヘッダについて
TCPウインドウ制御
TCPウインドウ制御とスライディング・ウインドウについて