91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP傳輸流量控制和擁塞避免方案

454398 ? 來(lái)源:博客園 ? 作者: lingjiango ? 2020-10-29 11:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

先來(lái)了解2個(gè)TCP的概念:

MSS:Maximum Segment Size,TCP一次傳輸發(fā)送的最大數(shù)據(jù)段長(zhǎng)度。

RTT:Round-Trip Time,往返時(shí)延,表示從發(fā)送端發(fā)送數(shù)據(jù)開(kāi)始,到發(fā)送端收到來(lái)自接收端的確認(rèn)(接收端收到數(shù)據(jù)后便立即發(fā)送確認(rèn)),總共經(jīng)歷的時(shí)延。

TCP傳輸大塊數(shù)據(jù)時(shí),肯定需要進(jìn)行數(shù)據(jù)分段,而每個(gè)分段所能攜帶的最大數(shù)據(jù)就是1個(gè)MSS,假設(shè)大塊數(shù)據(jù)為100個(gè)MSS,那么發(fā)送方發(fā)送的方式大概有如下兩種:

1、 每次發(fā)送1個(gè),收到接收方確認(rèn)后,才發(fā)送下1個(gè);

2、 一口氣發(fā)送100個(gè),然后收到對(duì)方一起確認(rèn);

顯然,方式1中,一個(gè)RTT只能處理一個(gè)包,這樣的傳輸效率太低了。而方式2看似很美好,實(shí)際會(huì)存在兩個(gè)問(wèn)題,一個(gè)是接收方的接收窗口未必能一次性接收這么多數(shù)據(jù),另外一個(gè)是網(wǎng)絡(luò)的帶寬也不一定足夠大,容易出現(xiàn)丟包事故。前一個(gè)問(wèn)題就是標(biāo)題中的流量控制(Flow control),TCP采用的是滑動(dòng)窗口機(jī)制(Sliding window),后一個(gè)問(wèn)題就是標(biāo)題中的擁塞控制(Congestion control)。發(fā)送方的發(fā)送窗口或者說(shuō)網(wǎng)絡(luò)傳輸交互就取決于這兩個(gè)問(wèn)題的控制,誰(shuí)控制的更嚴(yán)格,誰(shuí)就占據(jù)了決定性因素,這也是為什么兩者總是一起出現(xiàn)一起被討論。

流量控制(Flow control):

TCP uses an end-to-end flow control protocol to avoid having the sender send data too fast for the TCP receiver to receive and process it reliably. Having a mechanism for flow control is essential in an environment where machines of diverse network speeds communicate.

TCP使用端到端流量控制協(xié)議來(lái)避免發(fā)送方發(fā)送數(shù)據(jù)太快,以致TCP接收方不能可靠地接收和處理數(shù)據(jù)。在不同網(wǎng)絡(luò)速度的機(jī)器進(jìn)行通信的環(huán)境中,具有流量控制機(jī)制至關(guān)重要。

圖一

圖一為通過(guò)Wireshark抓包192.168.2.1和192.168.2.198的交互截圖,可以看到有個(gè)標(biāo)記Win,這個(gè)標(biāo)記的含義就是接收端告訴發(fā)送端自己還有多少緩沖區(qū)可以接收數(shù)據(jù)。于是發(fā)送端就可以根據(jù)這個(gè)接收端的處理能力來(lái)發(fā)送數(shù)據(jù),而不會(huì)導(dǎo)致接收端處理不過(guò)來(lái)。

[TCP zerowindow]& [TCP window Full]

提到Win標(biāo)記,就順便談一下Wireshark的[TCP zerowindow]和[TCP window Full],當(dāng)Win=0時(shí),Wireshark就會(huì)打上TCP zerowindow,表示緩存區(qū)已滿,不能再接收數(shù)據(jù)了。當(dāng)Wireshark在一個(gè)包上打上TCP window Full,就表示這個(gè)包的發(fā)送方已經(jīng)把對(duì)方聲明的接收窗口耗盡了。兩者的共同特點(diǎn)都是傳輸暫停,前者的含義是發(fā)送方無(wú)法再接收數(shù)據(jù),后者表示發(fā)送方無(wú)法再發(fā)送數(shù)據(jù)。

回過(guò)頭來(lái)再來(lái)說(shuō)滑動(dòng)窗口。

圖二截取自《TCP/IP詳解》

圖三取自參考資料

圖四取自參考資料

圖二和圖三可以知道接收方會(huì)通知發(fā)送方當(dāng)前已接收到的信息和可用窗口信息。

圖三和圖四可以看出來(lái)窗口滑動(dòng)的過(guò)程。

總結(jié):TCP的流量控制由滑動(dòng)窗口來(lái)實(shí)現(xiàn)的,滑動(dòng)窗口控制流量取決于接收方的窗口大小。

擁塞控制(Congestion control):

流量控制是端到端的交互,如果只是局域網(wǎng)內(nèi)的兩臺(tái)設(shè)備交互,我想通過(guò)滑動(dòng)窗口大概能控制得不差,但是實(shí)際網(wǎng)絡(luò)的情況非常復(fù)雜,發(fā)送方和接收方之間還有路由器和交換機(jī),網(wǎng)絡(luò)傳輸線路又復(fù)雜,這個(gè)時(shí)候就需要擁塞控制。

擁塞控制主要有四個(gè)算法慢啟動(dòng)、擁塞避免、快速重傳和快速恢復(fù)。

慢啟動(dòng):

討論慢啟動(dòng)算法先來(lái)了解下?lián)砣翱诘母拍?,這是慢啟動(dòng)算法為TCP發(fā)送方新增的窗口,congestion window,簡(jiǎn)稱cwnd。對(duì)應(yīng)上文,發(fā)送方取擁塞窗口和滑動(dòng)窗口的最小值作為發(fā)送上限,即誰(shuí)嚴(yán)格誰(shuí)起決定因素。

1、 連接建立開(kāi)始,發(fā)送方不了解網(wǎng)絡(luò)的情況,cwnd初始化比較小的值,RFC建議2-4個(gè)MSS,具體視MSS的大小而定;

If (MSS <= 1095 bytes)

then win <= 4 * MSS;

If (1095 bytes < MSS < 2190 bytes)

then win <= 4380;

If (2190 bytes <= MSS)

then win <= 2 * MSS; 摘自rfc3390.

2、 如果發(fā)送出去的包都被ACK,說(shuō)明還未到達(dá)擁塞點(diǎn),則增加擁塞窗口,RFC建議的是每收到n個(gè)ACK,則cwnd新增n個(gè)MSS,呈指數(shù)關(guān)系增長(zhǎng),雖然這個(gè)過(guò)程看似比較快,但是基數(shù)比較低,所以被稱為“慢啟動(dòng)”。

擁塞避免:

其實(shí)慢啟動(dòng)除了維護(hù)了cwnd,還維護(hù)了慢啟動(dòng)臨界值ssthresh,一般將ssthresh設(shè)置為65535字節(jié)。在cwnd<=ssthresh時(shí),還是處于慢啟動(dòng)環(huán)節(jié),一旦>ssthresh,開(kāi)始進(jìn)入擁塞避免。

RFC建議擁塞避免環(huán)節(jié),無(wú)論一個(gè)RTT可以收到多少個(gè)ACK,每一次確認(rèn)都只新增1個(gè)MSS,呈線性關(guān)系增長(zhǎng),避免快速的觸碰到網(wǎng)絡(luò)擁塞點(diǎn)。

圖五取自參考資料

快速重傳和快速恢復(fù):

進(jìn)入擁塞避免之后,最終還是會(huì)碰到擁塞點(diǎn),發(fā)送方此時(shí)遲遲得不到確認(rèn),當(dāng)然得不到確認(rèn)也有可能是因?yàn)檠舆t確認(rèn)導(dǎo)致的。發(fā)送方此時(shí)決定等待一段時(shí)間,如果一段時(shí)間后還是得不到確認(rèn),就發(fā)起重傳,這個(gè)過(guò)程叫做超時(shí)重傳。從發(fā)出原始包到重傳該包的時(shí)間叫做RTO(Retransmission TimeOut)。

進(jìn)入超時(shí)重傳后,RFC建議將cwnd設(shè)置為1個(gè)MSS,而對(duì)于ssthresh,RFC5681建議的是發(fā)生擁塞時(shí)未被ACK的數(shù)據(jù)量的1/2,但必須大于等于2個(gè)MSS。然后重新進(jìn)入慢啟動(dòng)環(huán)節(jié)。超時(shí)重傳因?yàn)樾枰却齊TO之后才能進(jìn)入新的恢復(fù)環(huán)節(jié),所以對(duì)網(wǎng)絡(luò)性能的影響是比較大的。所以各路大神又想到了一個(gè)新的方式,看能否無(wú)需等待RTO,就發(fā)起重傳,這種方式叫做快速重傳。快速重傳規(guī)定在收到3個(gè)及以上重復(fù)ACK時(shí)就觸發(fā)重傳,不再進(jìn)入慢啟動(dòng)環(huán)節(jié),然后直接進(jìn)入擁塞避免,這個(gè)就是快速恢復(fù)算法。為什么是3個(gè)?因?yàn)?-2個(gè)重復(fù)ACK,很有可能是亂序,只有在3個(gè)及以上的時(shí)候才是有可能丟包了。
編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1425

    瀏覽量

    83557
  • 網(wǎng)絡(luò)傳輸
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    18595
  • 擁塞
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    9622
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    TCP/IP(Socket)協(xié)議深度剖析

    TCP/IP協(xié)議作為互聯(lián)網(wǎng)通信的基礎(chǔ)架構(gòu),其核心機(jī)制Socket編程承載著全球數(shù)據(jù)交換的使命。本文將深入剖析這一協(xié)議的七層架構(gòu)、三次握手與四次揮手的精妙設(shè)計(jì)、流量控制擁塞控制的動(dòng)態(tài)平
    的頭像 發(fā)表于 03-03 17:06 ?541次閱讀

    差示掃描量熱儀DSC-600C探究精準(zhǔn)氣體流量控制對(duì)DSC的影響

    差示掃描量熱儀(DSC)的核心測(cè)量?jī)r(jià)值源于樣品與參比物的熱流差監(jiān)測(cè),而氣體流量的穩(wěn)定性直接決定實(shí)驗(yàn)環(huán)境的均衡性。匯誠(chéng)儀器的差示掃描量熱儀DSC-600C憑借精準(zhǔn)氣體流量控制技術(shù),從源頭規(guī)避不對(duì)稱溫度
    的頭像 發(fā)表于 12-16 15:21 ?331次閱讀
    差示掃描量熱儀DSC-600C探究精準(zhǔn)氣體<b class='flag-5'>流量控制</b>對(duì)DSC的影響

    氣體質(zhì)量流量控制器顯示波動(dòng)?一步步教你診斷與處理!

    液體倒流,導(dǎo)致MFC內(nèi)部受到污染。 AMC2100氣體質(zhì)量流量控制器 問(wèn)題解決方案 產(chǎn)品返廠后,技術(shù)團(tuán)隊(duì)對(duì)受污染的MFC進(jìn)行了深度清潔與校準(zhǔn),設(shè)備最終恢復(fù)穩(wěn)定運(yùn)行。同時(shí),服務(wù)人員向客戶強(qiáng)調(diào)了規(guī)范操作的重要性,并建議在出口處加裝單向
    的頭像 發(fā)表于 11-25 15:03 ?445次閱讀
    氣體質(zhì)量<b class='flag-5'>流量控制</b>器顯示波動(dòng)?一步步教你診斷與處理!

    一文梳理氣體流量控制器(MFC)堵塞常見(jiàn)問(wèn)題

    在實(shí)驗(yàn)室或工廠中,氣體質(zhì)量流量控制器突然出現(xiàn)流量異常、響應(yīng)遲緩,無(wú)疑是令人困擾的情況。作為控制工藝氣體“呼吸”的關(guān)鍵部件,MFC的穩(wěn)定性至關(guān)重要。當(dāng)流量示數(shù)不準(zhǔn)或歸零時(shí),堵塞通常是首要
    的頭像 發(fā)表于 11-24 14:43 ?573次閱讀
    一文梳理氣體<b class='flag-5'>流量控制</b>器(MFC)堵塞常見(jiàn)問(wèn)題

    解析DCQCN:RDMA在數(shù)據(jù)中心網(wǎng)絡(luò)的關(guān)鍵擁塞控制協(xié)議

    DCQCN ( Data Center Quantized Congestion Notification),數(shù)據(jù)中心量化擁塞通知。它是一種專門為數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)計(jì)的端到端擁塞控制協(xié)議。其核心目的是在使用RDMA(RoCEv2)
    的頭像 發(fā)表于 09-15 11:45 ?1893次閱讀
    解析DCQCN:RDMA在數(shù)據(jù)中心網(wǎng)絡(luò)的關(guān)鍵<b class='flag-5'>擁塞</b><b class='flag-5'>控制</b>協(xié)議

    HORIBA D700系列氣體質(zhì)量流量控制器介紹

    在半導(dǎo)體制造向3nm及以下制程突破的關(guān)鍵期,氣體流量控制的精度與穩(wěn)定性直接影響晶圓良率。HORIBA D700系列氣體質(zhì)量流量控制器針對(duì)半導(dǎo)體制造工藝中的極端需求設(shè)計(jì),涵蓋四大核心型號(hào):D700MG、D700WR、D700uF、D700T,該系列通過(guò)模塊化架構(gòu)實(shí)現(xiàn)從實(shí)驗(yàn)室
    的頭像 發(fā)表于 07-28 11:18 ?1278次閱讀
    HORIBA D700系列氣體質(zhì)量<b class='flag-5'>流量控制</b>器介紹

    Modbus TCP轉(zhuǎn)Profibus網(wǎng)關(guān)輕松讓流量計(jì)與DCS通訊

    工業(yè)自動(dòng)化系統(tǒng)中,協(xié)議差異常成為設(shè)備互聯(lián)的“語(yǔ)言障礙”。例如,當(dāng)流量計(jì)采用Modbus TCP協(xié)議,而DCS系統(tǒng)僅支持Profibus DP時(shí),如何實(shí)現(xiàn)無(wú)縫通信?本文將結(jié)合技術(shù)原理與真實(shí)案例,拆解這一問(wèn)題的核心解決方案——Mod
    的頭像 發(fā)表于 07-06 08:19 ?1821次閱讀
    Modbus <b class='flag-5'>TCP</b>轉(zhuǎn)Profibus網(wǎng)關(guān)輕松讓<b class='flag-5'>流量</b>計(jì)與DCS通訊

    CYW20706和CYW20719/CYW20721 TLE9243QK_BASE_BOARD模塊PUART是否支持帶流量控制的SVC_IPOSIM_LFTE_3M波特率呢?

    先生您好:CYW20706 和 CYW20719/CYW20721 TLE9243QK_BASE_BOARD模塊 PUART 是否支持帶流量控制的SVC_IPOSIM_LFTE_3M波特率?
    發(fā)表于 07-02 07:41

    RDMA簡(jiǎn)介7之可靠傳輸

    。RoCE v2協(xié)議實(shí)現(xiàn)可靠傳輸的技術(shù)手段共有三種,分別為:丟包重傳機(jī)制、流量控制擁塞管理。接下來(lái)將就這三種技術(shù)手段進(jìn)行詳細(xì)分析。 (1)丟包重傳機(jī)制 為了簡(jiǎn)化設(shè)計(jì)同時(shí)降低成本,RoCE v2協(xié)議使用了
    發(fā)表于 06-13 10:01

    AI視覺(jué)外觀檢測(cè)技術(shù)在NR功率電感質(zhì)量控制中的方案應(yīng)用

    正運(yùn)動(dòng)NR功率電感質(zhì)量控制方案應(yīng)用
    的頭像 發(fā)表于 06-06 11:36 ?821次閱讀
    AI視覺(jué)外觀檢測(cè)技術(shù)在NR功率電感質(zhì)<b class='flag-5'>量控制</b>中的<b class='flag-5'>方案</b>應(yīng)用

    CY7C65223-24LTXI不使用流量控制功能時(shí),RTS 和 CTS 引腳是否應(yīng)處于打開(kāi)狀態(tài)?

    請(qǐng)告訴我有關(guān) CY7C65223-24LTXI 的引腳處理的信息。 不使用流量控制功能時(shí),RTS 和 CTS 引腳是否應(yīng)處于打開(kāi)狀態(tài)?
    發(fā)表于 05-23 07:56

    Profibus DP主站轉(zhuǎn)Modbus RTU/TCP如何把E+H流量計(jì)接入到modbus

    ,不同的設(shè)備可能采用不同的通訊協(xié)議,這就需要一種能夠?qū)崿F(xiàn)不同協(xié)議之間轉(zhuǎn)換的設(shè)備來(lái)確保數(shù)據(jù)的順暢傳輸。本文將詳細(xì)介紹E+H流量計(jì)與Profibus DP主站轉(zhuǎn)Modbus RTU/TCP網(wǎng)關(guān)通訊的相關(guān)知識(shí)。
    的頭像 發(fā)表于 05-13 15:35 ?698次閱讀
    Profibus DP主站轉(zhuǎn)Modbus RTU/<b class='flag-5'>TCP</b>如何把E+H<b class='flag-5'>流量</b>計(jì)接入到modbus

    質(zhì)量流量控制器在薄膜沉積工藝中的應(yīng)用

    的反復(fù)進(jìn)行,做出堆疊起來(lái)的導(dǎo)電或絕緣層。 用來(lái)鍍膜的這個(gè)設(shè)備就叫薄膜沉積設(shè)備,制造工藝按照其成膜方法可分為兩大類:物理氣相沉積(PVD)和化學(xué)氣相沉積(CVD)。 在沉積過(guò)程中進(jìn)行穩(wěn)定和精確的氣體控制 物理氣相沉積是Sensirion質(zhì)量流量控制器最成功的應(yīng)用場(chǎng)景
    發(fā)表于 04-16 14:25 ?1139次閱讀
    質(zhì)量<b class='flag-5'>流量控制</b>器在薄膜沉積工藝中的應(yīng)用

    永磁同步電機(jī)矢量控制策略分析

    本文通過(guò)矢量控制策略采用 id=0 控制方案快速準(zhǔn)確地控制轉(zhuǎn)矩,實(shí)現(xiàn)調(diào)速系統(tǒng)具有較高的動(dòng)態(tài)性能。并利用了 Matlab 工具對(duì)永磁同步電機(jī)矢量控制
    發(fā)表于 03-20 12:57

    氣體質(zhì)量流量控制器MFC4000在氫燃料電池中的應(yīng)用

    燃料電池簡(jiǎn)介及氣體流量控制的重要性 氫燃料電池是將氫氣和氧氣的化學(xué)能直接轉(zhuǎn)換成電能的發(fā)電裝置。其基本原理是電解水的逆反應(yīng),把氫和氧分別供給陽(yáng)極和陰極,氫通過(guò)陽(yáng)極向外擴(kuò)散和電解質(zhì)發(fā)生反應(yīng)后,放出電子
    的頭像 發(fā)表于 03-19 15:14 ?870次閱讀
    氣體質(zhì)量<b class='flag-5'>流量控制</b>器MFC4000在氫燃料電池中的應(yīng)用