網路擁塞控制中存在哪些問題,TCP/IP是如何處理的?
網路層中的擁塞主要涉及兩個問題:吞吐量和延遲。
基於延遲
如果網路負載低於網路容量,則延遲最小。
這裡的最小延遲由傳播延遲和處理延遲組成,兩者都可以忽略不計。
因此,當負載達到網路容量時,延遲會增加,因為我們必須將排隊延遲新增到總延遲中。
當負載大於容量時,延遲變得無限大。
基於吞吐量
當負載低於網路容量時,吞吐量與負載成正比增加。
負載達到容量後,我們預計吞吐量將保持恆定,但實際上吞吐量會急劇下降。
其原因是路由器丟棄了資料包。
當傳送方和接收方在網路中透過資料包相互通訊時,如果傳送方向網路傳送過多的資料包,這種情況稱為擁塞。
在擁塞期間,流量無法得到正確處理。這會導致服務質量下降。擁塞的症狀包括過多的資料包延遲、資料包丟失和重傳。
TCP 擁塞處理
傳輸控制協議 (TCP) 擁塞控制技術可以防止擁塞。TCP 使用在傳送方維護的擁塞視窗。對於每個 TCP 會話,都會維護一個單獨的擁塞視窗。此擁塞視窗表示可以在不進行確認的情況下發送到網路中的最大資料量。
最初,擁塞視窗設定為一個最大報文段大小。收到每個 ACK 資料包後,傳送方將擁塞視窗大小增加一個 MSS(最大報文段大小)。
此處使用的公式為:
Congestion window size = congestion window size + MSS.
此階段稱為慢啟動機制,當達到慢啟動閾值時,TCP 從慢啟動階段切換到擁塞避免階段。
現在公式更改為以下內容 -
Congestion window size=congestion window size + MSS/congestion window size.
當 TCP 檢測到任何資料包丟失時,則:
Congestion window size=congestion window size -1
透過這種方式,TCP 處理擁塞。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP