 |
|  |
◆TCPの制御(フロー制御・ウィンドウサイズ)その1
※動作確認は、Cisco2500、Cisco1710、Cisco1720、Cisco1721、Cisco2611、Cisco2650、Cisco3620シリーズのルータ、Catalyst2900、Catalyst2950シリーズのスイッチなどで確認しています。コマンド、出力結果、動作は、機種、IOSのバージョンで異なる場合があります。
資格取得が就職、転職、派遣に有利なのは確かですが、「資格=即戦力」とは言えません。実機を操作して資格取得と同時に就職・転職・派遣後に求められるエンジニア(仕事・ジョブ・ワークの達人)としての即戦力を養いましょう。
◆TCPの制御(フロー制御・ウィンドウサイズ)その1
TCPによる通信では、送信側がセグメントを送信し、そのセグメントを受信側が受信すると必ずACKの応答を返すようになっています。
受信側の応答には、期待する次のシーケンス番号(受信したセグメントのシーケンス番号+1)を返すようになっています。
つまり、
「今までの分は、ちゃんと受信できているので、次のセグメントを送って下さい。」
という意味になります。
TCPにおけるフロー制御は、ウィンドウサイズで実現しています。ウィンドウサイズによって一度に送信できるセグメントの数が決まります。TCPでは、一度に送受信するセグメントの数をコントロールすることで、フロー制御を行っています。
もう少し、詳しく説明すると、ウィンドウサイズは、通信相手のバッファ量を指します。受け取ったデータは、一時的にバッファに溜められます。
データ転送が早いと、すぐにバッファは一杯になり、溢れ出してしまいます。そして、パケットは破棄されることになります。
つまり、ウィンドウサイズまでのデータは、一度に送っても相手はオーバフローしないことになります。
TCPの通信では、スリーウェイハンドシェイクのコネクションの確立時に、シーケンス番号、確認応答番号の他に、ウィンドウサイズ(自分のバッファのサイズ)やMSSもお互いに教え合っています。
この教えられたウィンドウサイズとMSSから、一度に送信できるセグメント数を求めることができます。
TCPでは、一度に送受信するセグメントの数をコントロールすることで、フロー制御を行っています。
まずは、一度に送ることが可能なセグメント数が「1」の時のフロー制御を説明してゆきます。
例えば
ウィンドウサイズ = 1000
MSS = 1000
の場合、一度に送ることが可能なセグメント数は、「1」になります。
上の図を見れば分かるように、1セグメントを送信する度に、確認応答を行っています。個々のパケットに対してACKの応答を待ってからでないと、次のセグメントを送信できません。
これだと、確かに確実に相手に届けることができますが、手間がかかりすぎてオーバヘッドが高くなってしまいます。
もっと、効率よく送信しないと時間がかかり過ぎてしまいます。
効率よく送信するには、個々のセグメントの対するACKの応答を待ってから次のセグメントを送信するのではなく、ACKの応答を待たないで一度に複数のセグメントが送信できるようになっています。
次の「TCPの制御(フロー制御・ウィンドウサイズ)その2」では、一度に複数のセグメントを送信する場合におけるやり取りの流れを説明してゆきます。
「TCPの制御(スリーウェイハンドシェイクの手順)」 ← 前項 | 次項 → 「TCPの制御(フロー制御・ウィンドウサイズ)その2」
<ネットワーク資格の練習問題に挑戦> ●CCNA練習問題に挑戦!(650問)
●Network+練習問題に挑戦!(393問)
●テクニカルエンジニア(ネットワーク)試験
◆Cisco実機で学ぶ(CCNAスイッチ編) |
 |
|
<関連メニュー> ●CCNA実機で学ぶ
●CCNP実機で学ぶ
●CCENT(ICND1)実機で学ぶ
●SDMで設定する(Cisco実機で学ぶ)
●CCENT・CCNA無線実機で学ぶ
●アライドテレシス実機で学ぶ
●TCP/IP入門・無料ネットワークツール
●PLCでホームネットワーク構築
|
|
 |