一种带宽分配的方法及路由器的制造方法

文档序号:7805945阅读:137来源:国知局
一种带宽分配的方法及路由器的制造方法
【专利摘要】本发明适用于通信领域,提供了一种带宽分配的方法及路由器。所述方法包括:结合流特征数据库,识别每条数据流所属的网络应用,所述流特征数据库包括流特征和网络应用的对应关系;监测当前网络总带宽和各个优先级业务的当前使用带宽,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流;根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。在本发明中,由于根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽,因此能进行智能、合理地调节带宽,终端用户的上网体验较佳。
【专利说明】—种带宽分配的方法及路由器
【技术领域】
[0001]本发明属于通信领域,尤其涉及一种带宽分配的方法及路由器。
【背景技术】
[0002]路由器是自身具有接入互联网的功能且能为终端提供接入功能的设备。终端是用户用来接入到路由器从而接入互联网的设备,包括智能手机、PC等。
[0003]传统的家用宽带网络,基本都存在上下行带宽不对等的问题,例如12MB/S的下行带宽只有512KB/S的上行带宽。而另一方面,目前有不少终端应用程序是基于对等计算(Peer to Peer, P2P)的网络实现,即它不仅下载数据,还向其他终端应用分享已下载的数据。在这样的条件下,上行带宽往往会更早被占满,此时终端应用发送的请求则有可能被丢弃,从而导致下行带宽无法被充分利用。
[0004]综上所述,现有技术的带宽分配不能进行智能、合理地调节,导致终端用户的上网体验较差。

【发明内容】

[0005]本发明的目的在于提供一种带宽分配的方法及路由器,旨在解决现有技术的带宽分配不能进行智能、合理地调节,导致终端用户的上网体验较差的问题。
[0006]第一方面,本发明提供了一种带宽分配的方法,所述方法包括:
[0007]结合流特征数据库,识别每条数据流所属的网络应用,所述流特征数据库包括流特征和网络应用的对应关系;
[0008]监测当前网络总带宽和各个优先级业务的当前使用带宽,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流;
[0009]根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。
[0010]第二方面,本发明提供了一种路由器,所述路由器包括:
[0011 ] 识别模块,用于结合流特征数据库,识别每条数据流所属的网络应用,所述流特征数据库包括流特征和网络应用的对应关系;
[0012]监测模块,用于监测当前网络总带宽和各个优先级业务的当前使用带宽,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流;
[0013]调节模块,用于根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。
[0014]在本发明中,由于根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽,因此能进行智能、合理地调节带宽,终端用户的上网体验较佳。【专利附图】

【附图说明】
[0015]图1是本发明实施例一提供的带宽分配的方法流程图。
[0016]图2是本发明实施例一提供的带宽分配的方法中对下行带宽进行分配的示意图。
[0017]图3是本发明实施例一提供的带宽分配的方法中根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的下行带宽的示意图。
[0018]图4是本发明实施例二提供的路由器的结构示意图。
【具体实施方式】
[0019]为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0020]为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
[0021]实施例一:
[0022]请参阅图1,本发明实施例一提供的带宽分配的方法包括以下步骤:
[0023]S101、结合流特征数据库,识别每条数据流所属的网络应用。
[0024]网络应用通常使用传输控制协议(Transmiss1nControl Protocol, TCP)和用户数据报协议(User Datagram Protocol,UDP)协议的数据报文进行通信,而这类数据报文都必须包含一个五元组(五元组包括协议类型、源IP地址、目的IP地址、源端口号和目的端口号),包含相同五元组的数据报文则被视为一条数据流。其中,源IP地址和目的IP地址调换的两个五元组也视为相同五元组。
[0025]在本发明实施例一中,识别每条数据流所属的网络应用具体为识别每条数据流属于哪个网络应用(例如某个网络游戏、优酷视频等)或者属于哪类网络应用(例如游戏类、视频类、下载类)。
[0026]流特征数据库是通过大量分析收集的流特征,包括流特征和网络应用的对应关系O
[0027]在本发明实施例一中,SlOl具体包括以下步骤中的一个或任意组合:
[0028]检测是否通过路由的通用即插即用(Universal Plug and Play, upnp)功能进行端口映射,以识别数据流所属的网络应用是否为P2P应用;原理如下:由于有些P2P应用依赖路由的upnp功能进行端口映射,所以通过检测是否通过路由的upnp功能进行端口映射,可以识别数据流所属的网络应用是否为P2P应用;
[0029]检测传输层端口是否对应了多条连接,以识别所述传输层端口对应的数据流所属的网络应用是否为P2P应用;原理如下:由于P2P应用往往会创建大量的连接以实现对带宽的利用,因此当某个传输层端口对应了多条连接时,则该端口对应的数据流就极有可能是P2P应用的数据流;
[0030]检测目的主机的域名,并结合域名系统(Domain Name System, DNS)数据流中的域名和IP地址的对应关系以及流特征数据库中的域名与网络应用的对应关系,识别所述目的主机的IP地址对应的数据流所属的网络应用;原理如下:由于终端访问目的主机往往使用域名,而正常访问到目的主机之前,需要通过DNS进行域名解析将目的主机的域名解析为IP地址,因此通过DNS数据流中的域名和IP地址的对应关系,并结合流特征数据库中的域名与网络应用的对应关系,则可识别所述目的主机的IP地址对应的数据流所属的网络应用;
[0031]通过深度包检测(Deep Packet Inspect1n, DPI),对数据流中的数据报文内容进行探测,从而识别数据流所属的网络应用;
[0032]通过深度流检测(DeepFlow Inspect1n, DFI)对流量行为进行检测,从而识别数据流所属的网络应用;原理如下:由于不同的网络应用类型体现在会话连接或数据流上的状态不同,因此结合流特征数据库,可以识别数据流所属的网络应用。
[0033]由于以上的有些步骤不能完全独立识别数据流,一些情况下各个步骤会相互协作,以达到更高的识别率。
[0034]S102、监测当前网络总带宽和各个优先级业务的当前使用带宽。
[0035]在本发明实施例一中,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流。
[0036]在本发明实施例一中,所述监测当前网络总带宽具体为:
[0037]通过定时统计当前使用带宽来更新当前网络总带宽值,统计时间间隔为第一时间间隔Tl,重新预测可用带宽时间间隔为第二时间间隔T2,T2远远大于Tl,每隔Tl记录当前使用带宽,将预定次数(例如前10次左右)记录的“当前使用带宽”进行比较,挑选最大值作为总带宽值,并遵循快升慢降原则,即带宽由A值升到B值时,B值会立即传下去,而由A值降到C值时,C值并不会立即生效。
[0038]在本发明实施例一中,所述监测各个优先级业务的当前使用带宽具体包括以下步骤:
[0039]监测每条数据流的使用带宽;
[0040]计算各个优先级业务所包含的数据流的使用带宽总和作为各个优先级业务的当前使用带宽。
[0041]S103、根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。
[0042]请参阅图2,将当前网络总带宽BW平均分成N份带宽,其中N为大于I的整数,每份带宽值为BW/N。将数据流划分成四种优先级业务(分别为高优先级业务HIGH、中优先级业务MEDIUM、普通优先级业务NORMAL、低优先级业务LOW),每种优先级业务各自持有自己能保障的带宽份额,且每份带宽均会标记出拥有权归哪个优先级业务。
[0043]图2中数学符号定义如下:
[0044]L1-HIGH, L2-MEDIUM, L3-NORMAL, L4-LOW。
[0045]01——代表LI优先级拥有的保障带宽份额(如60%总带宽)
[0046]02——代表L2优先级拥有的保障带宽份额(如30%总带宽)
[0047]03——代表L3优先级拥有的保障带宽份额(如10%总带宽)
[0048]04—代表L4优先级拥有的保障带宽份额(如0%总带宽),主要将基于P2P的业务流全部划分到L4。对L4业务无任何保障行为,L4业务的带宽主要通过临时借用其他业务的带宽份额。
[0049]Ul——代表LI优先级正在使用的带宽份额,以此类推,U2、U3、U4分为L2、L3、L4正在使用的带宽份额。
[0050]Tl——代表LI优先级单位时间内能使用的令牌数,以此类推,T2、T3、T4分为L2、L3、L4单位时间内能使用的令牌数。Ti限制着Ui的最大值。
[0051]现有技术的家用宽带网络,是无法从根本上实现下行带宽限速的,因为无法决定从互联网服务提供商(Internet Service Provider, ISP)传来的业务流按怎样的比例进行传输,一般的下行带宽限速通过对特定业务流数据包的积压和丢包,试图利用TCP拥塞控制等机制来促使上行速率降低,但这样的做法对于P2P业务效果不好。
[0052]因此,本发明实施例一通过两种手段的结合来更好地处理带宽分配:
[0053]下行令牌桶限速:基于令牌桶过滤器(TokenBucketFilter, TBF),每个优先级业务下行带宽通过自己的Ti来进行适当限速。当网络处于拥塞状态时,通过Ti来控制LI~L3,使其Ui≤0i(i = 1、2、3),L4下行带宽借用可用的剩余可用的令牌,而限速则需通过上行带宽限速来实现;当网络不处在拥塞状态时,所有优先级业务都可以借用空闲带宽份额;
[0054]上行带宽限速:当网络处于拥塞状态时,L4的上行带宽会根据算法进行几个等级强度的限制。
[0055]在本发明实施例一中,根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的下行带宽具体包括以下步骤:
[0056]每隔第三时间间隔ta,Li尝试从借用了 Li的带宽值的其他优先级业务夺回一份保障的带宽;每隔第四时间间隔tb,Li释放一份不使用的带宽到空闲带宽池;每隔第五时间间隔tc,Li尝试向其他优先级业务借用一份带宽值来满足当前的需要。(ta古tb Φ tc)。
[0057]具体为:
[0058]当Li当前使用的带宽份额Ui大于其自身保障能拥有的带宽份额Oi时,而此时优先级Lk(k#i)开始提高流量,夺回属于自己的那份带宽(被其他Li借用的带宽)。如图3,L2几乎将所有的带宽片都使用了,而LI有需要时则会首先从L2中夺回自己的那份带宽。同样,虽然L3优先级比L2优先级低,仍然可以从L2手中夺回保障给自己的那份带宽。L2会归还借用带宽片给需要使用的优先级业务Li (i = 1、3);
[0059]当Li在t2时刻使用的带宽份额Ui,相比tl时刻使用的带宽份额Ui要少时(t2>tl),则Li会往空闲带宽池放回带宽份额;
[0060]当Li在tl正在使用的带宽片数Ui达到了保障带宽份额时Oi,而在t2时刻,所需使用的带宽比tl时要高(Ui>0i),此时尝试从空闲带宽池中去拿份带宽。
[0061]在本发明实施例一中,下行对上行优先级业务L4针对性限速触发条件,计算公式如下:
[0062]B = W+N
[0063]T = R4+ (N — U4 — Ufree) X B
[0064]其中,W一下行总带宽值(kbps)、T一触发带宽值(kbps)、N一带宽总份额、U4一L4所使用的带宽份额、Ufree—空闲的带宽份额、B—每份带宽值(kbps)、R4 — L4实际速率(kbps);当T≥W时,表示网络已经发生拥塞,且对于L4业务流难以进行带宽控制,故需要触发上行对L4业务进行相关限速丢包操作,从而来保障其他较高优先级业务Li (i = 1、2)的时延。[0065]在本发明实施例一中,根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽具体包括以下步骤:
[0066]根据下行的需要对低优先级业务的上行带宽进行限速,并预留上行带宽。
[0067]在本发明实施例一中,对L4上行限速的程度取决于L4当前上行使用的带宽值,以此值作为基准对L4执行相关限速措施。
[0068]对低优先级业务的上行带宽进行限速具体为:
[0069]L4 第一阶段限速后的带宽值 TBl = (Bc + Tc) — (Bc + Tc)+2Fs
[0070]L4第二阶段限制带宽,重复执行TBi+1 = TBi + 2(i = 1、2、3……N),直到TBi+1
<Wth值为止,或者L4下行不需要上行继续限速为止。
[0071]L4在第二阶段获得的上行带宽值无法满足下行要求,则在第三阶段就行限速,且重复执行TBi = TB1- Dmin (i是第二阶段中获得的值),直到TBi为Bmin为止,或者L4下行不需要上行继续限速为止。
[0072]当下行不需要上行继续辅助限速时,上行会有一个回升过程,且该回升过程较为简单。
[0073]若上行只有L4数据流,则回升速度相对较快,每次回升带宽值后,所得的上行带宽值为TB = TB+Umax,若上行有高优先级业务流在传输,则回升速度会相对缓慢,所得的限速带宽值TB = TB+Umin。
[0074]上行带宽控制能力,就是徘徊在下降和上行带宽值之间,是L4针对性限速主要特点。
[0075]其中,Fs是指初始带宽设置因子、Wth是指带宽分水岭值、Dmin是指下降最小带宽值、Umin是指回升最小带宽值、Umax是指回升最大带宽值、Tc是指限制检测时间间隔(ms)、Be是指时间Tc内传输的字节数(byte) ,Bmin是指最小上行带宽值、TBi是指第i次进行带宽限速后的值(kbps)。
[0076]在本发明实施例一中,由于L4某些应用如P2P,有上传数据的能力,此时可能会将有限的上行带宽给占满,而又由于上行是听从于下行的命令来执行针对性限速。若下行L4流量很小触发不了上行进行限速的条件,上行又被P2P给占满,对于高优先级业务是很难跟P2P竞争,难以传输出去,故对高优先级业务难以起到一定优先效果。这时就需要预留上行带宽来使其起到一定作用。
[0077]上行带宽预留并不是一直为高优先级业务预留,而是高优先业务有需要时,才会进行相关预留操作。
[0078]预留上行带宽具体步骤如下:
[0079]无论下行情况如何,只要有L1、L2业务在上行传输,L3、L4会进行部分带宽预留,预留方式如下:
[0080]L3预留部分带宽后,上行带宽值=W - (W+2Sf+l)
[0081]L4预留部分带宽后,上行带宽值=W —(W+2Sf)
[0082]若上行无LI或L2业务,则上行不会进行任何带宽预留,L3、L4可以使用所有上行带宽。
[0083]其中,W是指上行总带宽(kbps)、Sf是指预留因子。
[0084] 另外,由于网络游戏数目众多,数据流的特征各异,所以结合流特征数据库,往往不能保证准确识别大多数网络游戏。本方案中未识别的数据流均被划分到低优先级的业务,然而网络游戏对响应延迟要求高,一旦未被识别,则可能由于被划分到低优先级业务而无法获得更好的延迟保障。
[0085]为了尽可能让网络游戏获得更好的使用体验,在本发明实施例一中,SlOl具体还包括以下步骤:
[0086]结合包括了游戏特征库的流特征数据库,识别游戏流;或者,
[0087]对包均长小于预定字节的数据包进行判定,识别游戏流。
[0088]根据测试发现,目前的大多数网络游戏为保证响应及时,一般数据流的特征都是包数量较多,但平均包长度较小的“小包”,特别在上行方向符合此特征。
[0089]所述对包均长小于预定字节的数据包进行判定,识别游戏流具体为:
[0090]定期检测包均长小于预定字节的数据包,且进行多个检测周期的反复确认,以识别游戏流。
[0091]所述包均长小于预定字节的数据包是指一个检测周期,例如1s内上行下行至少一共发送预定数量,例如100个数据包,包均长小于预定字节,例如75个字节的数据包;由于游戏载入等一些特殊情况,游戏数据流不符合小包的特点,所以需要进行多次检测;由于某些非游戏的应用在某些特定场景下也符合小包的特征,所以需要进行多个检测周期的反复确认。
[0092]在本发明实施例一中,由于根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽,因此能进行智能、合理地调节带宽,终端用户的上网体验较佳。另外,由于通过定时统计当前使用带宽来更新当前网络总带宽值,统计时间间隔为第一时间间隔Tl,重新预测可用带宽时间间隔为第二时间间隔T2,T2远远大于Tl,每隔Tl记录当前使用带宽,将预定次数(例如前10次左右)记录的“当前使用带宽”进行比较,挑选最大值作为总带宽值,因此能自动检测总带宽,而无需用户填写;另外,由于结合包括了游戏特征库的流特征数据库,识别游戏流;或者,对包均长小于预定字节的数据包进行判定,识别游戏流,因此能更准确地识别游戏流;再者,由于每隔第三时间间隔ta,Li尝试从借用了 Li的带宽值的其他优先级业务夺回一份保障的带宽;每隔第四时间间隔tb,Li释放一份不使用的带宽到空闲带宽池;每隔第五时间间隔tc,Li尝试向其他优先级业务借用一份带宽值来满足当前的需要。因此能智能调节带宽,对于网络游戏加速至关重要。
[0093]实施例二:
[0094]请参阅图4,本发明实施例二提供的路由器包括:识别模块11、监测模块12和调节模块,其中,
[0095]识别模块11,用于结合流特征数据库,识别每条数据流所属的网络应用,所述流特征数据库包括流特征和网络应用的对应关系;
[0096]网络应用通常使用TCP和UDP协议的数据报文进行通信,而这类数据报文都必须包含一个五元组(五元组包括协议类型、源IP地址、目的IP地址、源端口号和目的端口号),包含相同五元组的数据报文则被视为一条数据流。其中,源IP地址和目的IP地址调换的两个五元组也视为相同五元组。
[0097]在本发明实施例二中,识别每条数据流所属的网络应用具体为识别每条数据流属于哪个网络应用(例如某个网络游戏、优酷视频等)或者属于哪类网络应用(例如游戏类、视频类、下载类)。
[0098]监测模块12,用于监测当前网络总带宽和各个优先级业务的当前使用带宽,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流;
[0099]调节模块13,用于根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。
[0100]在本发明实施例二中,所述识别模块具体可以包括以下模块中的一个或任意组合:
[0101]第一识别模块,用于检测是否通过路由的通用即插即用upnp功能进行端口映射,以识别数据流所属的网络应用是否为P2P应用;
[0102]第二识别模块,用于检测传输层端口是否对应了多条连接,以识别所述传输层端口对应的数据流所属的网络应用是否为P2P应用;
[0103]第三识别模块,用于检测目的主机的域名,并结合域名系统DNS数据流中的域名和IP地址的对应关系以及流特征数据库中的域名与网络应用的对应关系,识别所述目的主机的IP地址对应的数据流所属的网络应用;
[0104]第四识别模块,用于通过深度包检测DPI,对数据流中的数据报文内容进行探测,从而识别数据流所属的网络应用;
[0105]第五识别模块,用于通过深度流检测DFI对流量行为进行检测,从而识别数据流所属的网络应用;
[0106]第六识别模块,用于结合包括了游戏特征库的流特征数据库,识别游戏流;
[0107]第七识别模块,用于对包均长小于预定字节的数据包进行判定,识别游戏流。
[0108]在本发明实施例二中,所述监测模块用于监测当前网络总带宽时,具体可以包括:
[0109]统计模块,用于通过定时统计当前使用带宽来更新当前网络总带宽值,统计时间间隔为第一时间间隔Tl,重新预测可用带宽时间间隔为第二时间间隔T2,T2远远大于Tl ;
[0110]记录模块,用于每隔Tl记录当前使用带宽;
[0111]比较模块,用于将预定次数记录的当前使用带宽进行比较,挑选最大值作为总带宽值。
[0112]在本发明实施例二中,所述监测模块用于监测各个优先级业务的当前使用带宽时,具体可以包括:
[0113]第一监测模块,用于监测每条数据流的使用带宽;
[0114]计算模块,用于计算各个优先级业务所包含的数据流的使用带宽总和作为各个优先级业务的当前使用带宽。
[0115]请结合图2,将当前网络总带宽BW平均分成N份带宽,其中N为大于I的整数,每份带宽值为BW/N。将数据流划分成四种优先级业务(分别为高优先级业务HIGH、中优先级业务MEDIUM、普通优先级业务NORMAL、低优先级业务LOW),每种优先级业务各自持有自己能保障的带宽份额,且每份带宽均会标记出拥有权归哪个优先级业务。
[0116]现有技术的家用宽带网络,是无法从根本上实现下行带宽限速的,因为无法决定从互联网服务提供商(Internet Service Provider, ISP)传来的业务流按怎样的比例进行传输,一般的下行带宽限速通过对特定业务流数据包的积压和丢包,试图利用TCP拥塞控制等机制来促使上行速率降低,但这样的做法对于P2P业务效果不好。
[0117]因此,本发明实施例二通过两种手段的结合来更好地处理带宽分配:
[0118]下行令牌桶限速:基于令牌桶过滤器(TokenBucketFilter, TBF),每个优先级业务下行带宽通过自己的Ti来进行适当限速。当网络处于拥塞状态时,通过Ti来控制LI~L3,使其Ui ^0i(i = 1、2、3),L4下行带宽借用可用的剩余可用的令牌,而限速则需通过上行带宽限速来实现;当网络不处在拥塞状态时,所有优先级业务都可以借用空闲带宽份额;
[0119]上行带宽限速:当网络处于拥塞状态时,L4的上行带宽会根据算法进行几个等级强度的限制。
[0120]在本发明实施例二中,所述调节模块用于分别调节各个优先级业务使用的下行带宽时,具体可以包括:
[0121]夺回模块,用于每隔第三时间间隔ta,优先级业务Li尝试从借用了 Li的带宽值的其他优先级业务夺回一份保障的带宽; [0122]释放模块,用于每隔第四时间间隔tb,Li释放一份不使用的带宽到空闲带宽池;
[0123]借用模块,用于每隔第五时间间隔tc,Li尝试向其他优先级业务借用一份带宽值来满足当前的需要,其中ta古tb古tc。
[0124]具体为:
[0125]当Li当前使用的带宽份额Ui大于其自身保障能拥有的带宽份额Oi时,而此时优先级Lk(k#i)开始提高流量,夺回属于自己的那份带宽(被其他Li借用的带宽)。如图3,L2几乎将所有的带宽片都使用了,而LI有需要时则会首先从L2中夺回自己的那份带宽。同样,虽然L3优先级比L2优先级低,仍然可以从L2手中夺回保障给自己的那份带宽。L2会归还借用带宽片给需要使用的优先级业务Li (i = 1、3);
[0126]当Li在t2时刻使用的带宽份额Ui,相比tl时刻使用的带宽份额Ui要少时(t2>tl),则Li会往空闲带宽池放回带宽份额;
[0127]当Li在tl正在使用的带宽片数Ui达到了保障带宽份额时0i,而在t2时刻,所需使用的带宽比tl时要高(Ui>0i),此时尝试从空闲带宽池中去拿份带宽。
[0128]在本发明实施例二中,下行对上行优先级业务L4针对性限速触发条件,计算公式如下:
[0129]B = W+N
[0130]T = R4+ (N — U4 — Ufree) X B
[0131]其中,W—下行总带宽值(kbps)、T一触发带宽值(kbps)、N—带宽总份额、U4—L4所使用的带宽份额、Ufree—空闲的带宽份额、B—每份带宽值(kbps)、R4 — L4实际速率(kbps);当T≥W时,表示网络已经发生拥塞,且对于L4业务流难以进行带宽控制,故需要触发上行对L4业务进行相关限速丢包操作,从而来保障其他较高优先级业务Li (i = 1、2)的时延。
[0132]在本发明实施例二中,所述调节模块用于分别调节各个优先级业务使用的上行带宽时,具体可以包括:[0133]限速模块,用于根据下行的需要对低优先级业务的上行带宽进行限速:
[0134]预留模块,用于预留上行带宽。
[0135]在本发明实施例下中,对L4上行限速的程度取决于L4当前上行使用的带宽值,以此值作为基准对L4执行相关限速措施。
[0136]对低优先级业务的上行带宽进行限速具体为:
[0137]L4 第一阶段限速后的带宽值 TBl = (Bc + Tc) —(Bc + Tc)+2Fs
[0138]L4第二阶段限制带宽,重复执行TBi+1 = TBi + 2(i = 1、2、3……N),直到TBi+1
<Wth值为止,或者L4下行不需要上行继续限速为止。
[0139]L4在第二阶段获得的上行带宽值无法满足下行要求,则在第三阶段就行限速,且重复执行TBi = TB1- Dmin (i是第二阶段中获得的值),直到TBi为Bmin为止,或者L4下行不需要上行继续限速为止。
[0140]当下行不需要上行继续辅助限速时,上行会有一个回升过程,且该回升过程较为简单。
[0141]若上行只有L4数据流,则回升速度相对较快,每次回升带宽值后,所得的上行带宽值为TB = TB+Umax,若上行有高优先级业务流在传输,则回升速度会相对缓慢,所得的限速带宽值TB = TB+Umin。
[0142]上行带宽控制能力,就是徘徊在下降和上行带宽值之间,是L4针对性限速主要特点。
[0143]其中,Fs是指初始带宽设置因子、Wth是指带宽分水岭值、Dmin是指下降最小带宽值、Umin是指回升最小带宽值、Umax是指回升最大带宽值、Tc是指限制检测时间间隔(ms)、Be是指时间Tc内传输的字节数(byte) ,Bmin是指最小上行带宽值、TBi是指第i次进行带宽限速后的值(kbps)。
[0144]在本发明实施例二中,由于L4某些应用如P2P,有上传数据的能力,此时可能会将有限的上行带宽给占满,而又由于上行是听从于下行的命令来执行针对性限速。若下行L4流量很小触发不了上行进行限速的条件,上行又被P2P给占满,对于高优先级业务是很难跟P2P竞争,难以传输出去,故对高优先级业务难以起到一定优先效果。这时就需要预留上行带宽来使其起到一定作用。
[0145]上行带宽预留并不是一直为高优先级业务预留,而是高优先业务有需要时,才会进行相关预留操作。
[0146]预留上行带宽具体步骤如下:
[0147]无论下行情况如何,只要有L1、L2业务在上行传输,L3、L4会进行部分带宽预留,预留方式如下:
[0148]L3预留部分带宽后,上行带宽值=W - (W+2Sf+l)
[0149]L4预留部分带宽后,上行带宽值=W - (W+2Sf)
[0150]若上行无LI或L2业务,则上行不会进行任何带宽预留,L3、L4可以使用所有上行带宽。
[0151]其中,W是指上行总带宽(kbps)、Sf是指预留因子。
[0152]另外,由于网络游戏数目众多,数据流的特征各异,所以结合流特征数据库,往往不能保证准确识别大多数网络游戏。本方案中未识别的数据流均被划分到低优先级的业务,然而网络游戏对响应延迟要求高,一旦未被识别,则可能由于被划分到低优先级业务而无法获得更好的延迟保障。
[0153]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如R0M/RAM、磁盘、光盘等。
[0154]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种带宽分配的方法,其特征在于,所述方法包括: 结合流特征数据库,识别每条数据流所属的网络应用,所述流特征数据库包括流特征和网络应用的对应关系; 监测当前网络总带宽和各个优先级业务的当前使用带宽,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流; 根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。
2.如权利要求1所述的方法,其特征在于,所述结合流特征数据库,识别每条数据流所属的网络应用具体包括以下步骤中的一个或任意组合: 检测是否通过路由的通用即插即用upnp功能进行端口映射,以识别数据流所属的网络应用是否为P2P应用; 检测传输层端口是否对应了多条连接,以识别所述传输层端口对应的数据流所属的网络应用是否为P2P应用; 检测目的主机的域名,并结合域名系统DNS数据流中的域名和IP地址的对应关系以及流特征数据库中的域名与网络应用的对应关系,识别所述目的主机的IP地址对应的数据流所属的网络应用; 通过深度包检测DPI,对数据流中的数据报文内容进行探测,从而识别数据流所属的网络应用; 通过深度流检测DFI对流量行为进行检测,从而识别数据流所属的网络应用; 结合包括了游戏特征库的流特征数据库,识别游戏流; 对包均长小于预定字节的数据包进行判定,识别游戏流。
3.如权利要求1或2所述的方法,其特征在于,所述监测当前网络总带宽具体为: 通过定时统计当前使用带宽来更新当前网络总带宽值,统计时间间隔为第一时间间隔Tl,重新预测可用带宽时间间隔为第二时间间隔T2,T2远远大于Tl,每隔Tl记录当前使用带宽,将预定次数记录的当前使用带宽进行比较,挑选最大值作为总带宽值。
4.如权利要求1或2所述的方法,其特征在于,所述监测各个优先级业务的当前使用带宽具体包括: 监测每条数据流的使用带宽; 计算各个优先级业务所包含的数据流的使用带宽总和作为各个优先级业务的当前使用带宽。
5.如权利要求1或2所述的方法,其特征在于,所述根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的下行带宽具体包括: 每隔第三时间间隔ta,优先级业务Li尝试从借用了 Li的带宽值的其他优先级业务夺回一份保障的带宽;每隔第四时间间隔tb,Li释放一份不使用的带宽到空闲带宽池;每隔第五时间间隔tc,Li尝试向其他优先级业务借用一份带宽值来满足当前的需要,其中ta≠ tb ≠tc .
6.如权利要求1或2所述的方法,其特征在于,所述根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽具体包括:根据下行的需要对低优先级业务的上行带宽进行限速,并预留上行带宽。
7.—种路由器,其特征在于,所述路由器包括: 识别模块,用于结合流特征数据库,识别每条数据流所属的网络应用,所述流特征数据库包括流特征和网络应用的对应关系; 监测模块,用于监测当前网络总带宽和各个优先级业务的当前使用带宽,所述优先级业务是指数据流按照所属的网络应用的特点所划分的不同的优先级业务,每个优先级业务包括一条或多条数据流; 调节模块,用于根据当前网络总带宽和各个优先级业务的当前使用带宽,分别调节各个优先级业务使用的上行带宽和下行带宽。
8.如权利要求7所述的路由器,其特征在于,所述识别模块具体包括以下模块中的一个或任意组合: 第一识别模块,用于检测是否通过路由的通用即插即用upnp功能进行端口映射,以识别数据流所属的网络应用是否为P2P应用; 第二识别模块,用于检测传输层端口是否对应了多条连接,以识别所述传输层端口对应的数据流所属的网络应用是否为P2P应用; 第三识别模块,用于检测目的主机的域名,并结合域名系统DNS数据流中的域名和IP地址的对应关系以及 流特征数据库中的域名与网络应用的对应关系,识别所述目的主机的IP地址对应的数据流所属的网络应用; 第四识别模块,用于通过深度包检测DPI,对数据流中的数据报文内容进行探测,从而识别数据流所属的网络应用; 第五识别模块,用于通过深度流检测DFI对流量行为进行检测,从而识别数据流所属的网络应用; 第六识别模块,用于结合包括了游戏特征库的流特征数据库,识别游戏流; 第七识别模块,用于对包均长小于预定字节的数据包进行判定,识别游戏流。
9.如权利要求7或8所述的路由器,其特征在于,所述监测模块用于监测当前网络总带宽时,具体包括: 统计模块,用于通过定时统计当前使用带宽来更新当前网络总带宽值,统计时间间隔为第一时间间隔Tl,重新预测可用带宽时间间隔为第二时间间隔T2,T2远远大于Tl ; 记录模块,用于每隔Tl记录当前使用带宽; 比较模块,用于将预定次数记录的当前使用带宽进行比较,挑选最大值作为总带宽值。
10.如权利要求7或8所述的路由器,其特征在于,所述监测模块用于监测各个优先级业务的当前使用带宽时,具体包括: 第一监测模块,用于监测每条数据流的使用带宽; 计算模块,用于计算各个优先级业务所包含的数据流的使用带宽总和作为各个优先级业务的当前使用带宽。
11.如权利要求7或8所述的路由器,其特征在于,所述调节模块用于分别调节各个优先级业务使用的下行带宽时,具体包括: 夺回模块,用于每隔第三时间间隔ta,优先级业务Li尝试从借用了 Li的带宽值的其他优先级业务夺回一份保障的带宽;释放模块,用于每隔第四时间间隔tb,Li释放一份不使用的带宽到空闲带宽池; 借用模块,用于每隔第五时间间隔tc,Li尝试向其他优先级业务借用一份带宽值来满足当前的需要,其中ta≠tb≠tc。
12.如权利要求7或8所述的路由器,其特征在于,所述调节模块用于分别调节各个优先级业务使用的上行带宽时,具体包括: 限速模块,用于根据下行的需要对低优先级业务的上行带宽进行限速: 预留模块,用于预留上行带宽。
【文档编号】H04L12/911GK104038442SQ201410258042
【公开日】2014年9月10日 申请日期:2014年6月11日 优先权日:2014年6月11日
【发明者】欧阳雄奕, 李少章 申请人:普联技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1