天天看點

滑動視窗和擁塞視窗簡述

1、滑動視窗

滑動視窗協定是傳輸層進行流控的一種措施,接收方通過通告發

送方自己的視窗大小,進而控制發送方的發送速度,進而達到防止發送方發送速度過快而導緻自己被淹沒的目的。

​​

滑動視窗和擁塞視窗簡述
滑動視窗和擁塞視窗簡述

tcp的滑動視窗解決了端到端的流量控制問題,允許接受方對傳輸進行限制,直到它擁有足夠的緩沖空間來容納更多的資料。

2、擁塞視窗

擁塞視窗也看做是發送端用來進行流量控制的視窗。

但是,實際上,tcp還必須應付網際網路中的擁塞現象。擁塞是指一個或者多個交換點的資料報超載而導緻時延劇烈增加的現象。為了控制擁塞,tcp使用了第二個視窗限制,即擁塞視窗限制。對于擁塞視窗大小的限制采用慢開始和乘法減小兩種技術。

乘法減小的擁塞避免政策:一旦發現封包段丢失,就把擁塞視窗的大小減半(直到減至最小的視窗,視窗中應至少包含一個封包段)。

慢開始恢複:擁塞視窗随着一個确認的到達,擁塞視窗的大小每次增加一個封包段。

3、小結

慢啟動為發送方的tcp增加了另一個視窗:擁塞視窗(congestion window),記為cwnd。當與另一個網絡的主機建立tcp連接配接時,擁塞視窗被初始化為1個封包段(即另一端通告的封包段大小)。每收到一個ack,擁塞視窗就增加一個

封包段(cwnd以位元組為機關,但是慢啟動以封包段大小為機關進行增加)。發送方取擁塞視窗與通告/滑動視窗中的最小值作為發送上限。擁塞視窗是發送方使用的流量控制,而通告/滑動視窗則是接收方使用的流量控制。

發送方開始時發送一個封包段,然後等待ack。當收到該ack時,擁塞視窗從1增加為2,即可以發送兩個封包段。

當收到這兩個封包段的ack時,擁塞視窗就增加為4。這是一種指數增加的關系。