首页> 中国专利> 多对多可靠组播拥塞控制方法

多对多可靠组播拥塞控制方法

摘要

本发明涉及一种多对多可靠组播拥塞控制方法,该方法包含以下步骤:1)组播接收节点判断是否发生拥塞,若拥塞,则向可靠服务器发送拥塞抑制请求;2)可靠服务器按计时周期接收组播节点拥塞抑制请求;3)若可靠服务器持续未收到拥塞抑制请求,则通知组播发送方提高发送速率;若可靠服务器收到拥塞抑制请求,则根据拥塞判断策略确定是否需要抑制;4)若可靠服务器判断需要抑制,则向组播发送方发送速率抑制请求,组播发送方进行速率抑制。本发明通过可靠服务器被动收集组播节点拥塞信息,对发送方进行统一的拥塞控制,保证了拥塞发生时及时对其进行反应,避免了因主机节点拥塞导致的丢包率上升问题。

著录项

  • 公开/公告号CN101150521A

    专利类型发明专利

  • 公开/公告日2008-03-26

    原文格式PDF

  • 申请/专利权人 北京航空航天大学;

    申请/专利号CN200710176826.3

  • 发明设计人 周忠;吴威;唐昕;刘鹂;刘冬梅;

    申请日2007-11-05

  • 分类号H04L12/56(20060101);H04L12/18(20060101);

  • 代理机构11100 北京北新智诚知识产权代理有限公司;

  • 代理人张卫华

  • 地址 100083 北京市海淀区学院路37号北京航空航天大学6863信箱

  • 入库时间 2023-12-17 20:02:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-12-31

    未缴年费专利权终止 IPC(主分类):H04L12/56 授权公告日:20100106 终止日期:20131105 申请日:20071105

    专利权的终止

  • 2010-01-06

    授权

    授权

  • 2008-08-06

    实质审查的生效

    实质审查的生效

  • 2008-03-26

    公开

    公开

说明书

技术领域

本发明涉及一种应用于计算机网络的多对多可靠组播的拥塞控制方法,属于计算机网络可靠组播技术领域。

背景技术

随着网络技术的发展及大量新兴业务的出现,传统的数据通信方式已经不能满足应用的需求。在视频会议、远程教学、网络交互式游戏、远程虚拟现实等应用中,若用传统的点到点通信方式,不仅浪费大量的网络带宽,而且效率很低。组播作为一种组传输机制,采用一对多的消息分发方式,能够有效节省带宽,但由于它是一种尽力传输方式,不能够对传输过程中的差错进行处理,无法保证数据报文的可靠性。为了满足应用需求,怎样设计一种能够完成类似单播服务中TCP的可靠传输功能的可靠组播(Reliable Multicast)机制,使其在组播通信过程中,能够根据网络丢失分组报文的情况,迅速、高效地恢复丢失的报文,使接收者接收到正确、有序的报文,正成为当前的研究热点。

可靠组播中最主要解决的是两方面的问题,第一是错误恢复,第二就是拥塞控制。而由于错误恢复机制的引入,往往会增加网络通信传输量,因此如果没有适当的拥塞控制机制,则会加重网络拥塞情况,增大丢包率,不利于组播通信的可靠性保证。由于多对多可靠组播的通信量和节点负载往往比一对多可靠组播高,因此对拥塞控制的需求则更加突出。

多对多可靠组播中的拥塞控制主要为了解决有限的网络资源与多用户需求之间的矛盾,是对用户使用网络资源动态协调和控制的机制和策略。通常拥塞控制又可进一步细分为流量控制(Flow Control)和网络拥塞控制。流控制指接收方控制发送方发送数据数量的机制。当数据超过网络的处理能力时,网络拥塞就会产生。TCP采用一种基于窗口的拥塞控制机制通过在发送方维护接收方允许的窗口和拥塞窗口实现。分布交互仿真领域的拥塞与传统网络通信中的拥塞是有区别的。网络拥塞发生于包交换机或路由器,而在分布交互仿真的多对多可靠组播中,主机节点往往需要占用大量的计算资源构建仿真环境,因此拥塞常由主机节点开始。

发明内容

本发明的目的是提供一种多对多可靠组播拥塞控制方法,它可使可靠服务器根据组播节点的状态进行拥塞检测和拥塞抑制请求的发送,对发送方进行有效的速率抑制,保证组播传输的可靠性。

本发明采取的技术方案是:

一种多对多可靠组播拥塞控制方法,包含以下步骤:

1)组播接收方判断是否拥塞,若拥塞,则向可靠服务器发送拥塞抑制请求;

2)可靠服务器通过计时,判断是否收到拥塞抑制请求;

3)若可靠服务器未收到拥塞抑制请求,则通知组播发送方提高发送速率;

4)若可靠服务器收到拥塞抑制请求,则判断是否发生拥塞;

5)若可靠服务器判断已发生拥塞,则向组播发送方发送速率抑制请求,组播发送方进行速率抑制。

在所述步骤1)中,组播接收方通过以下方法判断是否拥塞:监测组播节点缓冲队列变化趋势及空闲率;若缓冲队列呈加速减少,则认为发生拥塞;若缓冲队列呈减速减少,且剩余大小<阈值,则认为发生拥塞。

在所述步骤1)中,组播接收方还可通过以下方法判断是否拥塞:根据缓冲区当前和上一时刻的占用量变化,和这期间的处理速度相比,加权求均值,得出缓冲区占用量变化趋势;当缓冲区占用量变化趋势超过一定阈值时,说明拥塞发生。

所述步骤3)可进一步分为:

3.1)当可靠服务器在多个周期时间内未收到拥塞抑制请求时,按以下方法计算发送速率并将发送速率发给组播发送方;

3.2)比较当前速率与上次抑制的速率,差距较大时按正常策略提升速率;

3.3)当速率接近上次抑制的速率时,缩小速率提升比例。

所述步骤4)可进一步分为:

4.1)可靠服务器对所接收到的组播节点的NACK反馈进行保存;

4.2)计算丢包趋势函数;

4.3)当丢包趋势函数大于一定阈值时,判断组播节点发生拥塞,需要进行速率抑制。

所述步骤5)可进一步分为:

5.1)可靠服务器按以下方法计算速率抑制比例,并发送给发送方;

5.2)丢弃1个周期内收到同组播组内不同节点的拥塞抑制信息;

5.3)1个周期内第i次收到同一节点的拥塞抑制信息,根据i计算新的速率抑制比例。

与现有技术相比,本发明的有益效果是:(1)通过可靠服务器解决了多对多可靠组播中拥塞控制的问题,统一进行拥塞决策,减轻了组播节点的负载,组播节点只需监测自身的缓冲区状况,并将拥塞信息发送给可靠服务器即可;(2)引入丢包趋势函数,有效的判断拥塞状况,避免了网络正常抖动带来多余的拥塞控制开销;(3)对组播节点的拥塞抑制请求进行筛选,避免过度抑制导致的drop-to-zero问题。

附图说明

图1是拥塞控制系统整体结构图;

图2是组播节点拥塞判断算法示意图;

图3是拥塞控制速率提升流程图;

图4是拥塞控制速率抑制流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细的描述。

首先给出以下定义:

缓冲区一指各组播节点接收报文队列保存的预留内存空间,组播节点从网络中接收的报文保存在缓冲区中,处理进程从其中读取报文,缓冲队列清除已处理的报文;

NACK-指报文丢失反馈信息,当组播节点发现丢包时向可靠服务器发送NACK信息请求恢复;

拥塞程度级别—为拥塞程度划分多个级别,根据相应的级别进行拥塞控制。

丢包趋势函数—表示组播节点丢失报文的数量和次数的变化趋势的函数,其确定因素包括:丢包事件、丢失报文数及丢包事件之间接收到的报文数。

请参阅图1。本发明采取可靠服务器集群统一调控的拥塞控制方法,通过可靠服务器集群对拥塞反馈进行处理。可靠服务器集群和组播节点向主控服务器注册,由主控服务器为它们分配相应的负责对象。组播节点负责监控自身状态,发现拥塞时及时向可靠服务器集群汇报。可靠服务器集群负责接收自己负责的组播节点发送的拥塞反馈信息,并进行处理,判断是否需要进行拥塞控制。同时可靠服务器集群通过接收统计组播节点丢包反馈NACK报文,对拥塞情况进行判断,当需要对发送方组播节点进行速率抑制或提升时,向发送方发送控制信息。

本发明是一种多对多可靠组播拥塞控制方法,该方法包含以下步骤:

1)组播接收方判断是否拥塞,若拥塞,则向可靠服务器发送拥塞抑制请求;

2)可靠服务器设置计时周期,等待接收拥塞抑制请求;

3)若可靠服务器持续未收到拥塞抑制请求,则通知组播发送方提高发送速率;

4)若可靠服务器收到拥塞抑制请求,则判断是否发生拥塞;

5)若可靠服务器判断已发生拥塞,则向组播发送方发送速率抑制控制报文,组播发送方进行速率抑制。

上述步骤1)中,组播接收节点通过两种方法判断是否拥塞,组播节点缓冲区如图2所示

(1)监测组播节点缓冲队列变化趋势及空闲率:

缓冲区当前i时刻的占用量Bufferi,缓冲区上一时刻占用量Bufferi-1,时间间隔t,缓冲队列变化速度<mrow><msubsup><mi>v</mi><mi>b</mi><mi>i</mi></msubsup><mo>=</mo><mfrac><mrow><mi>Buff</mi><msub><mi>er</mi><mi>i</mi></msub><mo>-</mo><msub><mi>Buffer</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mi>t</mi></mfrac><mo>,</mo></mrow>缓冲队列加速度<mrow><msubsup><mi>a</mi><mi>b</mi><mi>i</mi></msubsup><mo>=</mo><mfrac><mrow><msubsup><mi>v</mi><mi>b</mi><mi>i</mi></msubsup><mo>-</mo><msubsup><mi>v</mi><mi>b</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msubsup></mrow><mi>t</mi></mfrac><mo>=</mo><mfrac><mrow><msub><mi>Buffer</mi><mi>i</mi></msub><mo>-</mo><msub><mi>Buffer</mi><mrow><mi>i</mi><mo>-</mo><mn>2</mn></mrow></msub></mrow><msup><mi>t</mi><mn>2</mn></msup></mfrac></mrow>

若缓冲队列呈加速增长,即<mrow><msubsup><mi>a</mi><mi>b</mi><mi>i</mi></msubsup><mo>></mo><mn>0</mn><mo>,</mo></mrow><mrow><msubsup><mi>v</mi><mi>b</mi><mi>i</mi></msubsup><mo>></mo><mn>0</mn><mo>,</mo></mrow>则说明当前的缓冲队列的处理速度远小于报文接收速度,报文在缓冲区中占用的资源急剧增大,发生拥塞的趋势明显,需要进行拥塞抑制;

若缓冲队列呈减速增长,即<mrow><msubsup><mi>a</mi><mi>b</mi><mi>i</mi></msubsup><mo>&lt;</mo><mn>0</mn><mo>,</mo></mrow><mrow><msubsup><mi>v</mi><mi>b</mi><mi>i</mi></msubsup><mo>></mo><mn>0</mn><mo>,</mo></mrow>则说明当前缓冲队列的处理速度小于报文接收速度,报文在缓冲区中占用的资源缓慢增大,该表现在缓冲区占用Bufferi/cacheSize(cacheSize为缓冲区大小)未达到阀值之前是正常的,不需要进行拥塞抑制。当缓冲区剩余大小<阈值(该阀值与具体缓冲区设置相关)时,说明当前缓冲区占用率大于设定的大小,如果持续增长则将发生拥塞,因此需要进行拥塞抑制;

若缓冲队列呈减少,即<mrow><msubsup><mi>v</mi><mi>b</mi><mi>i</mi></msubsup><mo>&lt;</mo><mn>0</mn><mo>,</mo></mrow>则说明当前缓冲队列的处理速度大于报文接收速度,没有发生缓冲区溢出的危险,不需要进行拥塞抑制。

(2)根据缓冲区当前和上一时刻的占用量变化,和这期间的处理速度相比,加权求均值,得出缓冲区淹没度:

缓冲区当前占用量Bufferi,缓冲区上一时刻占用量Bufferi-1,时间间隔t,处理速度vpi,湮没度Floodi,令<mrow><msub><mi>&alpha;</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mi>Buff</mi><msub><mi>er</mi><mi>i</mi></msub><mo>-</mo><msub><mi>Buffer</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub></mrow><mrow><mi>t</mi><mo>&CenterDot;</mo><msubsup><mi>v</mi><mi>p</mi><mi>i</mi></msubsup></mrow></mfrac><mo>,</mo></mrow>当αi<0时,Floodi取0;当0<αi<1时,Floodi取1,当αi>1时,Floodi取αi

当均方差<mrow><msub><mi>&mu;</mi><mi>i</mi></msub><mo>=</mo><msqrt><msup><msub><mi>Flood</mi><mi>i</mi></msub><mn>2</mn></msup><mo>-</mo><msup><msub><mi>Flood</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mn>2</mn></msup></msqrt></mrow>大于一定阈值(该值为实验经验值)时,表示组播节点预测到拥塞发生。

组播接收方向可靠服务器发送的拥塞抑制请求中包括:拥塞发生节点ID、拥塞发生的组播组ID、拥塞程度级别g(Bufferi),其中<mrow><mi>g</mi><mrow><mo>(</mo><msub><mi>Buffer</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msub><mi>Buffer</mi><mi>i</mi></msub><mo>/</mo><mi>cacheSize</mi></mrow><mrow><msubsup><mi>v</mi><mi>b</mi><mi>i</mi></msubsup><mo>&CenterDot;</mo><mi>t</mi></mrow></mfrac><mo>.</mo></mrow>

上述步骤3)中的可靠服务器未收到拥塞抑制请求,通知组播发送方提高发送速率的步骤如图3所示,进一步分为:

3.1)当可靠服务器在n个周期时间内未收到组播节点的拥塞抑制请求时,根据速率增长比例和1/n的值按参数(实验经验值)计算下一时刻发送速率;

3.2)比较当前速率与上次抑制的速率,如果速率差>阀值m(m为经验值,表示当前速率未与上次抑制速率的接近),则按3.1)计算提升速率,将计算出的速率抑制比例发送给组播发送方;

3.3)如果速率差<m(即速率接近上次抑制的速率),则缩小速率提升比例,即根据速率增长比例和1/n、m的值按参数(实验经验值)计算下一时刻速率抑制比例,将计算出的速率抑制比例发送给组播发送方。

可靠服务器向组播发送方法送的速率抑制请求中包含:发送节点,组播组ID,目标抑制速率。

上述步骤4)中的可靠服务器基于丢包检测的拥塞控制算法步骤,进一步分为:

4.1)可靠服务器对所接收到的组播节点NACK反馈进行保存和记录;

4.2)计算丢包趋势函数;

4.3)当丢包趋势函数大于一定阈值时,判断组播节点发生拥塞,需要进行速率抑制。

在这里,给出丢包趋势函数LT概念,其确定因素包括:丢包事件、丢失报文数及丢包事件之间接收到的报文数。LEk,……,LEk-m+1是最近m次连续的丢包事件,其值为丢失报文数和丢包事件之间接收到的报文数的比值,设wi为加权,距离近的丢包事件加权越大,例如:{6,5,4,3,2,1},丢包趋势函数定义为:

<mrow><msub><mi>LE</mi><mi>avg</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>w</mi><mi>i</mi></msub><mo>&CenterDot;</mo><msub><mi>LE</mi><mrow><mi>k</mi><mo>-</mo><mi>i</mi></mrow></msub></mrow><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msubsup><msub><mi>w</mi><mi>i</mi></msub></mrow></mfrac></mrow>LT(k)=LEavg(k)-LEavg(k-1)

当LT(k)大于一定阈值(实验经验值)时,判断组播节点发生拥塞,需要进行拥塞抑制。上述步骤5)中的可靠服务器判断已发生拥塞,向组播发送方发送速率抑制请求的步骤如图4所示,进一步分为:

5.1)可靠服务器接收到组播节点的拥塞抑制信息后,记录当前速率,根据拥塞程度级别和当前LT(k)按参数(实验经验值)计算速率抑制比例,将计算出的速率抑制比例发送给发送方;

5.2)若1个周期内收到同组播组内不同节点速率抑制信息,则丢弃该抑制信息,不向发送方发送;

5.3)1个周期内第i次收到同一节点速率抑制信息,首先记录当前速率,速率抑制比例需要乘以1/i,将计算出的速率抑制比例发送给发送方。

以上所述是本发明的基本实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明的原理前提下,还可以进行若干改进和润饰,这些改进和润饰也应视为本发明方法的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号