TCP擁塞控制 快重傳和快恢復

2021-08-07 07:36:52 字數 1246 閱讀 3477

1、快重傳

快重傳演算法首先要求接收方每收到乙個失序的報文段就立即發出重複確認(為的是使傳送方及早的知道有報文段沒有到達對方)而不要等到自己傳送資料時才捎帶確認。

快重傳演算法規定,傳送方只要一連收到三個重複確認就應當立即重傳對方尚未收到的報文段,而不必繼續等待為其設定的重傳計時器到期。

2、快恢復

(1)當傳送方連續收到三個重複確認時,就執行「乘法減小」演算法,把慢開始門限減半。這是為了預防網路發生擁塞,但不執行慢開始演算法。

(2)由於傳送方現在認為網路很可能沒有發生擁塞(如果網路發生了嚴重擁塞,就不會一連有好幾個報文段連續到達接收方,也就不會導致接收方連續傳送重複確認)。因此與慢開始不同之處就是現在不執行慢開始演算法(即擁塞視窗現在不設定為1)而是把擁塞視窗的值設定為慢開始門限減半後的值,然後開始執行擁塞避免演算法(「加法增大」),使擁塞視窗緩慢地線性增大。

注意:有的快重傳實現是把開始時的擁塞視窗cwnd值再增大一些(增大3個報文段),即等於ssthresh + 3*mss這樣做的理由是:既然傳送方收到三個重複的確認,就表明有三個分組已經離開了網路。這三個分組不再消耗網路資源而是停留在接收方的快取中。可見現在網路中並不是堆積了分組而是減少了三個分組。因此可以適當把擁塞視窗擴大些。

當採用快恢復演算法時,慢開始演算法只是在tcp連線建立時和網路超時時才使用。

實際上接收方的快取空間總是有限的,接收方根據自己的接收能力設定了接收視窗rwnd,並把這個視窗值寫入tcp首部中的視窗字段,傳送給傳送方。因此,從接收方對傳送方的流量控制的角度考慮,傳送方的傳送視窗一定不能超過對方給出的接收視窗值rwnd.那麼,傳送方的視窗的上限值應當取為接收方視窗rwnd和擁塞視窗cwnd這兩個變數中較小的乙個。

傳送方視窗的上限值 = min [rwnd  ,cwnd]

當rwnd < cwnd 時,是接收方的接收能力限制傳送方視窗的最大值

當rwnd > cwnd 時,則是網路的擁塞限制傳送方視窗的最大值

34 tcp擁塞控制 快重傳和快恢復

前面講的慢開始演算法和擁塞避免演算法是tcp擁塞控制早期使用的演算法,後來又增加了快重傳和快恢復這兩個演算法。考慮這麼一種情況 假設現在網路沒有發生擁塞,但是傳送方傳送的個別資料報卻在網路中某一處丟失了,而此時傳送方的超時計時器超時了,又沒有收到確認,在這種情況,tcp擁塞控制會誤認為出現網路擁塞,...

TCP擁塞控制 慢開始 擁塞避免 快重傳 快恢復

計算機網路中的頻寬 交換結點中的快取和處理機等,都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就會變壞。這種情況就叫做擁塞。擁塞控制就是防止過多的資料注入網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制是乙個全域性性的過程,和流量控制不同,流量...

TCP擁塞控制 慢啟動 擁塞避免 快重傳 快啟動

一般原理 發生擁塞控制的原因 資源 頻寬 交換節點的快取 處理機 的需求 可用資源。作用 擁塞控制就是為了防止過多的資料注入到網路中,這樣可以使網路中的路由器或者鏈路不至於過載。擁塞控制要做的都有乙個前提 就是網路能夠承受現有的網路負荷。對比流量控制 擁塞控制是乙個全域性的過程,涉及到所有的主機 路...