【計算機網絡入門】TCP擁塞控制

目錄

1. TCP擁塞控制和TCP流量控制的區別

2. 檢測到擁塞該怎么辦

2.1 如何判斷網絡擁塞?

3. 慢開始算法 +?擁塞避免算法

4.快重傳事件->快恢復算法

5. 總結


1. TCP擁塞控制和TCP流量控制的區別

TCP流量控制是控制端對端的數據發送量。是局部的概念。

TCP擁塞控制是控制整個網絡中每臺主機的數據發送量。是整體的概念。

2. 檢測到擁塞該怎么辦

接收窗口代表數據的接收方接收數據的能力;擁塞窗口代表當前網絡傳輸數據的能力。

如果發送了網絡擁塞,應該減小擁塞窗口,也就間接減小了發送窗口。每一臺主機就會減少數據的發送量,網絡擁塞的情況就會有所緩解。?

2.1 如何判斷網絡擁塞?

①每個報文段發送以后都能得到ACK確認,不擁塞。

②發出的報文段未能按時收到ACK從而超時重傳,嚴重擁塞。

③收到冗余的ACK,引發快重傳,有點擁塞。

(假設接收窗口足夠大)

3. 慢開始算法 +?擁塞避免算法

嚴重擁塞的時候,迅速降低擁塞窗口? +?網絡不擁塞的時候,調大擁塞窗口

解釋

????????剛開始發送數據的時候設置擁塞窗口為1,擁塞閾值為16;此時發送一個報文段立即接受ACK,每收到一個ACK就讓擁塞窗口的值+1,所以第二次發送兩個報文段收到兩個ACK那么擁塞窗口的值+2,以此類推,每次擁塞窗口的值會翻倍;知道閾值窗口達到設定的擁塞閾值16。

? ? ? ? 達到擁塞閾值之后,在一個RTT內無論有多少個ACK一律全部把擁塞窗口的值+1。當返回16個ACK的時候,擁塞窗口的值+1。

? ? ? ? 假如擁塞窗口到了24的時候出現了超時重傳,此時網絡處于嚴重擁塞,我們這個時候立即啟用慢開始算法,把擁塞窗口降低到1,此時擁塞閾值的值會變成超時重傳之前的擁塞窗口的一半也就是12;后面就繼續翻倍,當擁塞窗口為8的時候,發送了8個報文段應該收到8個ACK,但是不能超過新的擁塞閾值12,所以只能加4到達閾值,到達閾值之后算法從慢開始變成了擁塞避免算法,后續不論收到多少ACK每次擁塞窗口只加1

4.快重傳事件->快恢復算法

有點擁塞的時候,適當減少擁塞窗口。

我們查看上圖,在RTT=12的時候此時發生了超時重傳,說明網絡擁塞特別嚴重,需要立即啟用慢開始算法,把擁塞窗口的值變為1,擁塞閾值變成之前擁塞窗口的一半。但是如果只是收到了冗余ACK發生了快重傳,說明網絡此時稍微有點擁塞,采用快恢復算法把當前擁塞窗口變為原來的一半即可;擁塞閾值也變成擁塞窗口的一半,這樣一來擁塞窗口和擁塞閾值是相等的,就可以使用擁塞避免算法:即無論收到多少個ACK,擁塞窗口只+1。

5. 總結

????????一開始我們使用慢開始算法,使得擁塞窗口成倍數增加,當達到擁塞窗口=擁塞閾值的時候,我們需要切換算法為擁塞避免算法。我們需要進行分辨接下來的事件:

事件1:發生超時重傳,說明網絡非常擁塞,直接啟用慢開始算法,把擁塞窗口重新變為1,擁塞閾值變為原來擁塞窗口的一半。

事件2:發生快重傳事件,也就是收到多個重復ack,立即重傳;說明網絡有點擁塞,此時把擁塞窗口調整為原來的一半,擁塞閾值調整到原來擁塞窗口的一半,這樣一來擁塞閾值和擁塞窗口相等,就可以開始擁塞避免算法了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72562.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72562.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72562.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Boot 整合 JMS-ActiveMQ,并安裝 ActiveMQ

1. 安裝 ActiveMQ 1.1 下載 ActiveMQ 訪問 ActiveMQ 官方下載頁面,根據你的操作系統選擇合適的版本進行下載。這里以 Linux 系統,Java環境1.8版本為例,下載 apache-activemq-5.16.7-bin.tar.gz。 1.2 解壓文件 將下載的壓縮包解壓到指定目…

《幾何原本》命題I.13

《幾何原本》命題I.13 兩條直線相交,鄰角是兩個直角或者相加等于 18 0 ° 180^{\circ} 180°。 若兩角相等,則根據定義,兩角為直角。 兩角若不相等,如圖,則 ( ∠ 1 ∠ 2 ) ∠ 3 ∠ 1 ( ∠ 2 ∠ 3 ) 9 0 ° …

優先級隊列:通過堆的形式實現

描述: 大頂堆: 小頂堆: 索引位置查找: 代碼實現: package com.zy.queue_code.deque;/*** @Author: zy* @Date: 2025-03-05-15:51* @Description:*/ public interface Priority

《OpenCV》—— dlib庫

文章目錄 dlib庫是什么?OpenCV庫與dlib庫對比dlib庫安裝dlib——人臉應用實例——人臉檢測dlib——人臉應用實例——人臉關鍵點定位dlib——人臉應用實例——人臉輪廓繪制 dlib庫是什么? OpenCV庫與dlib庫對比 dlib庫安裝 dlib——人臉應用實例——人臉檢…

藍橋與力扣刷題(藍橋 旋轉)

題目:圖片旋轉是對圖片最簡單的處理方式之一,在本題中,你需要對圖片順時針旋轉 90 度。 我們用一個 nm的二維數組來表示一個圖片,例如下面給出一個 34 的 圖片的例子: 1 3 5 7 9 8 7 6 3 5 9 7 這個圖片順時針旋轉…

隨機播放音樂 偽隨機

import java.util.*;/*** https://cloud.tencent.com.cn/developer/news/1045747* 偽隨機播放音樂*/ public class MusicPlayer {private List<String> allSongs; // 所有歌曲列表private List<String> playedSongs; // 已經播放過的歌曲列表private Map<String…

MiniMind用極低的成本訓練屬于自己的大模型

本篇文章主要講解&#xff0c;如何通過極低的成本訓練自己的大模型的方法和教程&#xff0c;通過MiniMind快速實現普通家用電腦的模型訓練。 日期&#xff1a;2025年3月5日 作者&#xff1a;任聰聰 一、MiniMind 介紹 基本信息 在2小時&#xff0c;訓練出屬于自己的28M大模型。…

區塊鏈中的數字簽名:安全性與可信度的核心

數字簽名是區塊鏈技術的信任基石&#xff0c;它像區塊鏈世界的身份證和防偽標簽&#xff0c;確保每一筆交易的真實性、完整性和不可抵賴性。本文會用通俗的語言&#xff0c;帶你徹底搞懂區塊鏈中的數字簽名&#xff01; 文章目錄 1. 數字簽名是什么&#xff1f;從現實世界到區塊…

LLM自動金融量化-CFGPT

LLM自動金融量化-CFGPT 簡介 CFGPT是一個開源的語言模型,首先通過在收集和清理的中國金融文本數據(CFData-pt)上進行繼續預訓練,包括金融領域特定數據(公告、金融文章、金融考試、金融新聞、金融研究論文)和通用數據(維基百科),然后使用知識密集的指導調整數據(CFD…

解決Docker拉取鏡像超時錯誤,docker: Error response from daemon:

當使用docker pull或docker run時遇到net/http: request canceled while waiting for connection的報錯&#xff0c;說明Docker客戶端在訪問Docker Hub時出現網絡連接問題。可以不用掛加速器也能解決&#xff0c;linux不好用clash。以下是經過驗證的方法&#xff08;感謝軒轅鏡…

03.05 QT事件

實現一個繪圖工具&#xff0c;具備以下功能&#xff1a; 鼠標繪制線條。 實時調整線條顏色和粗細。 橡皮擦功能&#xff0c;覆蓋繪制內容。 撤銷功能&#xff0c;ctrl z 快捷鍵撤銷最后一筆 程序代碼&#xff1a; <1> Widget.h: #ifndef WIDGET_H #define WIDGET…

【文生圖】windows 部署stable-diffusion-webui

windows 部署stable-diffusion-webui AUTOMATIC1111 stable-diffusion-webui Detailed feature showcase with images: 帶圖片的詳細功能展示: Original txt2img and img2img modes 原始的 txt2img 和 img2img 模式 One click install and run script (but you still must i…

go語言因為前端跨域導致無法訪問到后端解決方案

前端服務8080訪問后端8081這端口顯示跨域了 ERROR Network Error AxiosError: Network Error at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:116:14) at Axios.request (webpack-internal:///./node_modules/axios/lib/core/A…

hive之lag函數

從博客上發現兩個面試題&#xff0c;其中有個用到了lag函數。整理學習 LAG 函數是 Hive 中常用的窗口函數&#xff0c;用于訪問同一分區內 前一行&#xff08;或前 N 行&#xff09;的數據。它在分析時間序列數據、計算相鄰記錄差異等場景中非常有用。 一、語法 LAG(column,…

【軟考-架構】1.3、磁盤-輸入輸出技術-總線

GitHub地址&#xff1a;https://github.com/tyronczt/system_architect ?資料&文章更新? 文章目錄 存儲系統&#x1f4af;考試真題輸入輸出技術&#x1f4af;考試真題第一題第二題 存儲系統 尋道時間是指磁頭移動到磁道所需的時間&#xff1b; 等待時間為等待讀寫的扇區…

盛鉑科技PDROUxxxx系列鎖相介質振蕩器(點頻源):高精度信號源

——超低相位噪聲、寬頻覆蓋、靈活集成&#xff0c;賦能下一代射頻系統 核心價值&#xff1a;以突破性技術解決行業痛點 在雷達、衛星通信、高速數據采集等高端射頻系統中&#xff0c;信號源的相位噪聲、頻率穩定度及集成靈活性直接決定系統性能上限。盛鉑科技PDROUxxxx系列鎖…

【安裝】SQL Server 2005 安裝及安裝包

安裝包 SQLEXPR.EXE&#xff1a;SQL Server 服務SQLServer2005_SSMSEE.msi&#xff1a;數據庫管理工具&#xff0c;可以創建數據庫&#xff0c;執行腳本等。SQLServer2005_SSMSEE_x64.msi&#xff1a;同上。這個是 64 位操作系統。 下載地址 https://www.microsoft.com/zh-c…

【文獻閱讀】The Efficiency Spectrum of Large Language Models: An Algorithmic Survey

這篇文章發表于2024年4月 摘要 大語言模型&#xff08;LLMs&#xff09;的快速發展推動了多個領域的變革&#xff0c;重塑了通用人工智能的格局。然而&#xff0c;這些模型不斷增長的計算和內存需求帶來了巨大挑戰&#xff0c;阻礙了學術研究和實際應用。為解決這些問題&…

如何在Github上面上傳本地文件夾

前言 直接在GitHub網址上面上傳文件夾是不行的&#xff0c;需要一層一層創建然后上傳&#xff0c;而且文件的大小也有限制&#xff0c;使用Git進行上傳更加方便和實用 1.下載和安裝Git Git - Downloads 傻瓜式安裝即可 2.獲取密鑰對 打開自己的Github&#xff0c;創建SSH密鑰&…

kafka-web管理工具cmak

一. 背景&#xff1a; 日常運維工作中&#xff0c;采用cli的方式進行kafka集群的管理&#xff0c;還是比較繁瑣的(指令復雜&#xff1f;)。為方便管理&#xff0c;可以選擇一些開源的webui工具。 推薦使用cmak。 二. 關于cmak&#xff1a; cmak是 Yahoo 貢獻的一款強大的 Apac…