1. 程式人生 > 其它 >5.5 TCP流量控制&擁塞控制【重點】

5.5 TCP流量控制&擁塞控制【重點】

5.5 TCP流量控制&擁塞控制【重點】

流量控制:讓傳送方慢點,要讓接收方來得及接收。

流量控制原理——滑動視窗機制

  • 在通訊過程中,接收方根據自己接收快取的大小,動態地調整發送方的傳送視窗大小

  • 即接收視窗rwnd (接收方 設定確認報文段的視窗欄位來將rwnd通知給傳送方)

  • 傳送方的傳送視窗大小取值為 min{接收視窗rwnd,擁塞視窗cwnd}

例子

A向B傳送資料,連線建立時,B告訴A:“我的rwnd=400(位元組)”,設每一個報文段100B,報文段序號初始值為1。

  • TCP為每一個連線設有一個持續計時器,只要TCP連線的一方收到對方的零視窗通知【rwnd=0】,就啟動持續計時器。
  • 若持續計時器設定的時間到期,就傳送一個零視窗探測報文段。 接收方收到探測報文段時給出現在的視窗值。
  • 若視窗仍然是0,那麼傳送方就重新設定持續計時器。

TCP擁塞控制

出現擁塞的條件: 對資源需求的總和 > 可用資源

擁塞控制: 防止過多的資料注入到網路中。 (防止網路效能變壞)

擁塞控制的四種演算法

  • 慢開始
  • 擁塞避免
  • 快重傳
  • 快恢復

假定:
1.資料單方向傳送,而另一個方向只傳送確認

⒉接收方總是有足夠大的快取空間,因而傳送視窗大小取決於擁塞程度

傳送視窗=Min{接收視窗rwnd,擁塞視窗cwnd}

接收視窗:接收方根據接受快取設定的值,並告知給傳送方,反映接收方容量。

擁塞視窗:傳送方根據自己估算的網路擁塞程度而設定的視窗值,反映網路當前容量。

慢開始和擁塞避免

一個傳輸輪次: 傳送了一批報文段並收到它們的確認的時間。

階段

慢開始階段:第n輪次,其擁塞視窗cwnd就是2^n【n是從開始那一刻算0起始,n++】

擁塞避免階段:24/2=12得到新的ssthresh值,即網路擁塞時的最大視窗數量/2,得到新的最大值。

重複下一回合——

慢開始階段

擁塞避免階段

快重傳和快恢復

慢開始階段:第n輪次,其擁塞視窗cwnd就是2^n

快恢復:從新的ssthresh值開始,加法增大,cwnd++

擁塞避免階段:24/2=12得到新的ssthresh值,

重複下一回合——