`
chillwarmoon
  • 浏览: 155037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

流量控制中的拥塞避免算法

    博客分类:
  • tcp
阅读更多
转载请注明出处http://chillwarmoon.iteye.com
之所以要流量控制,有两个原因,一个是网络状况,再一个是接收方的缓存大小。对于网络状况来说,由发送方来看网络拥塞情况,然后通过发送方的拥塞窗口(congestion window aka cwnd)进行流量控制。对于接收方缓存来说,由接收方发给发送方的advertise window来进行流量控制,也就是由接收方的advertise window来进行控制流量。

congestion avoidance算法和slow start算法所解决的问题是不同的,前者是为了避免网络上的数据太多而在发送方控制发送速率的算法。后者是为了提高网络利用率,逐步增加回ack的速率的算法。然而这两个算法通常是相互交替使用的。如下:
1.设置cwnd为一个segment,ssthresh为65535 bytes
2.发送方发送的数据永远不超过cwnd与advertised window两者的最小值。
3.如果拥塞发生了(发送的数据在RTO之后,没有得到相应的ack,或者是在faste retrasmit算法之下,收到了接收方的多个针对于同一数据的ack),那么需要设置slow start threshold size(aka ssthresh)的值,设置为当前window的一半.因为流量控制是由发送方和接收方同时控制的,因此这个当前window的大小指cwnd和advertised window两者的最小值,但是至少为两个segment。也就是说ssthresh=1/2(min{cwnd,advertised window}).在设置ssthresh之后,还需要设置cwnd为one segment来准备slow start.
4.在接收方回ack之后,发送方根据cwnd和ssthresh的值来决定是进行congestion avoidance,还是进行slow start.如果cwnd<=ssthresh,则进行slow start,否则进行congestion avoidance.
congestion avoidance在每次接收到ack后,cwnd增加1/cwnd,在一个RTT内,无论收到多少个ack,仅增加一个segment;而slow start是在一个RTT内,每次接收一个ack,则给cwnd增加one segment。
分享到:
评论

相关推荐

    计算机网络课件:4_7_6 TCP协议的流量控制与拥塞控制.pptx

    计算机网络课件:TCP协议的流量控制与拥塞控制 ...通过滑动窗口协议、慢开始和拥塞避免算法、拥塞窗口和慢开始门限等机制,TCP 协议能够避免发送方的数据传输速度超过接收方的接收能力,防止网络出现拥塞的情况。

    翻译版 拥塞控制算法系列之:Swift-谷歌2020年SIGCOM-包级别端到端TIMELY拥塞控制算法

    - **核心思想**:Swift拥塞控制算法由谷歌公司开发,旨在通过端到端的延迟目标来实现数据中心内的高效流量管理。该算法利用了加减法(AIMD)控制机制,在极端拥堵情况下采用速率限制(pacing),确保网络传输的高效...

    拥塞控制算法的具体描述

    在拥塞控制算法中,漏桶算法是一种常见的流量整形方法。它通过一个固定容量的队列(即“漏桶”)来限制数据的发送速率。当数据发送过快,超出桶的容量时,多余的数据会被丢弃。尽管这种方法可以确保数据以平均速率...

    TCP拥塞控制的典型算法分析

    常见的拥塞控制算法有慢启动算法、拥塞避免算法、快速重发算法和快速恢复算法等。这些算法的设计目的是为了防止网络中的拥塞现象,提高网络性能和可靠性。 TCP拥塞控制机制是计算机网络中的一种重要机制,旨在防止...

    TCP拥塞控制四个主要过程

    如果cwnd&gt;ssthresh,TCP就执行拥塞避免算法,此时,cwnd在每次收到一个ACK时只增加1/cwnd个数据包,这样,在一个RTT内,cwnd将增加1,所以在拥塞避免阶段,cwnd不是呈指数增长,而是线性增长。 三、快速重传和快速...

    基于机器学习的TCP拥塞控制算法识别研究.pdf

    本文提出的解决方案是,基于对当前主流拥塞控制算法进行特性分析,利用接收端采集的数据提取丢包时拥塞窗口下降比例、拥塞避免阶段窗口增长函数、快速恢复阶段窗口增长函数等特征,然后使用极限学习机和随机森林相...

    分布式网络拥塞控制算法稳定性研究.pdf

    在网络拥塞控制算法中,原始算法、对偶算法和原始一对偶算法是三种主要的技术手段。 原始算法的基本思想是对数据发送端的发送速率进行动态调整,以响应网络中出现的拥塞信号。该算法的核心是对数据发送速率的动态...

    数据链路层的课件,流量控制 拥塞控制 差错控制

    拥塞控制算法如TCP的慢启动、拥塞避免、快重传和快恢复等,能够动态调整发送速率,确保网络在高负载情况下仍能保持良好的传输质量。 ### 差错控制 差错控制是数据链路层的核心功能之一,旨在检测并纠正传输过程中...

    因特网路由器拥塞控制算法.pdf

    为解决这一问题,目前网络中主要采用了慢启动(Slow Start)和拥塞避免(Congestion Avoidance)两种策略来控制拥塞。慢启动是用于网络开始或经历超时( Timeout)时的拥塞控制方式,它通过指数增长的方式来逐步增加...

    .可靠传输、流量控制、拥塞控制.pdf

    TCP采用慢启动、拥塞避免、快速重传和快速恢复等算法来探测和应对网络拥塞。例如,当检测到网络拥塞的迹象(如多个连续的ACK丢失),TCP会快速降低其发送速率,然后逐渐增加,以找到网络的承载能力。 在组播...

    基于RTP_RTCP的分层多播拥塞控制算法的研究

    - **乘增长乘减少方法**:文献[1]提出的拥塞控制算法采用乘增长和乘减少的方法进行流量控制,这种方法可能在某些情况下不够公平。 - **常数加增长乘减少算法**:文献[3]采用的是常数加增长和乘减少的自适应算法,...

    视频服务器拥塞控制算法的研究与实现.pdf

    传统的拥塞控制算法,如TCP的慢启动、拥塞避免和快速重传等机制,虽然在数据传输的稳定性上表现出色,但对于实时性要求较高的多媒体数据(如视频流)可能存在不足。因此,本文提出了基于UDP协议的改进型视频服务器...

    华为 ME60 V800R011C10 配置指南 - 拥塞管理和拥塞避免配置

    在现代网络中,拥塞管理和拥塞避免是确保网络性能和用户服务质量的关键要素。华为ME60多业务控制网关提供了有效的策略来应对这些问题。本文档主要阐述了如何通过调整网络流量来缓解和防止网络拥塞,并介绍了在网络...

    六、TCP重传、滑动窗口、流量控制、拥塞控制1

    TCP 使用慢启动、拥塞避免、快速重传和快速恢复算法来应对网络拥塞。 - **慢启动**:TCP 连接建立初期,通过逐渐增大发送窗口来探测网络容量。 - **拥塞避免**:当检测到网络拥塞迹象时,TCP 会进入拥塞避免阶段,...

    congestion avoidance and control 网络拥塞避免和控制

    拥塞避免算法的核心在于确保网络中的数据包数量不超过网络的实际承载能力,防止数据包丢失和延时增加。实现这一目标的关键是动态调整发送速率,使得网络能够达到并维持在一个稳定的工作状态,即所谓的“均衡状态”。...

    一种新的基于拥塞避免的退避算法

    ### 一种新的基于拥塞避免的退避算法 #### 概述 随着现代通信技术的快速发展,用户对于高质量网络服务的需求日益增长。特别是在无线局域网(WLAN)领域,如何提供稳定的服务质量和高效的资源利用成为了研究的重点...

    ATN网络下IP子网明确拥塞通告模型及其与ATN网络流量控制的映射算法

    ATN网络中的拥塞控制是通过传输层的COTP协议来实现的,而IP网络则主要依赖TCP协议的拥塞避免机制。这两种机制在处理拥塞问题时的策略不同,可能导致跨网络传输时的拥塞控制信息不匹配,从而引发拥塞问题。 为了解决...

Global site tag (gtag.js) - Google Analytics