主な違い: フロー制御は送信側と受信側の間のレートの不一致の問題を解決し、輻輳制御はネットワーク リソースの枯渇を回避するという問題を解決します。フロー制御はスライディング ウィンドウを通じて実装され、輻輳制御は輻輳ウィンドウを通じて実装されます。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
関連する推奨事項: 「プログラミング教育」
フロー制御と輻輳制御の違い
TCP フロー制御と輻輳制御は比較的似た概念であるため、混同されやすいようです。しかし実際には、彼らが望む目標や方法はまったく異なります。
フロー制御は、送信者と受信者の間のレートの不一致の問題を解決します。送信者の送信が速すぎると、受信者はそれを受信して処理する時間がなくなります。使用されるメカニズムはスライディング ウィンドウ メカニズムで、送信されても確認されないパケットの数を制御します。
輻輳制御は、ネットワーク リソースの枯渇を防ぐという問題を解決します。自律的に回避策を講じることで、誰もが限られたネットワーク リソースの枯渇を回避できます。パケットロスが発生した場合、送信レートを制御してネットワーク負荷を軽減します。
フロー制御
ウィンドウ サイズは、特定の接続通信プロセス中は変更されません。スライディングウィンドウは仕組みであり、スライディングウィンドウのサイズは送信側で送信できるデータのサイズと受信側で受信できるデータのサイズを表し、動的に変化します。
#輻輳制御
拡張情報
フロー制御メカニズム:
輻輳制御メカニズム:
スロースタートと輻輳回避メッセージセグメントの送信速度は、受信側の受信能力とネットワークの輻輳を引き起こさないことを総合的に考慮して決定する必要があり、受信ウィンドウと輻輳ウィンドウの2つの状態量によって決定されます。受信者ウィンドウ (受信者ウィンドウ) は、アドバタイズド ウィンドウとも呼ばれ、現在の受信バッファ サイズに基づいて受信者によって約束された最新のウィンドウ値であり、受信者からのフロー制御です。輻輳ウィンドウ cwnd (Congestion Window) は、ネットワークの輻輳レベルを推定して送信側が設定するウィンドウ値であり、送信側からのフロー制御です。
スロースタート原則:
#1) ホストがデータの送信を開始すると、より大きな送信ウィンドウのすべてのデータ バイトが直ちにネットワークに注入される場合場合、ネットワークの状況が明確ではないため、ネットワークの輻輳が発生する可能性があります。
2) より良い方法はテストすることです。つまり、送信者の輻輳制御ウィンドウの値を小さい到着から徐々に増加させます
3) 通常、メッセージ セグメントの送信を開始するときは、まず輻輳ウィンドウ cwnd を最大のメッセージ セグメントの MSS の値に設定します。新しいメッセージ セグメントの確認が受信されるたびに、輻輳ウィンドウは最大 1 MSS 値ずつ増加します。rwind が十分に大きい場合、輻輳ウィンドウ cwind の増大がネットワークの輻輳を引き起こすのを防ぐために、別の変数が必要です。 ssthresh
輻輳制御の具体的なプロセスは次のとおりです:
1) TCP 接続の初期化、輻輳ウィンドウを 1 に設定します
2) 実行が遅い アルゴリズムを開始すると、cwind == ssthress が輻輳回避アルゴリズムの実行を開始するまで、cwind は指数関数的に増加し、cwnd は線形に増加します
3) ネットワーク内で輻輳が発生すると、ssthresh 値を次のように更新します。輻輳前の ssthresh 値の半分 cwnd を 1 にリセットし、手順 (2) に従います。
高速再送信と高速リカバリ
TCP 接続は、再送信タイマーの期限が切れるのを待っているため、長時間アイドル状態になることがあります。低速開始と輻輳回避では、この問題を十分に解決できません。問題、したがって、高速再送信と高速回復を備えた輻輳制御方法が提案されています。
高速再送信アルゴリズムは再送信メカニズムをキャンセルしませんが、場合によっては失われたメッセージ セグメントをより早く再送信します (送信者が 3 回繰り返される確認 ACK を受信した場合、パケットが失われた場合、失われたセグメントは失われると判断されます)。再送信タイマーの期限が切れるのを待たずに、すぐに再送信されます)。スロー スタート アルゴリズムは、TCP が確立されている場合にのみ使用されます。
高速回復アルゴリズムには、次の 2 つの重要なポイントがあります:
1) 送信者が 3 回連続して重複確認を受信すると、「乗算削減」アルゴリズムを実行し、スロー スタートしきい値を半分にします。これはネットワークの輻輳を防ぐためです。
2) 送信側は、ネットワークがおそらく混雑していないと考えているため、スロー スタート アルゴリズムを実行せず、代わりに、cwnd 値をスロー スタートしきい値が半分になった後の値に設定します。次に、輻輳回避アルゴリズムの実行を開始し、輻輳ウィンドウが直線的に増加します。
概要:
最初の 2 つのアルゴリズムは輻輳が発生する前に使用され、後の 2 つのアルゴリズムは輻輳が発生した後 (つまり、確認が 3 回繰り返された後) に使用されます。
さらに関連記事を読みたい場合は、PHP 中国語 Web サイト にアクセスしてください。 !
以上がフロー制御と輻輳制御の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。