UDP無流量控制和擁塞控制,所以,咱們主要討論的是TCP的擁塞控制和流量控制,並要注意二者的區別。緩存
太多發送主機發送了太多數據或者速度過快,以致於網絡沒法處理網絡
表現:學習
- 分組丟失(路由器緩存溢出)blog
- 分組延遲過大,甚至致使路由器不可用(在路由器緩存排隊)資源
Q:rdt(可靠數據傳輸)已經解決了分組丟失的問題,爲何要學習擁塞控制?路由
A:這是兩個不一樣的問題,rdt解決的是端到端,針對個體利益的角度,使用確認、重傳機制;擁塞控制是社會機制,從羣體利益角度,使得每個主機作出必定的犧牲,採用某種機制來控制整個網絡的負載。it
Q:流量控制和擁塞控制有什麼不一樣?io
A:流量控制是發送方不要發送的太快,致使接收方處理不了;而擁塞控制是不要讓整個網絡處理不了路由器
1. 兩個senders,兩個receivers,一個路由器(無限緩存),沒用重傳方法
致使:
C爲帶寬bandwidth,in和out是速率
- (右圖)擁塞時分組延遲delay太大
- (左圖)達到最大throughput吞吐量,<C/2時,線性增加,直至達到maxC
2. 一跳/一個路由器(有限的緩存),sender能夠重傳分組
致使:
備註:
- 狀況b,不能提早獲知路由器的緩存信息,只能經過肯定丟失才重傳
- 狀況b相對於a,意味着有效的吞吐量下降了,因爲擁塞,因爲丟失,須要重傳,(網絡資源是有限的)形成了網絡資源的浪費
- 狀況c,不只肯定分組丟失以後才重傳,並且會等待必定時間後重傳,這時候將有更多的重傳,因此吞吐量更低了
3. 四個sender,多跳/四個路由器(有限緩存),超時/重傳
致使:
紅線和綠線競爭,都要使用R2,因爲擁塞,吞吐量也變低了,會形成不斷的丟失
Q:假如紅線已經在前一個路由器正常轉發,可是到達R2後因爲競爭擁塞,則會產生什麼代價?
A:相對於一跳,多跳擁塞會產生另外一個代價——任何用於該分組的」上游「傳輸能力全被浪費
前半段:in速率和out速率線性增長
後半段:當in速率增大到必定程度的時候,out速率基本等於0——>你們都在往裏面發數據,可是,幾乎沒用數據被正確的接收,意味着網絡癱瘓了/網絡全部的資源都被浪費掉了
在傳輸層或者網絡層進行控制/管制數據、網絡的負載(成因)
方法(2種)
- 端到端的擁塞控制(在傳輸層,TCP就是使用這種方法)
網絡層或者網絡層的設備,好比路由器路由器並不須要顯式的支持,而是端系統經過管制/控制本身的發送速率,經過觀察loss、delay等網絡行爲判斷是否發生擁塞
- 網絡輔助的擁塞控制(在網絡層,典型的ATM就是使用這種方式)
路由器向發送方顯式的反饋網絡擁塞信息
簡單的擁塞指示(1bit):SNA、DECbit、TCP/IP ECN、ATM
指示發送方應該使用何種速率