グラフィック輻輳制御、輻輳制御、これは最もユーザーフレンドリーな製品の話でなければなりません

あなたが聞いたことが輻輳制御フロー制御、確実に輻輳制御を区別し、フロー制御、その後、同じものとして扱うないかもしれないいくつかの人があります。輻輳制御と非常に類似しながら、フロー制御の動作が、輻輳制御とに関連するネットワークの混雑状況は、受信側バッファ状態とフロー制御は、関連付けられています。

換言すれば、輻輳制御及びフロー制御が取ら完全に異なる質問の尺度です。今日は、この記事では、我々は、輻輳制御しようとします。

まず、なぜ輻輳制御?

便宜上、我々は、送信データにホストBにホストAと仮定します。

送信者はACKの受信者からのフィードバックをもらっていない場合、我々は、データパケットの送信時に、その二つのホストを知って、送信者は、失われたパケットを再送信し、それが失われたパケットを送信すると思われます。

しかし、実際の状況は、この時点であまりにも多くのホスト・チャネル・リソースは、その結果、使用されることが可能であるネットワークの輻輳送信データパケットAが途中で立ち往生しながら、到達B.における遅延がありません このとき誤っは、パケット損失は、パケットの再送信を生じます。

結果だけでなく、チャネル資源の無駄ですが、また、ネットワークをより混雑します。したがって、我々はする必要が輻輳制御

第二に、どのようにネットワークの輻輳を知っていますか?

AとBが接続を確立した後、それはBにデータを送信することができますが、今回は、この時点でネットワークの輻輳は、Aは、私たちも入れてどのくらいの優れたデータパケットの1回連続送信を知らないのか分かりません連続と呼ばれる送信パケットの使い捨て数輻輳ウィンドウは、Nこの時間は、輻輳ウィンドウバーのサイズを表します。

ネットワークの輻輳を検出するために、我々は以下の取ることができます2つの戦略を

パケットは、タイムアウトイベントが発生しない場合には1が、最初(で、パケットロス)、次のパケットのテストを送信します。その後、イベントまたはタイムアウトが発生していない場合、送信2、上の次の送信は、次の3つを送信する、というように、すなわち、N = 1、2、3、4、5 .....

ここに画像を挿入説明
あなただけの1の送信を開始することができますので、2、一つずつ、増加は、タイムアウトが発生していない場合、あなたはまだ8そして、イベントが4送信されて送信されていない場合は...ターンで、それは、2を送信し、遅すぎます類推倍高速、すなわちN = 1、2、4、 8、16 ...
ここに画像を挿入説明
第一の方法または第二の方法のいずれかで、最終的に表示されたボトルネック値しかし、ここでそれは最初のケースの成長率が速すぎる、成長率は少し遅いですが、指数関数的な成長を有する第二の場合、あなたはボトルネックの値に突然かもしれないことは注目に値します。

速すぎて遅すぎるか、この問題を解決するために、私たちは一緒に第一及び第二の方法を置くことができます。言い換えれば、私達はちょうど一定の値に、指数関数的な速度で成長し始めることができ、我々は、この値を呼び出すしきい値の代わりに変数SSTHRESHを使用しての、それのを。しきい値がに増加すると、我々は指数関数的に増大ではなく、直線的な成長はありません。

最終的な戦略ので:前指数成長、成長の線速度で、しきい値に達した後

ここに画像を挿入説明
(注:実際には、8本のストレートの後、少しだけそこに曲げます)

我々はまた呼ばれる指数増殖期入れスロースタート、として知られている線形成長段階輻輳回避を

第三に、どのようにボトルネック値の後に行うには?

それが成長または増殖インデックスがあるかどうか、最終的にはあるでしょうタイムアウトイベント、合計は、それが無限に増殖することができません。タイムアウトイベントが発生した場合、我々はこの時点で、ネットワークの輻輳があったことを信じているし、成長し続けることができません。私たちは、と呼ばれ、この時点でNの値を入れてボトルネック値手紙最大であるMAXの代わりにそれを使用して、それ。

ここに画像を挿入説明
注:ここで再びしきい値が線形成長した後、私は原因を描くので、数字曲がった理由が理由です思い出しました

最大値MAXに達した後、どのように我々はそれを行うことができますか?

我々が取った政策の最大値に達した後、これは次のとおりです。

我们就回到最初的最初的状态,也就是说从1,2,4,8.....开始,不过这个时候我们还会把ssthresh调小,调为MAX值的一半,即ssthresh = MAX / 2。

ここに画像を挿入説明
图中阈值为8,瓶颈值是14;超时事件发生后,阈值为14 / 2 = 7。

四、超时事件就一定是网络拥塞?

超时事件发送就一定是网络出现了拥堵吗?其实也有可能不是出现了网络拥堵,有可能是因为某个数据包出现了丢失或者损害了,导致了这个数据包超时事件发生了

为了防止这种情况,我们是通过冗余 ACK来处理的。我们都知道,数据包是有序号的,如果A给B发送M1, M2, M3, M4, M5...N个数据包,如果B收到了M1, M2, M4....却始终没有收到M3,这个时候就会重复确认M2,意在告诉A,M3还没收到,可能是丢失
ここに画像を挿入説明
当A连续收到了三个确认M2的ACK,且M3超时事件还没发生。A就知道M3可能丢失了,这个时候A就不必等待M3设置的计时器到期了,而是快速重传M3。并且把ssthresh设置为MAX的一半,即ssthresh = MAX/2,但是这个时候并非把控制窗口N设置为1,而是让N = ssthresh,N在一个一个增长。
ここに画像を挿入説明

我们也把这种情况称之为快速恢复。而这种具有快速恢复的TCP版本称之为TCP Reno

还有另外一种TCP版本,无论是收到三个相同的ACK还是发生超时事件,都把拥塞窗口的大小设为1,从最初状态开始,这种版本的TCP我们称之为TCP Tahoe

最后

偷偷透露一下,由于第一次画这种图,这几个图画了差不多两个小时,也是醉了。

有收获?希望老铁们来个三连击,给更多的人看到这篇文章

1は、親指、より多くの人がこの記事を見ることができるので、

図2に示すように、「元のマイクロチャネルパブリック番号懸念コード農家を強制的に硬い、およびアルゴリズム(システム+データベース+ Linuxで動作するコンピュータネットワーク+)コンピュータの基本的な知識を統合するために、」最近、マイクロチャネルパブリック番号を開いた「ハードコード農家を強制する」センス利害関係者は、アルゴリズムの関連記事、喜喜を強調するために集中することができます。背景返信「電子書籍含むあなたの電子書籍まくるの選択を送信するために」、高品質の電子書籍のスキルのすべての種類を

おすすめ

転載: www.cnblogs.com/kubidemanong/p/12048297.html