0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通俗地讲解TCP的固定窗口和滑动窗口

如意 来源:厦门微思网络 作者:小微 2020-08-13 09:56 次阅读

固定窗口

TCP 还提供了流量控制机制。 流量控制可以调整给定会话中源和目的之间的数据流速,有助于保持 TCP 传输的可靠性。 流量控制的实施方法包括限制一次可以转发的数据段数量,并要求在发送更多数据段之前确认接收。

要实施流量控制,TCP 要确定的第一件事是目的设备可以接受的数据段数量。 TCP 报头包括一个称为“窗口大小”的 16 位字段。 这是 TCP 会话的目的设备一次可以接受和处理的字节数。 通过源和目标之间的三次握手,会话开始时即可确定初始窗口大小。 一旦同意,源设备必须根据窗口大小限制发送到目的设备的数据段数量。 只有源设备收到数据段已接收的确认之后,才能继续发送更多会话数据。

在接收确认的延迟过程中,发送方不会发送任何额外数据段。 如果网络拥堵,或者接收主机资源紧张,延迟时间可能就更长。 延迟时间越长,该会话过程的有效传输速率越低, 当运行多个会话时,减缓每个会话的数据传输有助于减少网络和目的设备上的资源冲突。

通俗地讲解TCP的固定窗口和滑动窗口

请参看上图中对窗口大小和确认消息的简易展示。 在本例中,TCP 会话的初始窗口大小为 3000 字节。 此会话的发送方在传输 3000 字节后等待这些数据的确认消息,以便继续传输更多数据段。 一旦发送方收到接收方发送的确认消息,它就可以传输另外 3000 字节的数据段。

TCP 使用窗口大小尝试管理传输速率,将其调整为网络和目的设备可以支持的最大速度,同时最大限度减少损失和重新传输。

TCP滑动窗口

我们也可以通过动态窗口大小来控制数据流量。 当网络资源受到限制时,TCP 可以减小窗口的大小,这样,目的主机就需要更加频繁地确认所接收的数据段。 由于源主机需要更加频繁地等待数据确认,这便可以大大降低传输的速率。

接收主机将窗口大小值发送到发送主机,表示其准备接收的字节数。 如果目的主机由于缓冲内存受限需要降低通信速率,那么它向源主机发送的确认信息中可以包含一个较小的窗口大小值。

通俗地讲解TCP的固定窗口和滑动窗口

如图所示,如果接收主机发生拥堵,它可以向发送主机发送指定了较小窗口大小的数据段。 图中显示,其中一个数据段丢失了。 接收方将返回数据段的 TCP 报头中的窗口字段值由 3,000 减为 1,500,即将窗口大小改为 1,500。

在没有数据丢失或资源限制的情况下传输一段时间后,接收方开始增加窗口字段,这样可以减少网络开销,因为必须发送的确认减少。 窗口大小持续增加,直至出现数据丢失,然后窗口大小随之减少。

窗口大小的这种动态增减是 TCP 中的一个持续不断的过程。 在高效网络中,由于不丢失数据,窗口可能会相当大。 在基层基础设施面临压力的网络中,窗口可能会很小。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据传输
    +关注

    关注

    9

    文章

    1513

    浏览量

    63556
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1264

    浏览量

    78257
  • 流量控制
    +关注

    关注

    0

    文章

    26

    浏览量

    9606
收藏 人收藏

    评论

    相关推荐

    MCGS嵌入版组态软件主控窗口的属性设置

    MCGS嵌入版组态软件的主控窗口是组态工程的主窗口,是所有设备窗口和用户窗口的父窗口,主控窗口
    发表于 03-28 11:34 141次阅读
    MCGS嵌入版组态软件主控<b class='flag-5'>窗口</b>的属性设置

    窗口子系统基本概念与流程分析

    窗口子系统位于 fundationwindowmanager 目录下,提供对窗口与 Display 管理的基础能力 概览 窗口是什么 每个 Ability 在创建时都会创建一个主窗口
    的头像 发表于 03-05 09:45 170次阅读
    <b class='flag-5'>窗口</b>子系统基本概念与流程分析

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

    常见的限流算法包括计数器、固定窗口滑动窗口、漏桶和令牌桶等。其中,计数器是最简单的限流算法,它通过统计请求的数量来进行限流,但缺乏时间概念,容易出现流量突增的情况。
    的头像 发表于 02-06 14:17 351次阅读
    分布式神器-限流器的四种限流方法

    鸿蒙应用/元服务开发-窗口(Stage模型)设置应用主窗口

    一、 设置应用主窗口****说明 在Stage模型下,应用主窗口由UIAbility创建并维护生命周期。在UIAbility的onWindowStageCreate回调中,通过WindowStage
    发表于 02-05 14:45

    VS Code 1.85发布,新增浮动编辑器窗口

    在此版本中,你可以将编辑器从主窗口移到自己的轻量级窗口中。对一个窗口中的编辑器所做的更改会立即应用到打开编辑器的所有其他窗口。创建浮动编辑器窗口
    的头像 发表于 12-10 15:56 1194次阅读
    VS Code 1.85发布,新增浮动编辑器<b class='flag-5'>窗口</b>

    以工艺窗口建模探索路径:使用虚拟制造评估先进DRAM电容器图形化的工艺窗口

    以工艺窗口建模探索路径:使用虚拟制造评估先进DRAM电容器图形化的工艺窗口
    的头像 发表于 11-23 09:04 193次阅读
    以工艺<b class='flag-5'>窗口</b>建模探索路径:使用虚拟制造评估先进DRAM电容器图形化的工艺<b class='flag-5'>窗口</b>

    python控制windows窗口,并输入数据

    在当今数字化的时代,软件应用已经成为人们日常生活中不可或缺的一部分。许多应用程序需要与用户进行交互,而控制窗口和实现数据输入是用户体验中至关重要的一部分。Python作为一种多用途的编程语言,可以用
    的头像 发表于 11-22 14:11 962次阅读

    Python自带的命令窗口

    Python自带的命令窗口,也称为Python交互式解释器,是Python编程语言的一个重要工具,它允许用户在命令行界面中输入和执行Python代码。不同于编写脚本并保存为文件后再执行,Python
    的头像 发表于 11-22 14:02 414次阅读

    python的终端窗口怎么打开

    在Windows系统上,你可以通过以下几种方法打开Python的终端窗口: 使用命令提示符打开终端窗口: 按下Win + R,打开“运行”对话框。 输入“cmd”,然后点击“确定”。 这将打开
    的头像 发表于 11-22 11:23 2688次阅读

    MM32F0140学习笔记——窗口看门狗(WWDG)

    MM32F0140学习笔记——窗口看门狗(WWDG)
    的头像 发表于 10-27 09:45 313次阅读
    MM32F0140学习笔记——<b class='flag-5'>窗口</b>看门狗(WWDG)

    LabVIEW窗口最小化至托盘菜单教程

    LabVIEW窗口最小化至托盘菜单 可以双击弹出窗口 也可以通过右击调用其功能事件
    发表于 08-10 17:11 62次下载

    Elxflash离线工具窗口下载

    电子发烧友网站提供《Elxflash离线工具窗口下载.zip》资料免费下载
    发表于 07-29 10:17 0次下载
    Elxflash离线工具<b class='flag-5'>窗口</b>下载

    Elxflash离线工具窗口

    电子发烧友网站提供《Elxflash离线工具窗口.zip》资料免费下载
    发表于 07-24 15:00 0次下载
    Elxflash离线工具<b class='flag-5'>窗口</b>

    窗口看门狗的基础知识

    随着窗口看门狗变得越来越普遍,对其操作有一个基本的了解非常重要。本应用笔记介绍了窗口看门狗的几个特性,供读者了解MAX20478和MAX20480产品系列的一般知识。这些功能包括可编程扩展窗口
    的头像 发表于 06-15 14:20 766次阅读
    <b class='flag-5'>窗口</b>看门狗的基础知识

    STM32窗口看门狗详解

    本文将介绍窗口看门狗,并通过按键模拟触发程序死机、进而触发提前唤醒中断、并复位程序。
    的头像 发表于 05-01 09:06 947次阅读
    STM32<b class='flag-5'>窗口</b>看门狗详解