TCP流量控制与拥塞控制区别
1. 流量控制(端到端)
流量控制,是利用滑動窗口協議控制發送端流量,是為了解決發送數據過快導致接收方來不及接收的問題。
具體是消息接收方會發送流量控制報文,通知發送方窗口大小,發送方發送的數據大小不能超過窗口大小。
如果發送者發送數據過快,接收者來不及接收,那么就會有報文丟失。為了避免報文丟失,控制發送者的發送速度,使得接收者來得及接收,這就是流量控制。流量控制根本目的是防止報文丟失,它是構成TCP可靠性的一方面。
如何實現流量控制?
由滑動窗口協議(連續ARQ協議)實現。滑動窗口協議既保證了分組無差錯、有序接收,也實現了流量控制。主要的方式就是接收方返回的 ACK 中會包含自己的接收窗口的大小,并且利用大小來控制發送方的數據發送。
2. 擁塞控制(區域網絡)
擁塞控制,是為了避免過多的流量注入網絡使得網絡過載。具體方法包括:慢開始、擁塞避免、快重傳和快恢復。
-
慢開始:剛開始建立連接的時候,發送窗口大小為1,然后逐步增加窗口的大小,如每次加倍。
-
擁塞避免:當發送窗口達到一個門限值之后,窗口大小不再每次加倍,而是每次+1,減緩窗口增大速度。
-
快重傳: 快重傳算法規定,發送方只要一連收到三個重復確認就應當立即重傳對方尚未收到的報文段,而不必繼續等待設置的重傳計時器時間到期,這是因為此時網絡狀況良好,可以立即重傳。
-
快恢復:執行“乘法減小”算法將發送窗口門限值減半,以門限值為起點(而非0值),然后執行擁塞避免算法。
在學習流量控制的時候,我們假設網絡無限好,不擁塞。在學習擁塞控制的時候,我們又假設接收方緩沖區和接收窗口無限大,對數據來者不拒。現在,是時候綜合考慮他們的時候了。
如何綜合考慮這兩者呢?實際上很簡單,我們只要將接收方的窗口 rwnd 和擁塞窗口 cwnd 放在一起比較,取兩者中的較小者,也就是:
發送方的窗口=min{rwnd,cwnd}
上式指出:
rwnd < cwnd : 是接收方的接收能力限制了發送方窗口的最大值。
cwnd < rwnd : 是網絡的擁塞限制了發送方窗口的最大值。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的TCP流量控制与拥塞控制区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 就在下个月!荣耀Magic5系列发布时间
- 下一篇: 历史性崩溃,英特尔股价重挫市值蒸发 50