首页 > 其他分享 >【链路层】流量控制:发送窗口大小和链路利用率

【链路层】流量控制:发送窗口大小和链路利用率

时间:2024-10-16 11:33:54浏览次数:7  
标签:发送窗口 带宽 发送 RTT 链路 2BD 利用率 链路层

一直觉得公式分母似乎有些小问题,结果仔细一画图分析就是对的

在数据链路层的滑动窗口式流量控制中,需要确定发送端的发送窗口大小(最大在途帧数)。这个问题的讨论引出了链路利用率和实际数据传输速率的概念和计算。

结论

链路利用率(信道利用率,以下简称利用率):发送方在一个发送周期的时间内,有效发送数据的时间占整个发送周期时间的比率。
链路带宽(信道带宽,以下简称带宽),也即理论数据传输速率,单位b/s。
带宽延迟积(BDP)= 带宽 \(\times\) RTT/2,单位就是数据量b。
信道吞吐率,也即实际数据传输速率,单位b/s

定义以下量:

  • BD = BDP / 数据帧长:一个带宽延迟积包含多少数据帧,信道单向最多能发所少数据帧
  • \(T_s\) = 数据帧长 / 带宽:数据帧的发送时间
  • \(T_a\) = ack帧长 / 带宽:确认帧的发送时间
  • \(w\):发送窗口大小,不考虑接收窗口大小

则有:

  • 最大有效的窗口大小为 w = 2BD+1,此时链路理论上可不停发出帧。虽然设置上w可超过有效大小,但以下我们只考虑有效值,因而有\(w \leq 2BD+1\)
  • 利用率 \(\leq \frac{w}{2BD+1}\),取等时为完美链路
  • 实际利用率 \(= \frac{w\cdot T_s}{T_s + RTT + T_a}\)
  • 实际数据传输速率 = \(\min\{ \frac{w \cdot 数据帧长}{T_s+RTT+T_a}, \textrm{带宽} \}\)
  • 从而也发现这个利用率定义的一致性:利用率 = \(\frac{实际数据传输速率}{理论数据传输速率}\)

分析

考察理想情况下最满的情况:发送方一直在传数据帧,也即w=2BD+1。
假设BD=4,则一个发送周期的图景如下:

image

欸发现w=2BD+2才对啊,坏了;
2BD+1应该是忽略ack接收时间计算得的(或者说只要感应到ack0就释放缓冲区?这好像不合理),对应图景中④的情况

①到⑤为一个发送周期,随后将进入下一个发送周期。当w=2BD+2时,⑤-1并不适合作为传输周期的终点,此时可将④作为一个周期的结束;当w<2BD+2时,⑤-2则为恰当的传输周期重点

下面从两个视角推导相关公式。始终根据定义,利用率 = 发送有效数据时间 / 发送周期时间。

上述完美链路中最满发送图景中链路利用率 = 100%。据此可知,满利用率的发送窗口数为2BD+1(一个来回RTT时间:2BD;在接收ack0的时候也要能发送:1)。// TODO

视角1:考虑完美链路的非满发送,当\(w\leq 2BD+1\)时,在一个发送周期内显然能发完所有发送窗口数个的数据帧,于是可得公式1:\(利用率 = \frac{w}{2BD+1},w\leq 2BD+1\)。 // TODO

视角2:考虑非完美链路的非满发送,则此时会有\(利用率 \leq \frac{w}{2BD+1}\)。此时,使用实测数据RTT继续根据定义可得公式2:\(利用率 = \frac{w\cdot T_s}{RTT+T_s+T_a}\)。(可以发现,完美链路下 \(RTT/2 = BD\cdot T_s\))

两个视角基本相合(细节处理不同)发现2BD+2后尚未厘清视角1应该怎么调整使合于框架;但视角2的公式,除了无法描述100%的情况(因而最终公式配合使用了min)外总是对的

标签:发送窗口,带宽,发送,RTT,链路,2BD,利用率,链路层
From: https://www.cnblogs.com/xlucidator/p/18468781

相关文章

  • 全链路营销|基于事件驱动的流程编排系统 策略中心系统
    全链路营销|基于事件驱动的流程编排系统https://mp.weixin.qq.com/s/RHXyGaGyp_CK7FJPDqS3Cg全链路营销|基于事件驱动的流程编排系统原创 西赞 阿里云开发者 2024年10月14日08:30 浙江  阿里妹导读 本文主要介绍了AE策略中心的技术方案选型与落地实战。 项目......
  • 华为交换机配置-链路聚合
    1.链路聚合(Eth-Trunk)等于思科的端口聚合1.模式手工模式(manaualload-balance):在这种模式下,Eth-Trunk的建立、成员接口的加入均由手动配置,系统之间不使用LACP进行协商。正常情况下,所有链路都是活动链路,都参与数据的转发并平均分担流量。如果某条活动链路发生故障,链路聚合组会自......
  • 计算机网络:数据链路层 —— PPP 点对点协议
    文章目录PPP帧PPP帧的格式PPP帧的透明传输面向字节的异步链路面向比特的同步链路PPP帧的差错检测PPP的工作状态点对点协议(Point-to-PointProtocol,PPP)是目前使用最广泛的点对点数据链路层协议,用于在两个节点之间进行数据传输。它通常用于建立在串行线路上的点对......
  • Linux服务管理-链路聚合
    Linux链路聚合链路聚合(LinkAggregation)是一种将多个网络接口结合在一起,以增加带宽和提供冗余的技术。它在数据中心、企业网络以及高性能计算等场景中具有广泛的应用。背景在网络中,随着数据流量的增加,单个网络接口可能无法满足带宽需求,导致网络瓶颈。链路聚合应运而生,它......
  • 【网络配置】聚合链路eNSP--静态 LACP 模式
            聚合链路(LinkAggregation),也称为链路捆绑、链路聚合组(LAG,LinkAggregationGroup)或以太网链路聚合,是一种将多个物理网络接口(例如以太网端口)组合成一个逻辑链路的技术。聚合链路的配置通常涉及以下两种模式:手工模式(StaticLAG):在这种模式下,网络管理员手动配置......
  • SkyWalking组件自定义链路追踪
    SkyWalking组件通过添加相关配置就可以获取到接口的相关信息,更加方便的追踪和处理问题接下去讲下步骤:1、在service层添加两个注解;@Trace@Tags({@Tag(key="getDataByCode",value="returnedObj"),@Tag(key="getDataByCode",value="arg[0]")})......
  • Spring Cloud全解析:链路追踪之springCloudSleuth简介
    springCloudSleuth简介链路追踪?什么是链路追踪?就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,如各个服务节点的耗时、具体请求的服务器、各节点的请求状态等,主要是用于分布式系统进行问题定位SpringCloudSleuthSpringCloudSleuth是SpringCloud提供的......
  • springcloud集成SkyWalking链路追踪技术
    在微服务多个服务调用过程中,随着服务数量增多,互相调用的变多,就会出现一些问题:1、调用链路,如何快速定位问题2、如果缕清微服务之间的依赖关系3、各个微服务接口性能分析4、整个业务流程的调用处理顺序 skywalking可以很好的处理这些问题,在springcloud微服务中如何整合skywal......
  • 全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)
    Docker是一个革命性的开放平台,用于开发、交付和运行应用程序。通过使用Docker,开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何支持Docker的环境中,在不同环境中实现一致的运行。无论是在虚拟机、物理服务器、数据中心还是云平台,Docker都能确保......
  • 全面图解Docker架构设计:掌握Docker全链路思维与优化(命令篇)
    Docker是一个革命性的开放平台,用于开发、交付和运行应用程序。通过使用Docker,开发者可以打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何支持Docker的环境中,在不同环境中实现一致的运行。无论是在虚拟机、物理服务器、数据中心还是云平台,Docker都能确......