您好,登錄后才能下訂單哦!
本篇內容主要講解“TCP的流量控制與擁塞控制的區別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“TCP的流量控制與擁塞控制的區別”吧!
1. TCP流量控制
流量控制就是讓發送方的發送速率不要太快,要讓接收方來的及接收。
原理是通過確認報文中窗口字段來控制發送方的發送速率,發送方的發送窗口大小不能超過接收方給出窗口大小。
考慮一種特殊的情況,接收方向發送方發送了零窗口的報文段后,接收方又有了一些存儲空間。與接收方向發送方發送了非零窗口的報文段。然而這個報文段在傳送過程中丟失了。發送方的發送窗口一直為零導致死鎖。
為了解決這個問題,每個連接設置有持續計時器,只要連接的一方收到零窗口通知,就啟動持續計數器。若持續計數器設置的時間到期,就發送一個零窗口探測報文段,而對方就在確認這個探測報文段給出現在的窗口值。如果窗口仍然為零,那么收到這個報文段的一方重置持續計數器,否則,那么死鎖的僵局就可以打破。
2.TCP的擁塞控制
擁塞控制:防止過多的數據注入到網絡中,這樣可以使網絡中的路由器或鏈路過載。如果網絡出現擁塞,分組將會丟失,此時發送方會繼續重傳,從而導致網絡擁塞程度更高。因此當出現擁塞時,應當控制發送方的速率。這一點和流量控制很像,但是出發點不同。流量控制是為了讓接收方能來得及接收(端對端的通信),而擁塞控制是為了降低整個網絡的擁塞程度(全局性)。
2.1TCP的擁塞控制方法
TCP進行擁塞控制的算法有四種,即慢開始,擁塞避免,快重傳,快恢復。
發送方讓自己的發送窗口等于擁塞窗口,擁塞窗口的大小取決于網絡的擁塞程度,并且動態地在變化。
數據是單方向傳送的,對方只傳送確認報文。
接收方總是有足夠大的緩存空間,因而發送窗口的大小由網絡的擁塞程度決定。
慢開始和擁塞避免
發送的最初執行慢開始,令 cwnd = 1,發送方只能發送 1 個報文段;當收到確認后,將 cwnd 加倍,因此之后發送方能夠發送的報文段數量為:2、4、8 ...
當cwnd > ssthresh(慢開始門限)時,改用擁塞避免算法,擁塞避免算法每經過一個往返時間cwnd加1。
當cwnd = ssthresh時,既可以用慢開始也可以使用擁塞避免算法。
當cwnd < ssthresh時,慢開始算法。
當網絡出現超時,ssthresh = cwnd / 2,同時設置擁塞窗口cwnd=1.進入慢開始算法。
2.快重傳與快恢復
快重傳算法要求接收方不要等待自己發送數據才進行捎帶確認,而是立即發送確認。即使收到失序的報文段對已發送的報文段的重復確認。發送方一連收到3個重復確認就應當立即進行重傳。在這種情況下,只是丟失個別報文段,而不是網絡擁塞。因此執行快恢復,發送方調整門限值ssthresh =cwnd/2,同時設置擁塞窗口cwnd=ssthresh ,并開始擁塞避免算法。
慢開始和快恢復的快慢指的是 cwnd 的設定值,而不是 cwnd 的增長速率。慢開始 cwnd 設定為 1,而快恢復 cwnd 設定為 ssthresh。
到此,相信大家對“TCP的流量控制與擁塞控制的區別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。