偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

TCP的擁塞控制是如何實現(xiàn)的?

網(wǎng)絡 網(wǎng)絡管理
在網(wǎng)絡出現(xiàn)擁堵時,如果繼續(xù)發(fā)送大量數(shù)據(jù)包,可能會導致數(shù)據(jù)包丟失或者時延增大,這時TCP就會重傳數(shù)據(jù),而一重傳就會導致網(wǎng)絡的負擔更重,于是會導致更大的延遲和更多的丟包。

面試官:請說一下,TCP的擁塞控制是如何實現(xiàn)的?

流量控制是避免發(fā)送方的數(shù)據(jù)填滿接收方的緩存。但計算機網(wǎng)絡一般都處在一個共享的環(huán)境,因此也有可能會因為其他主機之間的通信使得網(wǎng)絡擁堵。在網(wǎng)絡出現(xiàn)擁堵時,如果繼續(xù)發(fā)送大量數(shù)據(jù)包,可能會導致數(shù)據(jù)包丟失或者時延增大,這時TCP就會重傳數(shù)據(jù),而一重傳就會導致網(wǎng)絡的負擔更重,于是會導致更大的延遲和更多的丟包。

圖片圖片

圖片圖片

圖片圖片

TCP的擁塞控制機制可以根據(jù)網(wǎng)絡鏈路的實時狀態(tài),自動調整發(fā)送速度,降低發(fā)送的數(shù)據(jù)量,從而避免發(fā)送方的數(shù)據(jù)填滿整個網(wǎng)絡。

圖片圖片

圖片圖片

圖片圖片

TCP通過擁塞窗口來約束發(fā)送速度,擁塞窗口跟接收窗口類似,同樣規(guī)定了發(fā)送方此刻能夠發(fā)送出去的字節(jié)數(shù),只不過它是通過評估網(wǎng)絡鏈路的擁塞程度,并由一定的算法計算而來的。發(fā)送方的發(fā)送窗口大小由接收窗口和擁塞窗口共同決定,取擁塞窗口和接收窗口中的最小值。

圖片圖片

TCP通過慢啟動、擁塞避免、擁塞發(fā)生和快速恢復四種算法來進行擁塞控制。

圖片圖片

1、慢啟動

TCP連接剛建立時,對網(wǎng)絡鏈路的運行狀況一無所知,慢啟動就是TCP啟動后的發(fā)送速度慢慢的進行提速,便于感知網(wǎng)絡的狀況。

圖片圖片

慢啟動算法將擁塞窗口cwnd初始化為1,然后每收到一個ACK,cwnd就會加 1,假設每個報文段都會回復ACK確認,在沒有丟包的情況下,第一個分組被確認后,cwnd就變成了2,接下來,TCP可以發(fā)送2個報文段。如果這2個報文段均順利送到,可以收到2個ACK確認,cwnd增大到 4,以此類推。因此,慢啟動期間cwnd是呈指數(shù)增長的。

圖片圖片

圖片圖片

2、擁塞避免

當cwnd超過慢啟動門限ssthresh時就會進入擁塞避免算法。在擁塞避免階段,TCP以更慢的速度擴張擁塞窗口,每當成功發(fā)送跟擁塞窗口大小等量的數(shù)據(jù)并收到ACK確認后,cwnd就加1。例如,假設當前擁塞窗口大小為k,這時可以發(fā)出k個報文段。當這k個報文段均發(fā)出并收到確認后,才給cwnd加1,所以擁塞避免階段,cwnd是呈線性增長的。

圖片圖片

圖片圖片

3、擁塞發(fā)生

進入擁塞避免階段后,窗口保持緩慢增長,當遇到網(wǎng)絡擁塞發(fā)送丟包時,TCP就會進行重傳。如果是發(fā)生超時重傳,慢啟動門限ssthresh會被設置為當前擁塞窗口值的一半,cwnd恢復為初始化值1,然后重新開始前面的慢啟動過程。如果是發(fā)生快速重傳(重復ACK),ssthresh和cwnd都會變?yōu)楫斍皳砣翱谥档囊话?,然后進入到快速恢復階段。

圖片圖片

圖片圖片

圖片圖片

圖片圖片

4、快速恢復

在快速恢復階段,發(fā)送方會重傳丟失的數(shù)據(jù)包,此時發(fā)送方已收到了3個重復的ACK,所以cwnd加3,如果再收到重復的 ACK,那么cwnd增加 1,如果收到新的ACK,表明重傳的包成功了,將cwnd設置為當前的慢啟動門限ssthresh值,然后再次進入到擁塞避免階段。

圖片 圖片

責任編輯:武曉燕 來源: 編程十萬問
相關推薦

2021-10-11 14:27:06

TCP擁塞控制

2019-04-16 11:02:10

TCPIPLinux

2019-11-26 08:24:13

TCP擁塞控制網(wǎng)絡協(xié)議

2020-07-23 15:01:15

TCP流量擁塞

2010-06-10 15:14:32

TCP傳輸控制協(xié)議

2020-02-10 20:54:48

擁塞流量控制

2014-06-26 09:24:04

TCP

2021-07-27 05:13:12

TCPUDP 擁塞

2014-09-12 18:18:02

tcpudtUDP

2009-01-18 09:28:00

TCPIP路由器

2011-08-23 14:10:07

TCPECN路由器

2023-12-01 14:57:22

TCP連接

2009-04-09 10:11:00

TCPIP通訊

2023-11-30 18:03:02

TCP傳輸

2023-10-19 14:55:22

火山引擎擁塞控制算法

2024-11-01 16:05:26

2020-04-20 10:51:26

TCP擁塞控制網(wǎng)絡協(xié)議

2009-07-27 14:03:54

網(wǎng)絡擁塞網(wǎng)速變慢

2010-06-13 15:32:57

TCP協(xié)議

2024-11-05 12:59:42

while 循環(huán)迭代字節(jié)碼
點贊
收藏

51CTO技術棧公眾號