色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TCP協議擁塞控制的滑動窗口協議解析

西西 ? 來源: Chinaunix ? 作者:windhawkgyang ? 2020-10-08 17:04 ? 次閱讀

TCP協議作為一個可靠的面向流的傳輸協議,其可靠性和流量控制由滑動窗口協議保證,而擁塞控制則由控制窗口結合一系列的控制算法實現。

一、滑動窗口協議

關于這部分自己不曉得怎么敘述才好,因為理解的部分更多,下面就用自己的理解來介紹下TCP的精髓:滑動窗口協議。

所謂滑動窗口協議,自己理解有兩點:1. “窗口”對應的是一段可以被發送者發送的字節序列,其連續的范圍稱之為“窗口”;2. “滑動”則是指這段“允許發送的范圍”是可以隨著發送的過程而變化的,方式就是按順序“滑動”。在引入一個例子來說這個協議之前,我覺得很有必要先了解以下前提:

-1. TCP協議的兩端分別為發送者A和接收者B,由于是全雙工協議,因此A和B應該分別維護著一個獨立的發送緩沖區和接收緩沖區,由于對等性(A發B收和B發A收),我們以A發送B接收的情況作為例子;

-2. 發送窗口是發送緩存中的一部分,是可以被TCP協議發送的那部分,其實應用層需要發送的所有數據都被放進了發送者的發送緩沖區;

-3. 發送窗口中相關的有四個概念:已發送并收到確認的數據(不再發送窗口和發送緩沖區之內)、已發送但未收到確認的數據(位于發送窗口之中)、允許發送但尚未發送的數據以及發送窗口外發送緩沖區內暫時不允許發送的數據;

-4. 每次成功發送數據之后,發送窗口就會在發送緩沖區中按順序移動,將新的數據包含到窗口中準備發送;

TCP建立連接的初始,B會告訴A自己的接收窗口大小,比如為‘20’:

字節31-50為發送窗口

A發送11個字節后,發送窗口位置不變,B接收到了亂序的數據分組:

只有當A成功發送了數據,即發送的數據得到了B的確認之后,才會移動滑動窗口離開已發送的數據;同時B則確認連續的數據分組,對于亂序的分組則先接收下來,避免網絡重復傳遞:

二、流量控制

流量控制方面主要有兩個要點需要掌握。一是TCP利用滑動窗口實現流量控制的機制;二是如何考慮流量控制中的傳輸效率。

1. 流量控制

所謂流量控制,主要是接收方傳遞信息給發送方,使其不要發送數據太快,是一種端到端的控制。主要的方式就是返回的ACK中會包含自己的接收窗口的大小,并且利用大小來控制發送方的數據發送:

這里面涉及到一種情況,如果B已經告訴A自己的緩沖區已滿,于是A停止發送數據;等待一段時間后,B的緩沖區出現了富余,于是給A發送報文告訴A我的rwnd大小為400,但是這個報文不幸丟失了,于是就出現A等待B的通知||B等待A發送數據的死鎖狀態。為了處理這種問題,TCP引入了持續計時器(Persistence timer),當A收到對方的零窗口通知時,就啟用該計時器,時間到則發送一個1字節的探測報文,對方會在此時回應自身的接收窗口大小,如果結果仍未0,則重設持續計時器,繼續等待。

2. 傳遞效率

一個顯而易見的問題是:單個發送字節單個確認,和窗口有一個空余即通知發送方發送一個字節,無疑增加了網絡中的許多不必要的報文(請想想為了一個字節數據而添加的40字節頭部吧!),所以我們的原則是盡可能一次多發送幾個字節,或者窗口空余較多的時候通知發送方一次發送多個字節。對于前者我們廣泛使用Nagle算法,即:

*1. 若發送應用進程要把發送的數據逐個字節地送到TCP的發送緩存,則發送方就把第一個數據字節先發送出去,把后面的字節先緩存起來;

*2. 當發送方收到第一個字節的確認后(也得到了網絡情況和對方的接收窗口大小),再把緩沖區的剩余字節組成合適大小的報文發送出去;

*3. 當到達的數據已達到發送窗口大小的一半或以達到報文段的最大長度時,就立即發送一個報文段;

對于后者我們往往的做法是讓接收方等待一段時間,或者接收方獲得足夠的空間容納一個報文段或者等到接受緩存有一半空閑的時候,再通知發送方發送數據。

三、擁塞控制

網絡中的鏈路容量和交換結點中的緩存和處理機都有著工作的極限,當網絡的需求超過它們的工作極限時,就出現了擁塞。擁塞控制就是防止過多的數據注入到網絡中,這樣可以使網絡中的路由器或鏈路不致過載。常用的方法就是:

1. 慢開始、擁塞控制

2. 快重傳、快恢復

一切的基礎還是慢開始,這種方法的思路是這樣的:

-1. 發送方維持一個叫做“擁塞窗口”的變量,該變量和接收端口共同決定了發送者的發送窗口;

-2. 當主機開始發送數據時,避免一下子將大量字節注入到網絡,造成或者增加擁塞,選擇發送一個1字節的試探報文;

-3. 當收到第一個字節的數據的確認后,就發送2個字節的報文;

-4. 若再次收到2個字節的確認,則發送4個字節,依次遞增2的指數級;

-5. 最后會達到一個提前預設的“慢開始門限”,比如24,即一次發送了24個分組,此時遵循下面的條件判定:

*1. cwnd 《 ssthresh, 繼續使用慢開始算法;

*2. cwnd 》 ssthresh,停止使用慢開始算法,改用擁塞避免算法;

*3. cwnd = ssthresh,既可以使用慢開始算法,也可以使用擁塞避免算法;

-6. 所謂擁塞避免算法就是:每經過一個往返時間RTT就把發送方的擁塞窗口+1,即讓擁塞窗口緩慢地增大,按照線性規律增長;

-7. 當出現網絡擁塞,比如丟包時,將慢開始門限設為原先的一半,然后將cwnd設為1,執行慢開始算法(較低的起點,指數級增長);

上述方法的目的是在擁塞發生時循序減少主機發送到網絡中的分組數,使得發生擁塞的路由器有足夠的時間把隊列中積壓的分組處理完畢。慢開始和擁塞控制算法常常作為一個整體使用,而快重傳和快恢復則是為了減少因為擁塞導致的數據包丟失帶來的重傳時間,從而避免傳遞無用的數據到網絡。快重傳的機制是:

-1. 接收方建立這樣的機制,如果一個包丟失,則對后續的包繼續發送針對該包的重傳請求;

-2. 一旦發送方接收到三個一樣的確認,就知道該包之后出現了錯誤,立刻重傳該包;

-3. 此時發送方開始執行“快恢復”算法:

*1. 慢開始門限減半;

*2. cwnd設為慢開始門限減半后的數值;

*3. 執行擁塞避免算法(高起點,線性增長);

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1377

    瀏覽量

    79186
  • TCP協議
    +關注

    關注

    1

    文章

    101

    瀏覽量

    12103
收藏 人收藏

    評論

    相關推薦

    TCP協議的性能測試與評估方法

    的、基于字節流的傳輸層通信協議。它通過三次握手建立連接,使用序列號和確認應答機制保證數據的有序傳輸,并通過滑動窗口機制控制數據流量,以避免網絡擁塞
    的頭像 發表于 01-22 10:03 ?64次閱讀

    如何優化TCP協議的性能

    優化TCP協議的性能可以從多個方面入手,以下是一些關鍵的策略和方法: 一、調整TCP參數 TCP窗口大小 : 重要性 :
    的頭像 發表于 01-22 09:52 ?84次閱讀

    TCP協議在網絡通信中的應用

    的、基于字節流的傳輸層通信協議。它的主要任務是確保數據能夠正確、完整地從一個網絡端點傳輸到另一個端點。TCP通過三次握手建立連接,通過序列號和確認應答機制保證數據的順序和完整性,通過滑動窗口
    的頭像 發表于 01-22 09:50 ?68次閱讀

    TCP協議的安全性分析

    使用確認機制來確保數據段被正確接收。如果一個段丟失,發送方將重新發送該段。 流量控制TCP使用窗口大小來控制發送方發送數據的速率,以避免接收方被過多的數據淹沒。
    的頭像 發表于 01-22 09:48 ?64次閱讀

    TCP協議與UDP協議的區別

    。 UDP(用戶數據報協議) : 無連接 :UDP不建立連接,數據可以直接發送,不需要任何握手過程。 不可靠性 :UDP不保證數據的可靠傳輸,數據包可能會丟失,不會重傳。 2. 數據傳輸 TCP : 流控制
    的頭像 發表于 01-22 09:44 ?77次閱讀

    什么是TCP協議及其工作原理

    協議之一。它提供了一種可靠的、有序的、基于字節流的數據傳輸服務。TCP協議的主要特點包括: 面向連接 :在數據傳輸之前,TCP需要在通信雙方之間建立一個連接。 可靠傳輸 :
    的頭像 發表于 01-22 09:41 ?141次閱讀

    TCP協議是什么

    在網絡通信的廣闊領域中,TCP(Transmission Control Protocol,傳輸控制協議)扮演著舉足輕重的角色。作為TCP/IP協議
    的頭像 發表于 10-09 13:54 ?794次閱讀

    深度解析TCP與UDP協議

    計算機與網絡設備要相互通信,它們必須遵循一種共同的方法或標準。對于不同硬件平臺和操作系統之間的交互而言,這種共同遵循的規范尤為關鍵。我們將這一系列指導通信過程的規則稱為“協議”。TCP 和 UDP
    的頭像 發表于 09-02 14:53 ?459次閱讀
    深度<b class='flag-5'>解析</b><b class='flag-5'>TCP</b>與UDP<b class='flag-5'>協議</b>

    一文了解TCP/IP協議

    TCP/IP協議是現代計算機網絡通信的基礎,是互聯網及局域網廣泛使用的一套協議TCP/IP協議集包括許多
    的頭像 發表于 08-07 15:38 ?2317次閱讀
    一文了解<b class='flag-5'>TCP</b>/IP<b class='flag-5'>協議</b>

    華納云:TCP IP協議的發展和優勢

    TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/互聯網協議)是互聯網和現代計算機網絡的基礎
    的頭像 發表于 07-25 16:49 ?536次閱讀

    plc協議解析網關是什么

    PLC協議解析網關是一種專門用于工業自動化領域的設備,它的主要功能是實現不同通信協議之間的轉換和解析,以便于不同類型的PLC、傳感器、執行器等設備能夠互相通信和數據交換。 在工業
    的頭像 發表于 07-12 15:41 ?371次閱讀
    plc<b class='flag-5'>協議</b><b class='flag-5'>解析</b>網關是什么

    TCP協議中的擁塞控制機制與網絡穩定性

    TCP協議中的擁塞控制機制與網絡穩定性的深度探討 隨著互聯網的快速發展,網絡流量呈現爆炸式增長,網絡擁塞問題逐漸凸顯。為了維護網絡的穩定運行
    的頭像 發表于 04-19 16:42 ?472次閱讀

    mqtt協議tcp協議區別

    MQTT協議TCP協議在設計和應用上存在以下主要區別: 1. 起源與設計:MQTT協議誕生于1999年互聯網初期,而TCP
    的頭像 發表于 04-01 09:15 ?1710次閱讀

    TCP協議技術之擁塞控制算法

    擁塞控制是在網絡層和傳輸層進行的功能。在網絡層,擁塞控制可以通過路由算法來控制數據包在網絡中的傳輸,以降低網絡
    的頭像 發表于 02-03 17:06 ?2345次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協議</b>技術之<b class='flag-5'>擁塞</b><b class='flag-5'>控制</b>算法

    TCP協議技術之自適應重傳

    自適應重傳是TCP協議中的一種擁塞控制機制,旨在通過智能的方式處理網絡擁塞,并進行相應的數據重傳,以提高網絡的可靠性和性能。
    的頭像 發表于 02-03 17:03 ?1594次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協議</b>技術之自適應重傳
    主站蜘蛛池模板: 免费看国产曰批40分钟| VIDEOSGGRATIS欧美另类| 99久久国产露脸国语对白| 国产精品亚洲精品久久品| 妈妈的朋友6未删减版完整在线| 色偷偷爱偷偷要| 真人美女精美小穴| 贵妃高h荡肉呻吟np杨玉环| 久久亚洲成a人片| 天天爽夜夜爽夜夜爽| 98国产精品人妻无码免费| 国产一区二区三区四区五在线观看| 欧美eee114| 一个人高清在线观看日本免费 | 国产露脸无码A区久久| 女女破视频在线观看| 夜夜草导航| 国产精品JIZZ在线观看A片| 挠黑色超薄丝袜脚心vk40分钟| 亚洲欧美偷拍视频一区| 丰满老熟女白浆直流| 免费一级毛片在线观看| 一道本无吗d d在线播放| 国产精品96久久久久久AV不卡| 男同志在线观看| 伊人无码高清| 含羞草国产亚洲精品岁国产精品| 出租屋交换人妻 全文| 久久青青草原| 亚洲黄色在线| 国产高清视频免费最新在线| 欧美亚洲精品真实在线| 综合网伊人| 精品视频免费在线| 亚洲AV久久无码精品蜜桃| 高hh乱亲女真实| 欧美一区二区三区久久综| 在线观看亚洲免费人成网址| 国精产品砖一区二区三区糖心| 色欲国产麻豆一精品一AV一免费| md2.pud 麻豆传媒官网|