5.5 TCP流量控制&擁塞控制【重點】
阿新 • • 發佈:2022-03-13
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值,
重複下一回合——