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

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

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

通俗地講解TCP的固定窗口和滑動(dòng)窗口

如意 ? 來源:廈門微思網(wǎng)絡(luò) ? 作者:小微 ? 2020-08-13 09:56 ? 次閱讀

固定窗口

TCP 還提供了流量控制機(jī)制。 流量控制可以調(diào)整給定會(huì)話中源和目的之間的數(shù)據(jù)流速,有助于保持 TCP 傳輸?shù)目煽啃浴?流量控制的實(shí)施方法包括限制一次可以轉(zhuǎn)發(fā)的數(shù)據(jù)段數(shù)量,并要求在發(fā)送更多數(shù)據(jù)段之前確認(rèn)接收。

要實(shí)施流量控制,TCP 要確定的第一件事是目的設(shè)備可以接受的數(shù)據(jù)段數(shù)量。 TCP 報(bào)頭包括一個(gè)稱為“窗口大小”的 16 位字段。 這是 TCP 會(huì)話的目的設(shè)備一次可以接受和處理的字節(jié)數(shù)。 通過源和目標(biāo)之間的三次握手,會(huì)話開始時(shí)即可確定初始窗口大小。 一旦同意,源設(shè)備必須根據(jù)窗口大小限制發(fā)送到目的設(shè)備的數(shù)據(jù)段數(shù)量。 只有源設(shè)備收到數(shù)據(jù)段已接收的確認(rèn)之后,才能繼續(xù)發(fā)送更多會(huì)話數(shù)據(jù)。

在接收確認(rèn)的延遲過程中,發(fā)送方不會(huì)發(fā)送任何額外數(shù)據(jù)段。 如果網(wǎng)絡(luò)擁堵,或者接收主機(jī)資源緊張,延遲時(shí)間可能就更長。 延遲時(shí)間越長,該會(huì)話過程的有效傳輸速率越低, 當(dāng)運(yùn)行多個(gè)會(huì)話時(shí),減緩每個(gè)會(huì)話的數(shù)據(jù)傳輸有助于減少網(wǎng)絡(luò)和目的設(shè)備上的資源沖突。

通俗地講解TCP的固定窗口和滑動(dòng)窗口

請(qǐng)參看上圖中對(duì)窗口大小和確認(rèn)消息的簡(jiǎn)易展示。 在本例中,TCP 會(huì)話的初始窗口大小為 3000 字節(jié)。 此會(huì)話的發(fā)送方在傳輸 3000 字節(jié)后等待這些數(shù)據(jù)的確認(rèn)消息,以便繼續(xù)傳輸更多數(shù)據(jù)段。 一旦發(fā)送方收到接收方發(fā)送的確認(rèn)消息,它就可以傳輸另外 3000 字節(jié)的數(shù)據(jù)段。

TCP 使用窗口大小嘗試管理傳輸速率,將其調(diào)整為網(wǎng)絡(luò)和目的設(shè)備可以支持的最大速度,同時(shí)最大限度減少損失和重新傳輸。

TCP滑動(dòng)窗口

我們也可以通過動(dòng)態(tài)窗口大小來控制數(shù)據(jù)流量。 當(dāng)網(wǎng)絡(luò)資源受到限制時(shí),TCP 可以減小窗口的大小,這樣,目的主機(jī)就需要更加頻繁地確認(rèn)所接收的數(shù)據(jù)段。 由于源主機(jī)需要更加頻繁地等待數(shù)據(jù)確認(rèn),這便可以大大降低傳輸?shù)乃俾省?/p>

接收主機(jī)將窗口大小值發(fā)送到發(fā)送主機(jī),表示其準(zhǔn)備接收的字節(jié)數(shù)。 如果目的主機(jī)由于緩沖內(nèi)存受限需要降低通信速率,那么它向源主機(jī)發(fā)送的確認(rèn)信息中可以包含一個(gè)較小的窗口大小值。

通俗地講解TCP的固定窗口和滑動(dòng)窗口

如圖所示,如果接收主機(jī)發(fā)生擁堵,它可以向發(fā)送主機(jī)發(fā)送指定了較小窗口大小的數(shù)據(jù)段。 圖中顯示,其中一個(gè)數(shù)據(jù)段丟失了。 接收方將返回?cái)?shù)據(jù)段的 TCP 報(bào)頭中的窗口字段值由 3,000 減為 1,500,即將窗口大小改為 1,500。

在沒有數(shù)據(jù)丟失或資源限制的情況下傳輸一段時(shí)間后,接收方開始增加窗口字段,這樣可以減少網(wǎng)絡(luò)開銷,因?yàn)楸仨毎l(fā)送的確認(rèn)減少。 窗口大小持續(xù)增加,直至出現(xiàn)數(shù)據(jù)丟失,然后窗口大小隨之減少。

窗口大小的這種動(dòng)態(tài)增減是 TCP 中的一個(gè)持續(xù)不斷的過程。 在高效網(wǎng)絡(luò)中,由于不丟失數(shù)據(jù),窗口可能會(huì)相當(dāng)大。 在基層基礎(chǔ)設(shè)施面臨壓力的網(wǎng)絡(luò)中,窗口可能會(huì)很小。

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

    關(guān)注

    9

    文章

    1698

    瀏覽量

    64218
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1324

    瀏覽量

    78759
  • 流量控制
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    9634
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    中值濾波窗口大小對(duì)結(jié)果影響有哪些

    中值濾波是一種常用的數(shù)字濾波技術(shù),它通過將信號(hào)中的每個(gè)點(diǎn)用其鄰域內(nèi)的中值替換來實(shí)現(xiàn)信號(hào)的平滑和去噪。中值濾波窗口的大小對(duì)濾波結(jié)果有很大的影響,以下是對(duì)中值濾波窗口大小對(duì)結(jié)果影響的分析。 窗口大小
    的頭像 發(fā)表于 07-29 09:10 ?274次閱讀

    請(qǐng)問espnow的窗口同步機(jī)制如何使用?

    esp_now_set_wake_window 但喚醒后的時(shí)間會(huì)變化,并不是固定的,所以多個(gè)espnow設(shè)備僅靠這兩個(gè)函數(shù)是無法實(shí)現(xiàn)窗口同步的 請(qǐng)問如何實(shí)現(xiàn)介紹中所說的窗口同步?這個(gè)需求意義重大
    發(fā)表于 06-05 07:23

    鴻蒙開發(fā)接口圖形圖像:【@ohos.window (窗口)】

    窗口提供管理窗口的一些基礎(chǔ)能力,包括對(duì)當(dāng)前窗口的創(chuàng)建、銷毀、各屬性設(shè)置,以及對(duì)各窗口間的管理調(diào)度。
    的頭像 發(fā)表于 05-30 10:07 ?954次閱讀
    鴻蒙開發(fā)接口圖形圖像:【@ohos.window (<b class='flag-5'>窗口</b>)】

    如何運(yùn)用emwin把顯示屏分為上下兩個(gè)窗口,實(shí)現(xiàn)上下窗口分別可以左右滑動(dòng)?

    怎么運(yùn)用emwin把顯示屏分為上下兩個(gè)窗口,可以實(shí)現(xiàn)上下窗口分別可以左右滑動(dòng)?
    發(fā)表于 04-26 06:03

    如何使用RA MCU中ADC窗口比較功能

    如何使用RA MCU中ADC窗口比較功能
    的頭像 發(fā)表于 04-12 08:06 ?217次閱讀
    如何使用RA MCU中ADC<b class='flag-5'>窗口</b>比較功能

    鴻蒙OS元服務(wù)開發(fā):【(Stage模型)設(shè)置應(yīng)用主窗口

    在Stage模型下,應(yīng)用主窗口由UIAbility創(chuàng)建并維護(hù)生命周期。在UIAbility的onWindowStageCreate回調(diào)中,通過WindowStage獲取應(yīng)用主窗口,即可對(duì)其進(jìn)行屬性設(shè)置等操作。還可以在應(yīng)用配置文件中設(shè)置應(yīng)用主
    的頭像 發(fā)表于 04-03 18:28 ?1086次閱讀
    鴻蒙OS元服務(wù)開發(fā):【(Stage模型)設(shè)置應(yīng)用主<b class='flag-5'>窗口</b>】

    MCGS嵌入版組態(tài)軟件主控窗口的屬性設(shè)置

    MCGS嵌入版組態(tài)軟件的主控窗口是組態(tài)工程的主窗口,是所有設(shè)備窗口和用戶窗口的父窗口,主控窗口
    發(fā)表于 03-28 11:34 ?886次閱讀
    MCGS嵌入版組態(tài)軟件主控<b class='flag-5'>窗口</b>的屬性設(shè)置

    窗口子系統(tǒng)基本概念與流程分析

    窗口子系統(tǒng)位于 fundationwindowmanager 目錄下,提供對(duì)窗口與 Display 管理的基礎(chǔ)能力 概覽 窗口是什么 每個(gè) Ability 在創(chuàng)建時(shí)都會(huì)創(chuàng)建一個(gè)主窗口
    的頭像 發(fā)表于 03-05 09:45 ?387次閱讀
    <b class='flag-5'>窗口</b>子系統(tǒng)基本概念與流程分析

    分布式神器-限流器的四種限流方法

    常見的限流算法包括計(jì)數(shù)器、固定窗口、滑動(dòng)窗口、漏桶和令牌桶等。其中,計(jì)數(shù)器是最簡(jiǎn)單的限流算法,它通過統(tǒng)計(jì)請(qǐng)求的數(shù)量來進(jìn)行限流,但缺乏時(shí)間概念,容易出現(xiàn)流量突增的情況。
    的頭像 發(fā)表于 02-06 14:17 ?1361次閱讀
    分布式神器-限流器的四種限流方法

    鴻蒙應(yīng)用/元服務(wù)開發(fā)-窗口(Stage模型)設(shè)置應(yīng)用主窗口

    一、 設(shè)置應(yīng)用主窗口****說明 在Stage模型下,應(yīng)用主窗口由UIAbility創(chuàng)建并維護(hù)生命周期。在UIAbility的onWindowStageCreate回調(diào)中,通過WindowStage
    發(fā)表于 02-05 14:45

    VS Code 1.85發(fā)布,新增浮動(dòng)編輯器窗口

    在此版本中,你可以將編輯器從主窗口移到自己的輕量級(jí)窗口中。對(duì)一個(gè)窗口中的編輯器所做的更改會(huì)立即應(yīng)用到打開編輯器的所有其他窗口。創(chuàng)建浮動(dòng)編輯器窗口
    的頭像 發(fā)表于 12-10 15:56 ?1502次閱讀
    VS Code 1.85發(fā)布,新增浮動(dòng)編輯器<b class='flag-5'>窗口</b>

    以工藝窗口建模探索路徑:使用虛擬制造評(píng)估先進(jìn)DRAM電容器圖形化的工藝窗口

    以工藝窗口建模探索路徑:使用虛擬制造評(píng)估先進(jìn)DRAM電容器圖形化的工藝窗口
    的頭像 發(fā)表于 11-23 09:04 ?321次閱讀
    以工藝<b class='flag-5'>窗口</b>建模探索路徑:使用虛擬制造評(píng)估先進(jìn)DRAM電容器圖形化的工藝<b class='flag-5'>窗口</b>

    python控制windows窗口,并輸入數(shù)據(jù)

    在當(dāng)今數(shù)字化的時(shí)代,軟件應(yīng)用已經(jīng)成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。許多應(yīng)用程序需要與用戶進(jìn)行交互,而控制窗口和實(shí)現(xiàn)數(shù)據(jù)輸入是用戶體驗(yàn)中至關(guān)重要的一部分。Python作為一種多用途的編程語言,可以用
    的頭像 發(fā)表于 11-22 14:11 ?2464次閱讀

    Python自帶的命令窗口

    Python自帶的命令窗口,也稱為Python交互式解釋器,是Python編程語言的一個(gè)重要工具,它允許用戶在命令行界面中輸入和執(zhí)行Python代碼。不同于編寫腳本并保存為文件后再執(zhí)行,Python
    的頭像 發(fā)表于 11-22 14:02 ?710次閱讀

    python的終端窗口怎么打開

    在Windows系統(tǒng)上,你可以通過以下幾種方法打開Python的終端窗口: 使用命令提示符打開終端窗口: 按下Win + R,打開“運(yùn)行”對(duì)話框。 輸入“cmd”,然后點(diǎn)擊“確定”。 這將打開
    的頭像 發(fā)表于 11-22 11:23 ?5723次閱讀