一种网络流量控制系统及方法

文档序号:7759304阅读:155来源:国知局
专利名称:一种网络流量控制系统及方法
技术领域
本发明涉及计算机网络,尤其涉及网络流控控制。
背景技术
随着因特网业务的快速发展,网络流量急剧增加,网络流量控制技术被广泛关注。 特别是P2P(Peer to Peer,点对点)业务高速增长后,P2P的应用使得网络连接的数量大大 增加,并使网络下载流量剧增,从而导致本地网络带宽被大量消耗,甚至引起网络堵塞。网络流量控制是为了防止互联网拥挤而采取的一种措施,作用是保证互联网能够 正常工作。现有的网络流量控制技术主要有两种,一种是TCP窗口整形技术(又称TCP窗 口滑动技术),另一种是基于队列的流量控制技术。TCP窗口整形技术是通过对网络中每个TCP连接的流量进行监听、跟踪和计算,动 态的调整接收方接收窗口的大小,以控制发送方速率,从而达到避免网络拥塞的目的。通过 TCP窗口整形处理后的信流变得较为平滑,不产生严重突发以影响其他信流,使广域网资源 得以充分利用。TCP窗口整形技术不采用队列方式,大大减少了信息包的丢失,降低了数据包的重 传率。利用TCP窗口整形技术,网络中所有机器的发送量都受到统一控制。如果从路由器 流过的流量被控制到与广域网瓶颈带宽相一致,那么路由器上再也不会有大量的队列,这 就减轻了路由器的负担,使信息包通过路由器的时间大大减少。然而,TCP窗口整形技术由于采用TCP速率控制方式,因此无法支持UDP流量,对 UDP无效,不适用于UDP流量的QoS,只适用于TCP信息传输。此外,TCP窗口整形技术对链 接带宽利用不充分,如果保守地设置窗口大小,那么链路带宽就会存在未使用的空间,无法 使网络资源链接得到充分利用。此外,TCP窗口整形流量控制技术对大流量控制效果很差。基于队列的网络流量控制方法对TCP、UDP均有效,既能够支持TCP流量又能支持 UDP流量,因此既适用于TCP信息传输也适用于UDP信息传输。并且,基于队列的流量控制 的精度相对于TCP窗口整形技术来说,流控精度更高。然而由于队列流控通过丢包和增加Queuing Delay (队列延迟)来抑制TCP源端 发送,因此会导致源端的重传和链路时延的增加,从而使网络传输质量变差,并且在大流量 的情况下会导致系统压力过大由此可见,单单采用传统的TCP窗口整流技术或仅采用基于队列的流控技术都无 法得到较好的流控效果,无法满足日益增长的流控目标需求。

发明内容
本发明提供了一种能解决以上问题的网络流量控制系统及方法。在第一方面,本发明提供了一种网络流量控制系统,该系统包括UDP包过滤模块、 流控参数更新模块和TCP窗口整形模块。该流控参数更新模块用于接收流入该系统的数据包,并根据该数据包流速及系统
4设定的流控目标,计算该系统的流控状态、UDP包过滤比例、TCP窗口整形比例,且该流控状 态包括需要流控和不需要流控两种状态。该UDP包过滤模块用于接收所述流控状态、UDP包 过滤比例,且在该流控状态为需要流控时,根据该UDP包过滤比例,对流入该系统的UDP数 据包进行过滤。该TCP窗口整形模块用于接收经该UDP包过滤模块过滤后的数据包,并接 收流控状态和TCP窗口整形比例,且在该流控状态为需要流控时,根据该数据包的TCP窗口 大小及所述TCP窗口整形比例,对该过滤UDP包后的数据包进行TCP窗口整形。在第二方面,本发明提供了一种网络流量控制方法。首先接收流入系统的数据包, 并根据该数据包的流速及系统设定的流控目标,计算系统的流控状态及UDP包过滤比例、 TCP窗口整形比例,且该流控状态包括需要流控和不需要流控两种状态。然后在流控状态为 需要流控时,根据该UDP包过滤比例,对该流入系统的UDP数据包进行过滤。最后根据该数 据包的TCP窗口大小及所述TCP窗口整形比例,对该过滤UDP包后的数据包进行TCP窗口 整形。本发明相对于传统TCP窗口整形技术来说,能够控制TCP、UDP混合流量,使流控更 加全面准确,并且能够保证连接之间的公平性,还能够通过负反馈快速收敛到流控目标。本发明相对于传统队列流控技术来说,能够有效的抑制TCP发送方的发送速率, 同时还能够在大量新并发连接持续产生的情况下快速抑制TCP发送速率,并且能够减少 TCP发送方的重传,大大减轻了设备的压力。此外,由于本发明的映射表可配置,因此流控方 式更加灵活,且算法开销更小。综上所述,本发明的流控方法克服了传统TCP窗口整形流控以及传统基于队列流 控的不足,保证了 TCP、UDP流量在整个通道内的公平。


下面将参照附图对本发明的具体实施方案进行更详细的说明,在附图中图1是本发明一个实施例的网络流量控制系统示意图;图2是本发明一个实施例的图1中流控参数更新模块结构示意图;图3是本发明一个实施例的图1中TCP窗口整形模块结构示意图。
具体实施例方式图1是本发明一个实施例的网络流量控制系统示意图,该流控系统包括流控配置 模块120、流控参数更新模块130、UDP包过滤模块140、TCP窗口整形模块150、队列流控模 块 160。流控配置模块120用于配置流控目标,并将该流控目标发送至流控参数更新模块 130和列队流控模块160,且该流控目标是用户期望得到的网络流速。流控参数更新模块130用于定期接收流入通道内的数据包并接收数据包流速,以 及接收来自流控配置模块120的流控目标,根据该数据包流速及流控目标判定系统当前的 流控状态,并更新流控参数,该流控参数包括UDP包过滤比例和TCP窗口整形比例,然后再 将该UDP包过滤比例及当前流控状态发送至UDP包过滤模块140,将当前流控状态及TCP窗 口整形比例发送至TCP窗口整形模块150。其中,所述流控状态包括需要流控和不需要流控两种状态。此外,多长时间判定一次系统是否需要流控,即流控周期的判定,通过流控参数更新模块130来配置。更加详细的流控参数更新模块130的工作原理,以及如何判定流控状态、如何计 算UDP包过滤比例、TCP窗口整形比例,将通过图2及其相应说明部分得到详尽阐述。UDP包过滤模块140用于接收流入通道内的数据包,并定期(一个流控周期)接收 来自流控参数更新模块130的流控状态、UDP包过滤比例;且在其接收到的流控状态为需要 流控时,根据该UDP包过滤比例,对其接收到的UDP数据包进行过滤,再将过滤后的数据包 及流速发送至流控参数更新模块130,以便流控参数更新模块130根据其接收到的当前流 控状态、UDP包过滤后的流速调整下一流控周期的流控状态及UDP包过滤比例。TCP窗口整形模块150接收来自UDP包过滤模块140的数据包,并定期(一个流控周期)接收来自流控参数更新模块130的流控状态和TCP窗口整形比 例;且在其接收到的流控状态为需要流控时,根据该TCP窗口整形比例,采用TCP窗口整形 方法对过滤后的数据包进行窗口整形,具体TCP窗口整形方法及TCP窗口整形模块150的 工作原理将通过图3及其相应说明部分得到详尽阐述。队列流控模块160接收来自流控配置模块120的流控目标,并采用队列流控方法 对经TCP窗口整形后的流量做进一步的整形处理,以便输出的流量平缓。该队列流控方法 可以采用任意一种队列流控方法,如基于令牌桶的队列流控方法。图2是本发明一个实施例的图1中流控参数更新模块结构示意图,该流控参数更 新模块130包括流控状态计算模块131、UDP包过滤比例计算模块132、窗口整形比例计算 模块133。流控状态计算模块131接收来自流控配置模块120的流控目标,并接收流入通道 内数据包的流速,然后计算当前流控状态。一个例子中,在当前数据包流速大于流控目标时,流控状态为需要流控,反之则不 需要流控。另一个例子中,在当前数据包流速超过流控目标一定数值时,流控状态为需要流 控,反之则不需要流控。又一个例子,在当前数据包流速超过流控目标一定百分比(如超过 20% )时,流控状态为需要流控,反之则不需要流控。较佳地,流控状态的退出机制为,仅当数据包流速低于流控目标一定时间(如10 个计数周期)后,流控状态才会被更新为不需要流控,以便使流速平稳。需要说明的是,流控状态的判断方法有多种,本实施例仅以以上三种判别方法为 例加以阐述。UDP包过滤比例计算模块132用于确定UDP包的过滤比例,并将得到的该UDP包过 滤比例发送至UDP包过滤模块140。一个例子中,UDP包过滤比例计算模块132接收流控目 标、当前数据包流速,然后计算该当前数据包流速偏离流控目标的比例,若该偏离比例超过 一定数值,则选取较大的UDP包过滤比例,反之则选取较小的UDP包过滤比例。另一个例子 中,配置UDP包的过滤比例,使其成为一个定值。需要说明的是,UDP包过滤比例的计算方法有多种,本实施例仅以以上两种方法为 例加以阐述。窗口整形比例计算模块133通过查表法来确定TCP窗口的缩放比例,以控制TCP 窗口的大小;其中,所述表是一个可配置表,其表示过滤UDP包后的流速与流控目标之间的比值,与TCP窗口缩放比例之间的相互关系,如表1所示。表1中,R'表示过滤UDP包后 的流速,A表示流控目标,M表示TCP窗口缩放比例。需要说明的是,该表1仅是一个例子, 表1中的具体数值可配置,并且该可配置表需要被配置成具有负反馈功能,也就是说,当流 速超过流控目标较大时,TCP窗口缩小的比例较大;流速超过流控目标较小时,TCP窗口缩 小比例较小;而当流速低于流控目标较多时,需要增大TCP接收窗口,以防止流量被过度抑 制。由此可见,本实施例的查表法优势如下表配置灵活、达到通道流控目标的效率更高且 充分利用了网络带宽。
表 1图3是本发明一个实施例的图1中TCP窗口整形模块结构示意图,该TCP窗口整 形模块150包括窗口比例更新模块151、转发包窗口更新模块153。窗口比例更新模块151接收来自UDP包过滤模块140过滤后的数据包,在此称该 数据包为转发包(该转发包包含该转发包的累积TCP窗口整形比例),以及接收来自流控参 数更新模块130的流控状态和转发包所属通道在当前周期的TCP窗口整形比例,并根据该 转发包中的信息获得该转发包所属连接的累积TCP窗口整形比例,再根据该来自流控参数 更新模块130的流控状态、转发包所属通道在当前周期的TCP窗口整形比例以及根据该转 发包的累积TCP窗口整形比例,更新该转发包所属连接在当前周期的TCP窗口整形比例。具体地,在流控状态为需要流控时,该更新后的TCP窗口整形比例等于来自流控 参数更新模块130的TCP窗口整形比例与所述累积TCP窗口整形比例之积。举例如,该转发包所属连接在第一流控周期的TCP窗口整形比例为100%,若第二流控周期的TCP窗口整 形比例为80%,则经第二流控周期后的累积TCP窗口整形比例为100% *80%= 80%;若第 三流控周期的TCP窗口整形比例为70%,则经第三流控周期后的TCP窗口整形比例为80% *70 % = 56 % ;若第四流控周期的TCP窗口整形比例为50 %,则经第四周期后的TCP窗口整 形比例为56 % *50 % = 28 %,如此反复,从而得到更新后的TCP窗口整形比例(如当前周期 为第四周期,则更新后的TCP窗口整形比例为28% ),然后再将该更新后的TCP窗口整形比 例发送至转发包窗口更新模块153中。转发包窗口更新模块153接收来自窗口比例更新模块151的更新后的TCP窗口整 形比例,以及接收来自UDP包过滤模块140的当前转发包,并根据该当前转发包中信息得到 该转发包的TCP窗口大小,然后根据该更新后的TCP窗口整形比例以及所述转发包的TCP 窗口大小,计算该转发包的最新TCP窗口大小并对其做更新,再将该已更新窗口的转发包 发送至列队流控模块160。由于不同应用及操作系统的初始接收窗口大小不同,如wi ndows系统的初始接收 窗口为65535,Linux系统的初始接收窗口为8760,因此为了防止流量被过分抑制,现将该 更新后的窗口大小设置在一定范围之内,举例如,设置TCP窗口最大值为8760,TCP窗口最 小值为1460。具体地,转发包窗口更新模块153接收来自UDP包过滤模块140的转发包,然后判 断该转发包的TCP窗口大小是否超过系统设定的最大TCP窗口值(如8760),若超过,则将 该最大TCP窗口值(如8760)与来自窗口比例更新模块151的更新后的TCP窗口整形比例 做乘积,再将该乘积值作为该转发包的TCP窗口值;若未超过,则将该转发包的TCP窗口大 小与该更新后的TCP窗口整形比例做乘积,然后再判定该乘积值是否低于系统设定的最小 TCP窗口值(如1460);若低于,则将该最小TCP窗口值(如1460)作为该转发包的窗口值; 若未低于,则将所述乘积值作为该转发包的TCP窗口值。显而易见,在不偏离本发明的真实精神和范围的前提下,在此描述的本发明可以 有许多变化。因此,所有对于本领域技术人员来说显而易见的改变,都应包括在本权利要求 书所涵盖的范围之内。本发明所要求保护的范围仅由所述的权利要求书进行限定。
权利要求
一种网络流量控制系统,其特征在于,包括UDP包过滤模块、流控参数更新模块、TCP窗口整形模块;该流控参数更新模块用于接收流入该系统的数据包,并根据该数据包流速及系统设定的流控目标,计算该系统的流控状态、UDP包过滤比例、TCP窗口整形比例,且该流控状态包括需要流控和不需要流控两种状态;该UDP包过滤模块用于接收所述流控状态、UDP包过滤比例,且在该流控状态为需要流控时,根据该UDP包过滤比例,对该流入系统的UDP数据包进行过滤;该TCP窗口整形模块用于接收经该UDP包过滤模块过滤后的数据包,并接收来自该流控参数更新模块的流控状态和TCP窗口整形比例,且在该流控状态为需要流控时,根据该数据包的TCP窗口大小及所述TCP窗口整形比例,对该过滤UDP包后的数据包进行TCP窗口整形。
2.如权利要求1所述的一种网络流量控制系统,其特征在于,包括队列流控模块,该队 列流控模块用于接收流控目标,并基于该流控目标对由所述TCP窗口整形模块进行窗口整 形后的数据包流速,进行队列流控处理,以便输出的流量平滑。
3.如权利要求1所述的一种网络流量控制系统,其特征在于,包括流控配置模块,该流 控配置模块用于配置所述流控目标。
4.如权利要求1所述的一种网络流量控制系统,其特征在于,所述流控参数更新模块 包括流控状态计算模块、窗口整形比例计算模块;该流控状态计算模块根据所述数据包流速及流控目标,计算当前流控状态;该窗口整形比例计算模块通过查表来确定TCP窗口的缩放比例,以控制TCP窗口的大 小;其中,所述表是一个可配置表,且该表被配置成具有负反馈功能,其用于表示该经UDP 包过滤模块过滤后的数据包流速与流控目标之间的比值,与TCP窗口缩放比例之间的相互 关系。
5.如权利要求4所述的一种网络流量控制系统,其特征在于,所述当前流控状态的计 算方式为判定该数据包流速与流控目标之间的大小关系,在该数据包流速大于流控目标时,该 当前流控状态为需要流控,反之则不需要流控;或判定该数据包流速与流控目标之间的百分比,在该数据包流速大于流控目标一定百分 比时,该当前流控状态为需要流控,反之则不需要流控。
6.如权利要求4所述的一种网络流量控制系统,其特征在于,所述需要流控状态的退 出机制为,数据包流速低于流控目标的时间达到时间阈值后,流控状态更新为不需要流控。
7.如权利要求4所述的一种网络流量控制系统,其特征在于,所述流控参数更新模块 还包括UDP包过滤比例计算模块;UDP包过滤比例计算模块用于获得UDP包的过滤比例,并将得到的该UDP包过滤比例发 送至UDP包过滤模块;其中,所述UDP包过滤比例的获得方式为计算所述数据包流速偏离流控目标的比例,若该偏离比例超过一定阈值,则选取较大 的UDP包过滤比例,反之则选取较小的UDP包过滤比例;或配置UDP包的过滤比例为一个固定数值。
8.如权利要求1所述的一种网络流量控制系统,其特征在于,所述TCP窗口整形模块包括窗口比例更新模块;该窗口比例更新模块用于接收来自该UDP包过滤模块过滤后的数据包,以及接收来自 流控参数更新模块的流控状态和TCP窗口整形比例,并根据该接收到数据包中信息获得其 所属连接的累积TCP窗口整形比例,再根据来自流控参数更新模块的流控状态、TCP窗口整 形比例以及所述累积TCP窗口整形比例,更新该连接的TCP窗口整形比例。
9.如权利要求8所述的一种网络流量控制系统,其特征在于,所述TCP窗口整形模块还 包括转发包窗口更新模块;且该转发包窗口更新模块包括接收来自该窗口比例更新模块的更新后的TCP窗口整形比例,以及接收来自UDP包过 滤模块的数据包,并根据该数据包中信息得到该数据包TCP窗口大小的模块;以及根据该更新后的TCP窗口整形比例以及由数据包信息中得到的TCP窗口大小,计算该 数据包的最新TCP窗口大小的模块。
10.如权利要求9所述的一种网络流量控制系统,其特征在于,所述计算该数据包最新 TCP窗口大小的模块包括判定该数据包的TCP窗口大小是否超过系统设定的最大TCP窗口阈值,若超过该阈值, 则将该最大TCP窗口阈值与所述更新后的TCP窗口整形比例做乘积,并将该乘积值作为该 数据包TCP窗口值的子模块;若未超过所述阈值,则将该数据包的TCP窗口大小与该更新后的TCP窗口整形比例做 乘积,再判定该乘积值是否低于最小TCP窗口值的子模块;若所述乘积值低于该最小TCP窗口值,将该最小TCP窗口值作为该数据包TCP窗口值 的子模块;若所述乘积值未低于该最小TCP窗口值,则将所述乘积值作为该数据包TCP窗口值的 子模块。
11.一种网络流量控制方法,其特征在于,包括步骤a,接收流入系统的数据包,并根据该数据包的流速及系统设定的流控目标,计算 系统的流控状态及UDP包过滤比例、TCP窗口整形比例,且该流控状态包括需要流控和不需 要流控两种状态;步骤b,在所述流控状态为需要流控时,根据该UDP包过滤比例,对该流入系统的UDP数 据包进行过滤;步骤c,根据该数据包的TCP窗口大小及所述TCP窗口整形比例,对该过滤UDP包后的 数据包进行TCP窗口整形。
全文摘要
本发明涉及一种网络流量控制系统及方法。本发明包括UDP包过滤模块、流控参数更新模块和TCP窗口整形模块。该流控参数更新模块用于接收流入该系统的数据包,并根据该数据包流速及系统设定的流控目标,计算该系统的流控状态、UDP包过滤比例、TCP窗口整形比例。该UDP包过滤模块用于接收流控状态、UDP包过滤比例,且在该流控状态为需要流控时,根据该UDP包过滤比例,对该流入系统的UDP数据包进行过滤。该TCP窗口整形模块用于接收该过滤后的数据包、流控状态、TCP窗口整形比例,并根据该数据包的TCP窗口大小及TCP窗口整形比例,对该过滤后的数据包进行窗口整形。本发明能够广泛应用于网络流控系统中。
文档编号H04L12/56GK101917349SQ20101027543
公开日2010年12月15日 申请日期2010年9月8日 优先权日2010年9月8日
发明者才华, 斯俊伟, 梁志勇, 梁斌, 米佳 申请人:北京网康科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1