tcp擁塞控制,是防止網路中過多資料注入網路,導致路由器或鏈路過載。
tcp擁塞控制十乙個全域性性過程。
幾個視窗值:
傳送方視窗值:傳送方緩衝區大小
接收方視窗值:接收方緩衝區大小
擁塞視窗值: cwnd,表示網路擁塞情況
通告視窗值: 接收方通過這個值去通知 傳送方 調整其傳送緩衝區大小
慢啟動視窗值:當擁塞視窗值小於這個值時,為防止網路擁塞,要採用慢啟動。
tcp的資料傳輸分為互動資料流和成塊資料流,互動資料流一般是一些互動式應用程式的命令,所以這些資料很小,而考慮到tcp報頭和ip報頭的總和就有40位元組,
如果資料量很小的話,那麼網路的利用效率就較低。故互動資料流不實用nagle 演算法。
n
agle演算法的基本定義是
任意時刻,最多只能有乙個未被確認的小段。 所謂「小段」,指的是小於mss尺寸的資料塊,所謂「未被確認」,是指乙個資料塊傳送出去後,沒有收到對方傳送的ack確認該資料已收到。
nagle演算法的規則(可參考tcp_output.c檔案裡tcp_nagle_check函式注釋):
(1)如果包長度達到mss,則允許傳送;
(2)如果該包含有fin,則允許傳送;
(3)設定了tcp_nodelay選項,則允許傳送;
(4)未設定tcp_cork選項時,若所有發出去的小資料報(包長度小於mss)均被確認,則允許傳送;
(5)上述條件都未滿足,但發生了超時(一般為200ms),則立即傳送。
當cwnd當cwnd>ssthresh時,改用擁塞避免演算法。
當cwnd=ssthresh時,慢開始與擁塞避免演算法任意。
擁塞避免演算法:
TCP擁塞控制
擁塞控制就是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載,擁塞控制要做的都有個前提,就是網路能夠承受現有的網路負荷。擁塞控制是個全域性性的過程。幾種擁塞控制方法 慢開始 擁塞避免 快重傳 快恢復 1.慢開始和擁塞避免 傳送方維持乙個叫做擁塞視窗的狀態變數,擁塞視窗取決於網路的擁...
TCP擁塞控制
計算機網路中的頻寬 交換結點中的快取和處理機等,都是網路的資源。在某段時間,若對網路中某一資源的需求超過了該資源所能提供的可用部分,網路的效能就會變壞。這種情況就叫做擁塞。擁塞控制就是防止過多的資料注入網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制是乙個全域性性的過程,和流量控制不同,流量...
TCP 擁塞控制
我們都知道 tcp 是傳輸層的協議,網路請求經過傳輸層到達網路層之後是通過 ip 包進行傳輸的。如果我們傳送方大量的 ip 包的時候,有可能我們的鏈路資源有限,那麼我們的 ip 包就有可能丟失或者被丟棄,這樣我們的請求就不是絕對安全的,那接下來我們就說一下,tcp是如何處理前面的情況的。一 什麼是網...