一种基于流状态信息的内容中心网络拥塞控制方法及系统的制作方法

文档序号:7988067阅读:193来源:国知局
一种基于流状态信息的内容中心网络拥塞控制方法及系统的制作方法
【专利摘要】本发明涉及一种基于流状态信息的内容中心网络拥塞控制方法及系统,所述方法包含:步骤101)用于更新流状态信息的步骤,该步骤中当某一条流的数据包的平均时间间隔大于一设定阈值时,将该流的状态信息从其所在的路由器中删除,得到更新后的流状态信息表;步骤102)路由器判断网络是否即将发生拥塞,当即将发生拥塞时进入步骤103)更新CIB值,否则不改变CIB的当前值;步骤103)路由器依据步骤101)更新得到的流状态信息表更新流状态信息表中各流的CIB值,并将更新后的CIB值发送至下一个路由器,返回步骤101),直至包含有CIB值的包到达终端用户;步骤104)终端用户根据最终收到的CIB值指示的网络拥塞程度对拥塞窗口的大小进行调整。
【专利说明】一种基于流状态信息的内容中心网络拥塞控制方法及系统
【技术领域】
[0001]本发明涉及计算机网络、未来网络、拥塞避免和队列管理,具体涉及一种基于流状态信息的内容中心网络拥塞控制方法及系统。
【背景技术】
[0002]互联网在过去几十年中有巨大的发展,传统互联网主要关注于端到端的通信,而如今的互联网主要关注于内容的分发与获取。在这种前提下,内容中心网络(CCN,Content-Centric Network)应运而生。CCN是一种全新的网络架构,它完全抛弃了 IP网络用IP地址为每个主机命名的方式:CCN不对主机命名,而是对内容进行命名。在CCN中,每个文件被拆分成若干个固定大小的块(Chunk),每个块被分配一个固定的名字,如:ccnx://hpnl.1oa.ac.cn/video/filename/_chunknum/_timestamp.CCN 中有两种数据包:兴趣包(Interest)与内容包(Data)。Interest中包含内容名与其他相关信息(如版本、权限等),而Data中包含内容名、其他相关信息与有效负载。
[0003]CCN路由器与传统路由器不同:CCN路由器具有缓存功能(内容缓存在内容库(CS, Content Store)中),它能够按照一定的策略对经过它的Data进行缓存,另外,CCN路由器对Interest按照名字进行路由:采用最长前缀匹配的方法在路由表(FIB, ForwardingInformation Table)中查询。发出 Interest 后,在其等待表(PIT, Pending InterestTable)中保存Interest的状态信息(来自哪个接口),收到Data之后,除把Data缓存到Content Store中,还查询PIT表,把Data转发到相应的接口,再删除PIT表中相应的条目。因此,Data的传输与Interest传输路径相同,方向相反。
[0004]终端用户发出Interest, CCN路由器根据名字对此Interest进行路由,如果在某个路由器节点的缓存中有此内容,则直接返回相应Data,如果沿途路由器都没有此内容,则此Interest最终被转发到源服务器上。服务器返回Data,沿途路径上的路由器则会对此内容进行缓存,如果路由器再次收到此Interest,则可以直接返回Data。因此,CCN网络节省了用户下载时间、减少了资源的重复传输。
[0005]为了使网络能够高效运行,必须对网络进行拥塞控制(拥塞避免)。目前已经提出的针对CCN的拥塞控制方案主要有两种:
[0006]一种方案借鉴了 TCP中拥塞控制的思想,把CCN中的Data包看作TCP中的ACK包,终端发出Interest后即启动一个定时器,如果在定时器超时前收到Data则取消定时器,同时增大拥塞窗口 ;如果在定时器超时时间到达时还未收到Data,则认为此Data包已经被网络丢弃,网络中发生了拥塞,则减小拥塞窗口。因为CCN中Data包可能是由终端到服务器路径上任何一个路由器或者服务器响 应的,所以CCN中的RTT (从终端发出Interest到收到Data的时间间隔)变化较大。因此,方案中对于定时器超时时间的设置采用了如下的方法:
[0007]T = RTTmin+(RTTmax-RTTmin) δ
[0008]其中,T为超时时间,RTTmin是RTT中的最小值,RTTmax是RTT中的最大值,δ为一个可调整的参数。
[0009]这种方案操作比较简单,对路由器没有额外要求,但是,也存在许多问题:
[0010]1、超时时间的设置难以取得一个非常合适的值,如果这个值较大,则对拥塞的反应会变得迟钝,如果这个值较小,则可能造成拥塞的误判。
[0011]2、这种方案中并没有对流做区分,因此,当发生拥塞时,流量占用带宽较小的流也会发生丢包,这其实对这些流非常不公平。
[0012]另一种方案解决了上一种方案中的问题,这种方案需要终端与路由器相配合实现拥塞控制。路由器为每条流建立一个虚拟的队列,在发送Data包时,采用轮询方式,依次发送各条流队列中的Data包。同时,根据各条流队列长度的不同在Data包中加入表示拥塞程度的“拥塞信息位(CIB, Congestion Information Bits)”,客户端在收到带有CIB的Data后,即可判断网络的拥塞程度,然后做出相应的决策(增大或者减小发送窗口)。
[0013]这种方案解决了方案一中的两个问题:采用路由器队列实际长度判断是否拥塞,而不是单纯依靠客户端通过超时来判断。对每条流维护一个队列,流的公平性问题能够得到很好的解决。
[0014]上述第二种方案表面上很好的解决了 CCN中拥塞控制的问题,但是实际上存在一个较严重的缺陷:路由器必须为每条流维护一个队列,每转发一个Data包都需要计算队列长度,再根据队列长度进行若干次计算、比较。核心网中的流的数目非常多,为每条流维护一个队列需要消耗大量的计算资源,目前的硬件设备可能无法达到这样的要求。
[0015]互联网中的流占用的带宽也存在着80/20规则,即80%的带宽都被20%的流占用着。在需要拥塞控制时,路由器仅需要对这20%的流进行拥塞控制,其它80%占用带宽较小的流则无需控制,这样既能大大的减小路由器的开销,同时又能起到很好的拥塞控制效果,在实际部署时是一种较为理想的方案。
[0016]本申请专利力图改变方案二中为每个流维护一个队列的方式,仅维护部分流量较大的流的状态信息,从而减轻路由器开销。

【发明内容】

[0017]本发明的目的在于,为克服上述问题,本发明提供的一种基于流状态信息的内容中心网络拥塞控制方法及系统。
[0018]为实现上述目的,本发明提供了一种基于流状态信息的内容中心网络拥塞控制方法,所述方法包含:
[0019]步骤101)用于更新流状态信息的步骤,该步骤中当某一条流的数据包的平均时间间隔大于一设定阈值时,将该流的状态信息从其所在的路由器中删除,得到更新后的流状态信息表;
[0020]步骤102)路由器判断网络是否即将发生拥塞,当即将发生拥塞时进入步骤103)更新CIB值,否则不改变CIB的当前值并进入步骤104);
[0021]步骤103)路由器依据步骤101)更新得到的流状态信息表更新流状态信息表中各流的CIB值,得到更新后的CIB值;
[0022]步骤104)将CIB值发 送至下一个路由器,返回步骤101),直至包含有CIB值的包到达终端用户;[0023]步骤105)终端用户根据最终收到的CIB值指示的网络拥塞程度对拥塞窗口的大小进行调整。
[0024]上述步骤101)进一步包含:
[0025]步骤101-1)当某个数据包到达时,查询路由器当前维护的流状态信息表,如果流状态表中没有此流信息,则将该流信息加入流状态信息表,并启动计时器开始计时;如果流状态信息表中有此流,则更新当前队列长度、平均队列长度与包平均间隔,将计时器清零并重新计时;
[0026]步骤101-2)当某个数据包被转发出去时,查询流状态信息表,如果该数据包所在的流队列仍有剩余的数据包时,则更新平均队列长度与当前队列长度;
[0027]步骤101-3)如果某条流的数据包平均间隔超过时间一设定阈值t时从流状态信息表表中删除这条流的记录;
[0028]其中,所述流状态信息表包含:流标识、当前队列长度、平均队列长度、计时器和包平均间隔;所述流标识用于唯一确定一条流的标识;所述当前队列长度为对应的某条流此时在路由器队列中拥有的数据包的个数;所述平均队列长度为对应的某条流的当前队列长度进行平滑处理后的结果值,具体为:新的平均队列长度值由此前平均队列长度值与当前队列长度进行加权求和得到;所述计时器:当对应的流的包到达时,计时器从零开始计时;所述包平均间隔为当对应流有新的数据包到达时,读取计时器的值,与之前的包平均间隔进行加权求和,得到新的包平均间隔。
[0029]上述步骤102) 根据聚集流的总速率与所有队列总长度判断是否即将发生拥塞,即当聚集流的总速率大于某个设定阈值r或者队列总长度大于某个设定阈值q时,判定为即将发生拥塞。
[0030]步骤103)中所述的路由器更新各流的CIB值的具体方法为:
[0031]路由器判定即将发生拥塞,根据流的平均队列长度更新CIB值,具体计算方法步骤如下:
[0032]步骤103-1)获取路由器维护的流状态信息表中所有流的总队列长度;
[0033]步骤103-2)依据所有流公平分配总队列长度的原则获得均值队列长度;
[0034]步骤103-3)将均值队列长度划分为若干段,建立CIB值与每段的映射关系,再依据各个流的平均队列长度所属的均值队列长度中的具体分段得到对应于各个流的CIB更新值;
[0035]其中,更新CIB值的原则为:各路由器仅能保持CIB不变或者拥塞程度加深,而不能减轻拥塞程度。
[0036]均值队列被第一分值点和第二分值点划分为3段,且设置源服务器发送的数据包时的CIB初始值设置为:00,第一份值点和第二分值点分布在O至均值队列长度形成的区间上,第一分值点小于第二分值点;
[0037]此时,CIB值与每段的映射关系为:
[0038]如果某个流的平均队列长度小于第一分值点,则CIB值设置为:01 ;
[0039]如果某个流的平均队列长度位于第一分值点和第二分值点之间,则CIB值设置为:10 ;
[0040]如果某个流的平均队列长度位于大于第二分值点,则CIB值设置为:11。[0041]当终端用户收到CIB值为“00”的数据包时,将增大发送窗口 ;
[0042]当用户终端收到CIB值为“01的数据包时,保持发送窗口大小不变;
[0043]当用户终端收到CIB值为“10”值的数据包时,则减小发送窗口大小,且减小的值为a ;
[0044]当用户终端收到CIB值为“10”值的数据包时,则减小发送窗口大小,且减小的值为b ;
[0045]其中,a〈b。
[0046]基于上述方法本发明还提供了一种基于流状态信息的内容中心网络拥塞控制系统,所述系统包含:
[0047]流状态信息表更新存储模块,用于当某一条流的数据包的平均时间间隔大于一设定阈值时,将该流的状态信息从其所在的路由器中删除,获得更新后的流状态信息表;
[0048]预拥塞判断模块,用于路由器依据聚集流的总速率与所有队列总长度判断网络是否即将发生拥塞;
[0049]CIB值更新模块,用于当预拥塞判断模块网络即将拥塞时更新流状态信息表维护的各流的CIB值;
[0050]拥塞窗口大小调整驱动模块,用于驱动终端用户根据最终收到的CIB值指示的网络拥塞程度对拥塞窗口的大小进行调整。
[0051]上述流状态信息表更新存储模块进一步包含:
[0052]第一处理模块,用于当某个数据包到达时,查询路由器当前维护的流状态信息表,如果流状态表中没有此流信息,则将该流信息加入流状态信息表,并启动计时器开始计时;如果流状态信息表中有此流,则更新当前队列长度、平均队列长度与包平均间隔,将计时器清零并重新计时;
[0053]第二处理模块,用于当某个数据包被转发出去时,查询流状态信息表,如果该数据包所在的流队列仍有剩余的数据包时,则更新平均队列长度与当前队列长度;
[0054]删除模块,用于判断如果某条流的数据包平均间隔超过时间一设定阈值t时从流状态信息表中删除这条流的记录。
[0055]上述CIB值更新模块进一步包含:
[0056]总队列长度获取子模块,用于获取路由器维护的流状态信息表中所有流的总队列长度;
[0057]均值队列长度获取子模块,用于依据所有流公平分配总队列长度的原则获得均值队列长度;和
[0058]映射子模块,用于将均值队列长度划分为若干段,建立CIB值与每段的映射关系,再依据各个流的平均队列长度所属的均值队列长度中的具体分段得到对应于各个流的CIB更新值;
[0059]其中,更新CIB值的原则为:各路由器仅能保持CIB不变或者拥塞程度加深,而不能减轻拥塞程度。
[0060] 与现有技术相比,本发明的优点在于:本申请提案采用流状态信息表对流进行区分,仅保留那些速率较大的流的信息,从而大大减少了路由器需要维护的流的信息,减轻了路由器的开销。本申请提案中路由器是否进行拥塞避免的判定方法以及如何利用流状态信息表给不同的流设定不同的拥塞信息位的方法。本方案仅需要维护少量流的状态信息,减小了路由器的开销。本方案中设定拥塞信息位的方法比第三条第二种方案的方法更简单,计算量更小,更容易被路由器实现。
【专利附图】

【附图说明】
[0061]图1为本发明提供的基于流状态信息的内容中心网络拥塞控制方法时序图;
[0062]图2是本发明提供的基于流状态信息的内容中心网络拥塞控制的路由器的处理流程图。
【具体实施方式】
[0063]下面结合附图对本发明的技术方案进行详细阐述。
[0064]本发明提供的方案包含四部分内容:流状态信息的维护、拥塞预判、拥塞信息位(CIB)的计算以及终端对发送窗口的调整。路由器采用“流状态信息表”维护了那些占用带宽较大的流的状态信息,当路由器判定即将发生拥塞,需要进行拥塞避免时,路由器向在流状态信息表中的流的Data中加入CIB,终端收到带有CIB的Data后,根据CIB指示的拥塞程度对拥塞窗口进行增大或者缩小。
[0065]1.流状态信息的维护
[0066]本发明采用“流状态信息表”来维护路由器中的流的状态信息,流状态信息表结构如下:
[0067]
【权利要求】
1.一种基于流状态信息的内容中心网络拥塞控制方法,所述方法包含: 步骤101)用于更新流状态信息的步骤,该步骤中当某一条流的数据包的平均时间间隔大于一设定阈值时,将该流的状态信息从其所在的路由器中删除,得到更新后的流状态信息表; 步骤102)路由器判断网络是否即将发生拥塞,当即将发生拥塞时进入步骤103)更新CIB值,否则不改变CIB的当前值并进入步骤104); 步骤103)路由器依据步骤101)更新得到的流状态信息表更新流状态信息表中各流的CIB值,得到更新后的CIB值; 步骤104)将CIB值发送至下一个路由器,返回步骤101),直至包含有CIB值的包到达终端用户; 步骤105)终端用户根据最终收到的CIB值指示的网络拥塞程度对拥塞窗口的大小进行调整。
2.根据权利要求1所述的基于流状态信息的内容中心网络拥塞控制方法,其特征在于,所述步骤101)进一步包含: 步骤101-1)当某个数据包到达时,查询路由器当前维护的流状态信息表,如果流状态表中没有此流信息,则将该流信息加入流状态信息表,并启动计时器开始计时;如果流状态信息表中有此流,则更新当前队列长度、平均队列长度与包平均间隔,将计时器清零并重新计时; 步骤101-2)当某个数据包被转发出去时,查询流状态信息表,如果该数据包所在的流队列仍有剩余的数据包时,则更新平均队列长度与当前队列长度; 步骤101-3)如果某条流的数据包平均间隔超过时间一设定阈值t时从流状态信息表表中删除这条流的记录; 其中,所述流状态信息表包含:流标识、当前队列长度、平均队列长度、计时器和包平均间隔;所述流标识用于唯一确定一条流的标识;所述当前队列长度为对应的某条流此时在路由器队列中拥有的数据包的个数;所述平均队列长度为对应的某条流的当前队列长度进行平滑处理后的结果值,具体为:新的平均队列长度值由此前平均队列长度值与当前队列长度进行加权求和得到;所述计时器:当对应的流的包到达时,计时器从零开始计时;所述包平均间隔为当对应流有新的数据包到达时,读取计时器的值,与之前的包平均间隔进行加权求和,得到新的包平均间隔。
3.根据权利要求1所述的基于流状态信息的内容中心网络拥塞控制方法,其特征在于,所述步骤102)根据聚集流的总速率与所有队列总长度判断是否即将发生拥塞,即当聚集流的总速率大于某个设定阈值r或者队列总长度大于某个设定阈值q时,判定为即将发生拥塞。
4.根据权利要求2所述的 基于流状态信息的内容中心网络拥塞控制方法,其特征在于,步骤103)中所述的路由器更新各流的CIB值的具体方法为: 路由器判定即将发生拥塞,根据流的平均队列长度更新CIB值,具体计算方法步骤如下: 步骤103-1)获取路由器维护的流状态信息表中所有流的总队列长度; 步骤103-2)依据所有流公平分配总队列长度的原则获得均值队列长度;步骤103-3)将均值队列长度划分为若干段,建立CIB值与每段的映射关系,再依据各个流的平均队列长度所属的均值队列长度中的具体分段得到对应于各个流的CIB更新值;其中,更新CIB值的原则为:各路由器仅能保持CIB不变或者拥塞程度加深,而不能减轻拥塞程度。
5.根据权利要求4所述的基于流状态信息的内容中心网络拥塞控制方法,其特征在于,均值队列被第一分值点和第二分值点划分为3段,且设置源服务器发送的数据包时的CIB初始值设置为:00,第一份值点和第二分值点分布在O至均值队列长度形成的区间上,第一分值点小于第二分值点; 此时,CIB值与每段的映射关系为: 如果某个流的平均队列长度小于第一分值点,则CIB值设置为:01 ; 如果某个流的平均队列长度位于第一分值点和第二分值点之间,则CIB值设置为:10 ; 如果某个流的平均队列长度位于大于第二分值点,则CIB值设置为:11。
6.根据权利要求4所述的基于流状态信息的内容中心网络拥塞控制方法,其特征在于,当终端用户收到CIB值为“00”的数据包时,将增大发送窗口 ; 当用户终端收到CIB值为“01的数据包时,保持发送窗口大小不变; 当用户终端收到CIB值为“10”值的数据包时,则减小发送窗口大小,且减小的值为a ; 当用户终端收到CIB值为“ 10”值的数据包时,则减小发送窗口大小,且减小的值为b ; 其中,a〈b。
7.一种基于流状态信息的内容中心网络拥塞控制系统,所述系统包含: 流状态信息表更新存储模块,用于当某一条流的数据包的平均时间间隔大于一设定阈值时,将该流的状态信息从其所在的路由器中删除,获得更新后的流状态信息表; 预拥塞判断模块,用于路由器依据聚集流的总速率与所有队列总长度判断网络是否即将发生拥塞; CIB值更新模块,用于当预拥塞判断模块网络即将拥塞时更新流状态信息表维护的各流的CIB值; 拥塞窗口大小调整驱动模块,用于驱动终端用户根据最终收到的CIB值指示的网络拥塞程度对拥塞窗口的大小进行调整。
8.根据权利要求7所述的基于流状态信息的内容中心网络拥塞控制方法,其特征在于,所述流状态信息表更新存储模块进一步包含: 第一处理模块,用于当某个数据包到达时,查询路由器当前维护的流状态信息表,如果流状态表中没有此流信息,则将该流信息加入流状态信息表,并启动计时器开始计时;如果流状态信息表中有此流,则更新当前队列长度、平均队列长度与包平均间隔,将计时器清零并重新计时; 第二处理模块,用于当某个数据包被转发出去时,查询流状态信息表,如果该数据包所在的流队列仍有剩余的数据包时,则更新平均队列长度与当前队列长度; 删除模块,用于判断如果某条流的数据包平均间隔超过时间一设定阈值t时从流状态信息表中删除这条流的记录。
9.根据权利要求7所述的基于流状态信息的内容中心网络拥塞控制方法,其特征在于,所述CIB值更新模块进一步包含:总队列长度获取子模块,用于获取路由器维护的流状态信息表中所有流的总队列长度; 均值队列长度获取子模块,用于依据所有流公平分配总队列长度的原则获得均值队列长度;和 映射子模块,用于将均值队列长度划分为若干段,建立CIB值与每段的映射关系,再依据各个流的平均队列长度所属的均值队列长度中的具体分段得到对应于各个流的CIB更新值; 其中,更新CIB值的原则为:各路由器仅能保持CIB不变或者拥塞程度加深,而不能减轻拥塞程 度。
【文档编号】H04L12/807GK103905327SQ201210570798
【公开日】2014年7月2日 申请日期:2012年12月25日 优先权日:2012年12月25日
【发明者】付通敏, 李杨, 林涛, 谭红艳, 慈松 申请人:中国科学院声学研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1