什么是網絡擁塞?
網絡擁塞是數據鏈路層、網絡層、傳輸層都會考慮的問題。與流量控制相比,是全局的概念,流量控制是針對點對點的,二網絡擁塞可能是大量的發送消息來不及處理,導致網絡性能下降。
嚴重時甚至導致網絡通信業務陷入停頓,即出現死鎖現象。
判斷網絡是否進入擁塞狀態的方法?
網絡負載增加,但是網絡的吞吐量明顯小於正常的吞吐量。
網絡擁塞的原因?
1)大量分組涌入,到達同一個分組。
2)路由器處理比較慢,存在大量的緩沖區排隊。
防止擁塞的方法
1)數據鏈路層:停止-等待協議,滑動窗口協議。
2)網絡層:
3)傳輸層:
TCP擁塞控制的算法
慢開始,擁塞避免,快重傳,快恢復。
慢開始
TCP剛連接好並開始發送TCP報文段時,先令擁塞窗口 cwnd = 1。
然后每經過一個RTT,cwnd就會加倍,指數式增長,直到達到慢開始門限。
擁塞避免
每經過一個RTT,cwnd就會增加一個 MSS,線性增加。
超時,慢開始門限減半,(乘法減少)
網絡擁塞的處理
發生超時的時候,擁塞窗口 cwnd = 1,慢開始門限減半為發生擁塞時的擁塞窗口。
快重傳
更早地重傳丟失的報文段。發送方連續收到三個重復的ACK報文(失序),可以認為網絡可能已經出現了擁塞,直接重傳不必等待重
傳計時器超時。
快恢復
發送方連續收到三個重復的ACK報文,cwnd = 1/2(發生擁塞的擁塞窗口),窗口線性增加。
總結:
慢開始和擁塞避免是針對超時;收到冗余ACK,采用快重傳和快恢復。