计算机网络之传输层:7、TCP拥塞控制
傳輸層:7、TCP擁塞控制
- TCP擁塞控制:
- 擁塞控制算法:
- 慢開始和擁塞避免:
- 快重傳和快恢復:
- TCP擁塞控制算法綜合:
TCP擁塞控制:
擁塞控制算法:
發送方維持一個叫做擁塞窗口(cwnd) 的狀態變量,擁塞窗口的大小取決于網絡的擁塞程度,并且動態的變化著,發送方讓自己的發送窗口等于擁塞窗口。為了防止擁塞窗口增長過大引起網絡阻塞,還需要設置一個慢開始門限(ssthresh)
慢開始和擁塞避免:
算法原理:
慢開始算法思路: 有小到大逐漸增大發送窗口,也就是從小到大逐漸增大擁塞窗口。當然收到單個確認但此確認多個數據報的時候就加相應的數值。每經過一個傳輸輪次,擁塞窗口就加倍。
擁塞避免算法思路: 讓cwmd緩慢的增大,每經過一個往返時間RTT之后就把發送方的擁塞窗口cwnd加1,而不是像慢開始階段那樣加倍增長。
輪次: 即RTT
快重傳和快恢復:
快重傳原理:
快重傳算法思路: 發送方只要一連收到3個重復確認,就知道接收方確實沒有收到下一個報文段,因而需要立即進行重傳,這樣就不會出現超時,發送方也不會認為出現了網絡擁塞。
快恢復算法思路: 配合快重傳使用,不執行慢開始算法。將ssthresh調整為當前cwnd的一半,隨后 將cwnd設置為ssthresh的大小,然后執行擁塞避免算法。
TCP擁塞控制算法綜合:
1、 擁塞窗口cwnd = 1
2、 每收到一個確認(經過一個RTT),cwnd+1(即翻倍)
3、 當cwnd = ssthresh,執行擁塞避免算法
4、 當cwnd太大擁塞時(傳輸超時),門限值ssthresh減半(ssthresh=sshresh/2),擁塞窗口置1(cwnd = 1),執行慢開始算法
5、 當cwnd = ssthresh,執行擁塞避免算法
6、 當cwnd太大擁塞時(三次重復確認3-ACK),門限值減半(ssthresh = cwnd / 2),擁塞窗口等于門限值(cwnd = ssthresh),執行擁塞避免算法
總結
以上是生活随笔為你收集整理的计算机网络之传输层:7、TCP拥塞控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51单片机之外部引脚及总线接口
- 下一篇: Hadoop: MapReduce2的几