網路協議如何處理網路擁塞

Mondo 社會 更新 2024-01-31

TCP是最常用的傳輸層協議之一,為上層協議提供面向連線的可靠傳輸服務。 為了提供盡可能大的吞吐量,TCP採用滑動視窗和擁塞視窗機制來控制在某個時間點傳送到網路的資料量,從而盡可能多地占用可用頻寬,不造成擁塞。 網路中通常存在瓶頸,資料包積壓甚至丟棄。 因此,TCP流量控制的關鍵是控制瓶頸處的報文積壓,過快的積壓會導致擁塞。 擁堵是如何形成的?什麼原因導致擁堵?發件人如何看待擁堵?如何緩解擁堵?

byte in flight

在開始本文之前,我們先介紹一下飛行中的位元組的概念 “傳輸中的位元組數”1 的更形象的翻譯是指已傳送但尚未收到 ACK 確認的位元組數,這大約等於當前在網路中傳輸和積壓的資料包位元組數的總和。 傳輸中的位元組大小對瓶頸處的資料包積壓有直接影響。 根據滑動視窗的概念,可以知道飛行中的位元組大小受到傳送視窗2的限制(飛行中的位元組<=傳送視窗),並形成擁塞。

擁堵是如何形成的?看似簡單的問題,其實並不是每個人腦海中的清晰畫面。 簡而言之,擁塞的主要原因是資料傳送者向網路傳遞的資料超出了網路的承載能力。 就像水管的流量取決於最小的部分一樣,網路的承載能力取決於網路上可用頻寬最小的路徑,即存在瓶頸的地方。 網路裝置介面往往有緩衝區,多餘的資料無法從瓶頸路徑傳送,所以它們不得不在緩衝區排隊,緩衝區的大小是有限的,積壓的資料量超過緩衝區的大小,就會發生丟棄,這就像漏斗裡澆水一樣。

擁塞可能由於以下原因而發生:

網路中存在吞吐量小於節點每單位時間傳送的資料量的瓶頸。

接收緩衝區大於瓶頸處的可用緩衝區。

1. 什麼是網路擁塞?

是指當分組交換網路中傳輸的報文數量過大時,由於儲存節點資源有限,導致網路傳輸效能下降的情況。 當網路擁塞時,資料丟失、延遲增加、吞吐量下降,嚴重時甚至會出現擁塞崩潰。 通常,當網路上的負載過度增加時,就會發生網路擁塞,從而導致網路效能下降。

擁堵原因:

2.交換節點的快取是有限的。

3.節點的處理能力有限。

歸根結底,當我們訴諸於對>可用資源的需求時,就會發生網路擁塞。

2. TCP如何處理網路擁塞?

其實要解決以上問題,我們只需要保證兩點,第一,我們傳送的IP資料包不會丟失,第二,我們必須保證傳送速度最大化。

滑動視窗:TCP處理網路擁塞,主要涉及動態變化的視窗(擁塞視窗,也可以稱為滑動視窗),視窗的數量與網路擁塞程度有關,當網路情況良好時,擁塞視窗繼續增加,傳送方的視窗自然增加,但接收方的接收能力有限, 當傳送方的視窗達到一定大小時,它不會改變。在通用TCP協議中,擁塞視窗數為65536,小於此值時,採用慢啟動演算法增加傳送的IP報文數,當大於等於該值時,採用擁塞控制演算法增加傳送的IP報文數。

發件人如何確定擁塞

當我們傳送資料包時,如果我們在一段時間內沒有收到確認資料包,那麼我們可以假設網路擁塞。

慢啟動演算法:

當傳送方開始傳送資料報時,如果立即將大量資料注入網路,則可能會發生擁塞。 慢啟動演算法在傳送方首次開始傳送資料報時檢測網路狀態,如果網路狀況良好,傳送方每次傳送訊息時都能正確接受確認訊息。 然後將擁塞視窗的大小從小到大增加,即增加傳送的 IP 資料包數量。 通常,傳送的 IP 資料包數量通過電源到電源而增加。 例如,如果傳送方設定 cwnd(擁塞視窗)= 1 傳送第乙個資料包段 m1,則在接收方收到 m1 後,傳送方收到接收方的確認並將 cwnd 增加到 2,則傳送方傳送 m2 和 m3,傳送方收到接收方傳送的確認後 cwnd 增加到 4。

擁塞控制演算法:

就是讓CWND緩慢增加而不是增加一倍,每經歷一次往返時間,CWND增加1而不是翻倍,這樣CWND增長緩慢,比慢啟動慢得多。

擁塞規避:如上所述,擁塞視窗數(ssthresh)的閾值一般為65536,因此有如下演算法:

1.當CWNDssthresh時,使用擁塞控制演算法,禁用慢啟動演算法。

3.,當 cwnd = ssthresh 時,兩種演算法都很好。

當出現網路擁塞時,將閾值 ssthresh 的數量減半,然後將 cwnd 的數量改為 1,然後使用慢啟動演算法,快速減少向網路傳輸資料的主機數量,使擁塞的路由器可以處理佇列中堆積的資料包。

示例:例如,如果我們的 CWND(即我們要傳送的 IP 資料包數)為 1,那麼我們的閾值為 16。

1.慢啟動演算法開始時,CWND的初始值為1,傳送方每收到一次ACK,擁塞視窗就會增加1,當SSTHRESH = CWND時,會啟動擁塞控制演算法,擁塞視窗會按規律增加。

快速重傳演算法要求接收方在收到無序資料包段後立即傳送重複的確認,而不是等待接收方傳送資料後再捎帶確認。 接收方成功接收了傳送方的 M1 和 M2 並傳送 ACK 給 ACK,但現在接收方沒有收到 M3,而是接收 M4,顯然接收方無法確認 M4,因為 M4 是亂序報文段。 如果接收方按照可靠傳輸的原則什麼都不做,而是按照快速重傳演算法,在接收到M4、M5等資料包段時,重複向傳送方傳送M2的ACK,如果接收方連續收到三個重複的ACK,傳送方就不必等待重傳定時器到期, 因為傳送方會盡快重新傳輸未確認的資料包段。

第四,快速恢復。

1.當傳送方連續收到三次確認時,執行乘法約簡演算法將慢啟動閾值(ssthresh)降低一半,但接下來不執行慢啟動演算法。

2.此時,不要執行慢啟動演算法,而是將cwnd設定為ssthresh的一半,然後執行擁塞規避演算法,使擁塞視窗緩慢增加。

相關問題答案

    基於TCP IP協議的網路問題排查 網路與IP位址的關係

    隨著網際網絡的普及和發展,IP位址作為網路通訊的基本要素起著至關重要的作用。在日常生活和工作中,跨網路活動越來越頻繁,了解IP位址和跨網路之間的關係是每個網路使用者的必備知識。IP位址和網路之間的關係是密不可分的。IP位址是Internet協議位址的縮寫,是用於標識網路上計算機的數字標籤。在網路中,...

    如何處理人際關係問題?

    優質作者名單 杭州市蕭山區學生萍萍回憶說 我是一名大學生,我喜歡乙個有女朋友的男孩 他們在不同的地方 是那個男孩先喜歡上了我。我正好處於被分手的狀態,對喜歡和愛的理解處於模糊狀態,以為他的喜歡就是同學之間的喜歡。後來才發現不是,我也退縮了,希望他能降低對我的好感度,好好對待女朋友。但有時我無法拒絕他...

    SCI論文被拒稿怎麼辦?

    在SCI 的出版過程中,稿件被拒稿和返工經常發生。一般來說,編輯直接接受稿件的情況很少見,大多數稿件在審稿過程中經過大修或小修後需要重新審稿,拒稿數量也隨著稿件數量的逐年增加而增加。那麼,如何處理sci 被拒的情況呢?要處理SCI排斥問題,需要根據原因採取適當的對策。SCI稿件被拒的原因無非以下幾點...

    明智地討論,女人應該如何處理彩禮

    在婚姻和愛情中,彩禮問題一直是乙個敏感而複雜的話題。作為乙個女人,如何明智地談判和處理彩禮,是乙個需要慎重考慮的問題。下面我將為您提供一些建議和答案,以幫助您處理這個情緒問題。明確你的價值觀和看法。在處理彩禮問題時,首先要明確自己對彩禮的態度和期望。你想得到乙個尊重和體面的彩禮,還是你不那麼重視它?...

    家裡有老人,隔音問題怎麼處理?

    在我們的生活中,長者是家庭不可或缺的一部分。隨著年齡的增長,對安靜舒適的環境的需求也在增加。老年房間裝修的隔音尤為重要。隨著城市的不斷擴張和建設,我們的住房變得越來越集中。這不可避免地導致了噪音汙染的問題。老年人往往對噪音比較敏感,所以在裝修老人房的時候,一定要做好隔音工作,保證老年人的居住環境能夠...