精华内容
下载资源
问答
  • IETF RMCAT WG当前正在对WebRTC媒体的拥塞控制进行标准化,该工作组的范围是定义拥塞控制的要求并标准化一些候选解决方案。 SCReAM是爱立信研究公司开发的针对WebRTC的拥塞控制候选解决方案,并针对无线访问中的...
  • 此包含TCP拥塞控制的源:一种系统方法,可根据许可条款获得。 邀请社区以相同的条款提供更正,改进,更新和新材料。 如果您使用这项工作,则出处应包括以下信息: 标题:TCP拥塞控制:一种系统方法 作者:拉里·...
  • 然后通过一个带宽调整控制器(aimd)来决策合适的码率进行视频通信。razor没有继承复杂的webRTC接口,而是将它设置在点对点视频通信的范畴。开发者可以仅仅使用razor 库和自己的传输协议来构建自己的传输体系,也...
  • 基于广泛使用的TCP版本TCP Reno,提出了一种主动TCP拥塞控制方案,命名Active-TCP。在沿用传统的被动拥塞控制方式的同时,Active-TCP添加了主动拥塞控制方式,即在满足给定条件下,Active-TCP可主动降低拥塞窗口,而...
  • 根据课上所学和《计算机网络 自顶向下方法》总结了可靠数据传输的机制和拥塞控制的机制,画成了思维导图,包括UDP的差错检查和TCP的可靠数据传输和拥塞控制,以及一些通用机制。思维导图用MindManager画的,格式为...
  • 介绍了无线传感器网络拥塞控制的内容和特点,仔细分析了在无线传感器网络中实施拥塞控制算法所涉及的技术难点及不足,并对现有工作进行了归纳和总结。最后,探讨了发展初期该研究领域的未来发展方向。
  • TCP拥塞控制 TCP拥塞控制
  • 基于UDP的数据传输协议是一种互联网数据传输协议。UDT的主要目的是支持高速广域网上的海量数据传输,而互联网上的标准数据传输协议TCP在高带宽长距离网络上性能很差,控制UDP的流量和拥塞控制如何解决,请参考下
  • 现有的拥塞控制策略仅保证网络层的性能,没有考虑车辆不同交通场景下的微观服务需求。为解决该问题,提出了一种基于网络效用最大化理论的分布式拥塞控制策略。该策略首先提出了车联网信道资源分配的网络效用最大化...
  • 针对无线传感器网络存在的拥塞问题, 设计一种基于领导者的拥塞控制算法. 利用分布式动态系统的 理论对拥塞问题进行建模, 并证明了所提出的算法能够保证所有节点的发送速率收敛到可用的最小带宽, 同时利 用...
  • CUBIC算法是基于BIC-TCP算法的改进算法,它主要是解决在大带宽延迟积网络中TCP拥塞窗口增长缓慢的问题,其具有TCP友好性与RTT公平性,实时保持窗口的增长率不受RTT的影响。CUBIC在公平性上解决了TCP流量友好性与其他...
  • 拥塞控制

    2020-07-30 10:44:20
    拥塞控制是TCP避免网络拥塞的算法,是互联网上主要的一个拥塞控制措施。主要的目标是***提高网络利用率、降低丢包率、保证网络资源对每条数据流的公平性*。它使用一套基于线增积减模式的多样化网络拥塞控制方法...

    概念

    拥塞控制是TCP避免网络拥塞的算法,是互联网上主要的一个拥塞控制措施。主要的目标是提高网络利用率降低丢包率保证网络资源对每条数据流的公平性*。它使用一套基于线增积减模式的多样化网络拥塞控制方法(包括慢启动和拥塞窗口等模式)来控制拥塞。在互联网上应用中有相当多的具体实现算法。

    拥塞算法

    TCP Tahoe/Reno

    最初的实现,包括慢启动、拥塞避免两个部分。基于重传超时(retransmission timeout/RTO)和重复确认为条件判断是否发生了丢包。
    两者的区别在于:
    Tahoe算法下如果收到三次重复确认,就进入快重传立即重发丢失的数据包,同时将慢启动阈值设置为当前拥塞窗口的一半,将拥塞窗口设置为1MSS,进入慢启动状态;
    Reno算法如果收到三次重复确认,就进入快重传,但不进入慢启动状态,而是直接将拥塞窗口减半,进入拥塞控制阶段,这称为“快恢复”。
    而Tahoe和Reno算法在出现RTO时的措施一致,都是将拥塞窗口降为1个MSS,然后进入慢启动阶段。

    TCP Vegas

    TCP Vegas算法由 Lawrence Brakmo 和 Larry L. Peterson 在1994年提出,它和其他拥塞控制算法的不同之处在于Vegas算法并不急于丢包来判断是否发生了拥塞,而是通过数据包延迟来判断。Vegas通过RTT(roundtrip time)来决定增加或者减小拥塞窗口,它能够拥塞将要发生时就避免拥塞,而不是等到拥塞已经发生之后再减小发送速度,因此能够减小重传和超时的几率。Vegas算法与其他算法(比如Reno)共存时,会由于比其他算法更先降低发送速率而出现公平性问题。

    TCP New Reno

    TCP New Reno是对TCP Reno中快速恢复阶段的重传进行改善的一种改进算法,其定义于RFC 6582,覆盖了原有在RFC 3782和RFC 2582的旧定义。
    在Reno的快恢复中,一旦出现3次重复确认,TCP发送方会重发数据包并设置定时器等待该重发数据包被确认。当重发的数据包被确认后,就立即退出快速恢复阶段,进入拥塞控制阶段。但如果一次拥塞中出现多个丢包,Reno会误以为发生了多次拥塞而重复减小拥塞窗口导致发送速率下降。
    而在New Reno的快速恢复中,一旦出现3次重复确认,会记下出现重复确认时未确认的数据包的最大序列号,然后重发重复确认的数据包。如果有多个数据包丢失,则继续重发丢失的数据包,知道最大序列号的数据包被确认才推出快恢复阶段。
    New Reno在低错误率时运行效率和“选择确认”(Selective ACKnowledgement,SACK)相当,在高错误率仍优于Reno。

    TCP BIC 和 CUBIC

    TCP BIC(Binary Increase Congestion control)旨在优化高速高延迟网络(即根据RFC 1072所定义的“长肥网络”(long fat network,LFN))的拥塞控制,其拥塞窗口算法使用二分搜索算法尝试找到能长时间保持拥塞窗口最大值的值。Linux内核在2.6.8至2.6.18使用该算法作为默认TCP拥塞算法。
    CUBIC则是比BIC更温和和系统化的分支版本,其使用三次函数代替二分算法作为其拥塞窗口算法,并且使用函数拐点作为拥塞窗口的设置值。Linux内核在2.6.19后使用该算法作为默认TCP拥塞算法。

    详细可参考:TCP拥塞控制

    Reno算法介绍

    主要包含四个部分

    • 慢热启动算法 – Slow Start
    • 拥塞避免算法 – Congestion Avoidance
    • 快速重传 - Fast Retransimit
    • 快速恢复算法 – Fast Recovery

    概念术语

    • CWND Congestion Window,拥塞窗口(发送端定义调节发送端的量。跟接收窗口比,那个小取那个)
    • MSS maximum segment size, 指的是TCP传输层的最大传输单元(就是一个包的最大值)
    • RTT, round-trip time, 指的是从发送到接收这一个来回的行程所用的总体时间
    慢热启动算法 – Slow Start
    1. 连接建好的开始先初始化cwnd(拥塞窗口)大小为N,表明可以传N个MSS大小的数据。
    2. 每当收到一个ACK,cwnd大小加一,呈线性上升。
    3. 每当过了一个往返延迟时间RTT(Round-Trip Time),cwnd大小直接翻倍,乘以2,呈指数增长。
    4. 还有一个慢启动门限ssthresh(slow start threshold),是一个上限,当cwnd >= ssthresh时,就会进入"拥塞避免算法 - Congestion Avoidance"
      在这里插入图片描述
    拥塞避免算法 – Congestion Avoidance
    1. 每收到一个ACK,调整cwnd 为 (cwnd + 1/cwnd) * MSS个字节每当收到一个ACK,cwnd大小加一,呈线性上升。
    2. 每经过一个RTT的时长,cwnd增加1个MSS大小。
      在这里插入图片描述
    拥塞状态时的超时重传

    TCP是看不到网络的整体状况的,那么TCP认为网络拥塞的主要依据是它重传了报文段出现RTO超时,重传数据包。TCP就认为出现拥塞的可能性就很大,于是它反应非常“强烈”

    1. 由于发生丢包,将慢启动阈值ssthresh设置为当前cwnd的一半,即ssthresh = cwnd / 2.
    2. cwnd重置为1
    3. 进入慢启动过程
      在这里插入图片描述
    拥塞状态时的快速重传

    在快速重传的时候,一般网络只是轻微拥堵,在进入拥塞避免后,cwnd恢复的比较慢。针对这个,“快速恢复”算法被添加进来,当收到3个冗余ACK时,TCP最后的步骤进入的不是拥塞避免阶段,而是快速恢复阶段。

    1. 调整门限ssthresh的值为当前cwnd值的1/2。
    2. 将cwnd值设置为新的ssthresh的值
    3. 重新进入拥塞避免阶段
      在这里插入图片描述
    快速恢复算法 – Fast Recovery

    快速恢复的思想是“数据包守恒”原则,即带宽不变的情况下,在网络同一时刻能容纳数据包数量是恒定的。当“老”数据包离开了网络后,就能向网络中发送一个“新”的数据包。既然已经收到了3个冗余ACK,说明有三个数据分段已经到达了接收端,既然三个分段已经离开了网络,那么就是说可以在发送3个分段了。于是只要发送方收到一个冗余的ACK,于是cwnd加1个MSS。快速恢复步骤如下(在进入快速恢复前,cwnd 和 sshthresh已被更新为:sshthresh = cwnd /2,cwnd = sshthresh)

    1. cwnd设置为ssthresh的值加3,重传Duplicated ACKs指定的数据包
    2. 如果再收到 duplicated Acks,那么cwnd = cwnd +1
    3. 如果收到新的ACK,而非duplicated Ack,那么将cwnd重新设置为的sshthresh的值。然后进入拥塞避免状态。
      在这里插入图片描述

    细心的同学可能会发现快速恢复有个比较明显的缺陷就是:它依赖于3个冗余ACK,并假定很多情况下,3个冗余的ACK只代表丢失一个包。但是3个冗余ACK也很有可能是丢失了很多个包,快速恢复只是重传了一个包,然后其他丢失的包就只能等待到RTO超时了。超时会导致ssthresh减半,并且退出了Fast Recovery阶段,多个超时会导致TCP传输速率呈级数下降。出现这个问题的主要原因是过早退出了Fast Recovery阶段。为解决这个问题,提出了New Reno算法,该算法是在没有SACK的支持下改进Fast Recovery算法(SACK改变TCP的确认机制,把乱序等信息会全部告诉对方,SACK本身携带的信息就可以使得发送方有足够的信息来知道需要重传哪些包,而不需要重传哪些包),具体改进如下:

    1. 发送端收到3个冗余ACK后,重传冗余ACK指示可能丢失的那个包segment1,如果segment1的ACK通告接收端已经收到发送端的全部已经发出的数据的话,那么就是只丢失一个包,如果没有,那么就是有多个包丢失了。
    2. 发送端根据segment1的ACK判断出有多个包丢失,那么发送端继续重传窗口内未被ACK的第一个包,直到sliding window内发出去的包全被ACK了,才真正退出Fast Recovery阶段。

    参考文档:《图解TCP/IP》
    参考文档:https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/network/2015_0708_65.html
    参考文档:https://blog.csdn.net/wdscq1234/article/details/52529994

    展开全文
  • 提出了一种新的自适应分层多播拥塞控制方案(ALM)。ALM是发送方与接收方共同驱动、由路由器辅助流量控制的拥塞控制方案,通过把发送方的动态分层和接收方的自适应速率调整有机结合,不仅增强了分层多播的适应能力,...
  • 实现UDP和TCP数据流的公平性以及在UDP中解决拥塞控制从而保证传输可靠性是提高服务质量所面临的两个迫切需要解决的问题。提出一种解决上述两个问题的方案——FFUDP(Friend and Fair UDP),即UDP根据丢包率来判断网络...
  • Portus是拥塞控制平面(CCP)的一种实现。 它是一个库,可用于在用户空间中编写新的拥塞控制算法。 拥塞控制算法的实现位于独立的板条箱中,这些板条箱将此库用于常见功能。 每个算法板条箱都提供一个二进制文件,...
  • 要想更好的了解TCP端到端拥塞控制机制,首先要学习端到端拥塞控制的4个基本也是最主要的算法:slow_start, congestion avoidance, fast retransmit, fast recovery。
  • 针对OpenFlow网络中的拥塞问题,基于SDN/OpenFlow网络架构,提出一种新的OpenFlow网络拥塞控制机制。该机制具有利用控制器对网络资源进行全局管理的优点,即当网络中有节点处于拥塞状态,控制器选择一条或者多条合适的...
  • 控制网络拥塞,提出一种改进的随机早期检测(RED)算法――基于加权和的随机早期检测(WHS-RED)算法。算法的基本思想是利用网络中队列长度及其变化率的加权和,动态地控制网络丢包率。建立了数学模型,并给出了计算机...
  • 分析现有网络拥塞控制算法的优缺点,在此基础上,根据多媒体数据和嵌入式设备的特点提出改进的基于视频服务器的拥塞控制算法。此算法以UDP协议为基础,通过控制传输速率来降低丢包率和网络时延,提高了嵌入式设备的...
  • BIC拥塞控制算法论文

    2019-11-18 09:32:27
    BIC拥塞控制算法论文
  • 研究了TCP/AQM拥塞控制系统的可逆性,并利用一种神经网络监督控制结构进行了AQM算法的设计。算法由一个三层前馈结构的神经网络控制器(neural network controller,NNC)和一个反馈控制器(feedback controller,FC)...
  • daemons-cc是FreeBSD的拥塞控制实现,提取为用户空间库。 目前,NewReno和Cubic已被移植。 由于对模块化API的更改保持在最低限度,因此可以预期可以很容易地移植其他算法。 目标 创建可用于QUIC的拥塞控制实现 保留...
  • TCP CUBIC拥塞控制算法无法主动判断拥塞和预测丢包。为解决这一难题,算法首先采集网络节点数据,利用多维关联挖掘方法建立模型,引用RTT最大值和最小值变化率判定网络拥塞;然后划分拥塞等级,利用动态神经网络算法...
  • 文章目录1.拥塞的原因情况1情况2情况32.拥塞控制方法端到端网络辅助3.TCP拥塞控制(端到端)慢启动拥塞...2.拥塞控制方法 端到端 网络辅助 3.TCP拥塞控制(端到端) 慢启动 拥塞避免 快速回复 总结以上,回顾全局 ...

    0.什么是拥塞

    对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。
    在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。
    若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。

    1.拥塞的原因

    情况1

    情况2

    情况3

    2.拥塞控制方法

    端到端

    网络层没有为运输层拥塞控制提供显式支持。
    即使网络中存在拥塞,端系统也必须通过对网络行为的观察(如分组丢失与时延)来推断之。

    网络辅助

    在网络辅助的拥塞控制中,路由器向发送方提供关于网络中拥塞状态的显式反馈信息。
    这种反馈可以简单地用一个比特来指示链路中的拥塞情况。
    在这里插入图片描述

    3.TCP拥塞控制(端到端)

    TCP必须使用端到端拥塞控制而不是使网络辅助的拥塞控制,因为IP层不向端系统提供显式的网络拥塞反馈。
    在这里插入图片描述

    如何感知拥塞

    TCP发送方的丢包事件:要么出现超时,要么出现3次冗余ACK。
    当出现过度的拥塞时,在沿着这条路径上的一台(或多台)路由器的缓存会溢出,引起一个数据报(包含一个TCP报文段)被丢弃。丢弃的数据报接着会引起发送方的丢包事件。发送方就认为在发送到接收方的路径上出现了拥塞的指示。

    TCP如何确定应当发送的速率

    • 一个丢失的报文段意味着拥塞。因此当丢失报文段时应当降低TCP发送方的速率。
    • 一个确认报文段指示该网络正在向接收方交付发送方的报文段。因此当对先前未确认报文段的确认到达时,能够增加发送方的速率。
    • 带宽检测。给定ACK指示源到目的地路径无拥塞,而丢包事件指示路径拥塞,TCP调节其传输速率的策略是增加其速率以响应到达的ACK,除非出现丢包事件,此时才减小传输速率。
      因此,为探测拥塞开始出现的速率,TCP发送方增加它的传输速率,从该速率后退,进而再次开始探测,看看拥塞开始速率是否发生了变化。

    TCP拥塞控制算法细节

    cwnd:拥塞窗口。它对一个TCP发送方能向网络中发送流量的速率进行了限制。在一个发送方中未被确认的数据量不会超过cwnd与rwnd中的最小值,LastByteSent-LastByteAcked<=min(cwnd,rwnd)。

    1.慢启动

    MSS:最大报文段长度

    当一条TCP连接开始时,cwnd的值通常初始置为MSS的较小值。
    在慢启动状态,cwnd初始值为一个MSS,每当传输的报文段首次被确认就增加1个MSS。
    TCP发送速率起始慢,但在慢启动阶段以指数增长。

    何时结束指数增长?
    1.超时指示的丢包事件。TCP发送方将cwnd设置为1并重新开始慢启动过程。
    将慢启动阈值(ssthresh)设置为cwnd/2,即当检测到拥塞时将ssthresh设置为拥塞窗口值的一半。
    2.当cwnd的值等于ssthresh时,结束慢启动并且TCP转移到拥塞避免模式。
    在这里插入图片描述

    2.拥塞避免

    一旦进入拥塞避免状态,cwnd的值大约是上次遇到拥塞时值的一半(距离拥塞并不遥远)。
    这时,TCP每个RTT只将cwnd的值增加一个MSS。

    何时结束线性增长?
    冗余3个ACK指示的丢包事件(没超时丢包那么严重),TCP将cwnd的值减半,并且当收到3个冗余的ACK,将ssthresh的值记录为cwnd的值的一半。接下来进入快速恢复状态。

    3.快速恢复

    对于引起TCP进入快速恢复状态的缺失报文段,对收到的每个冗余ACK,cwnd的值增加一个MSS。最终。当对丢失报文段的一个ACK到达时,TCP在降低cwnd后进入拥塞避免状态。
    如果出现超时事件,快速恢复在执行如同在慢启动和拥塞避免中相同的动作后,迁移到慢启动状态:当丢包事件出现时,cwnd的值被设置为1个MSS,并且sshthresh的值设置为cwnd值的一半。
    在这里插入图片描述

    在这里插入图片描述

    总结以上,回顾全局

    加性增、乘性减
    在这里插入图片描述

    公平性

    从TCP的观点来看,运行在UDP上的多媒体应用是不公平的,因为它们不与其他连接合作,也不适时地调整其传输速率。

    展开全文
  • 使用NS3在数据中心网络中实现Incast拥塞控制。 作者:陈泽宇(),王瑞佳() 前言 该项目是在NS3中实现ICTCP。 小组成员:陈泽宇,王瑞佳,张明和 该文档主要涉及TCP修改,拓扑构造和数据分析。 TCP修改 在模型目录...
  • 拥塞控制理论和算法研究因此成为 Intemet研究中的一个热点。 拥塞现象发生的原因.总的来说是Intemet网络中的需求大 于供给,即网络的资源(缓冲、链路带宽和网关处理能力等)是有 限的.这些有限资源要在网络用户之间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,754
精华内容 24,701
关键字:

拥塞控制