网络流量控制方法、装置、系统及服务器的制作方法

文档序号:7735862阅读:157来源:国知局
专利名称:网络流量控制方法、装置、系统及服务器的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种网络流量控制方法、装置、系统及服务器。
背景技术
以太网是当今现有局域网采用的最通用的通信协议标准。不管是从需求面还是从供应面来看,整体网络都朝着宽带的脚步迈进,这给予以太网一个很好的发展空间。从技术面看,二十年来,以太网带宽由十兆、百兆、千兆,一直发展到2002年的万兆,现今甚至四万兆、十万兆都已经处于研究讨论阶段,这使得以太网技术有了很好的扩展性;从应用面看,以太网不仅仅只局限在局域网的应用,万兆以太网更进一步将以太网延伸到广域网的应用,再配合电气和电子工程师协会institute of Electrical and Electronics Engineers,以下简称IEEE)于2000年底成立的第一英里以太网(Ethernet in the First Mile,以下简称EFM)工作组试图发展的新型宽带接入技术,和目前已经流行的以太网小区接入、大楼接入,使得以太网统一了下层网络。通过以太网连接着各种网络节点,其中包括各种用户设备和服务器设备。经过多年的发展,服务器技术有了大幅度提高,然而,其发展仍然赶不上用户设备数量的爆炸式增加和网络带宽的指数提高。当大量用户同时访问同一服务器时,服务器的服务能力往往不能满足用户的需求。以域名服务系统(Domain Name System,以下简称DNS)来说,它负责为hternet上的主机分配域名地址和IP地址。用户使用域名地址,该系统就会自动把域名地址转为IP地址。执行域名服务的服务器称之为DNS服务器,通过DNS服务器来应答域名服务的查询。一个典型的DNS服务器能够支持的并发域名解析请求数往往为每秒十几万到几十万,而与之相连的千兆以太网能够传送的请求数为每秒百万量级。因此,在现有技术中,当大量用户同时访问同一服务器时,由于服务器的服务能力有限,服务器可能由于过载而出现服务能力下降甚至崩溃的现象。

发明内容
本发明提供一种网络流量控制方法、装置、系统及服务器,用以在大量用户同时访问同一服务器时,避免服务器过载而造成服务能力下降甚至崩溃。为实现上述目的,本发明提供一种网络流量控制方法,包括接收以太网数据包,生成与所述以太网数据包对应的随机数;根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;所述水线值根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定,所述水线值的取值范围是所述随机数的取值范围的子集。为实现上述目的,本发明还提供了一种网络流量控制装置,包括丢包仲裁模块,用于接收以太网数据包,生成与所述以太网数据包对应的随机数,根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;水线值生成模块,用于根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定所述水线值,所述水线值的取值范围是所述随机数的取值范围的子集。为实现上述目的,本发明还提供了一种网络流量控制系统,包括相互连接的服务器和如上所述的网络流量控制装置,所述服务器包括业务处理装置。为实现上述目的,本发明还提供了一种服务器,包括相互连接的业务处理装置和如上所述的以太网流量闭环控制装置。本发明提供的一种以太网流量闭环控制方法、装置、系统及服务器,通过将输出给服务器的业务处理装置的以太网数据包的输出流量和根据业务处理装置的处理能力设定的目标流量的差值反馈回来控制丢弃以太网数据包的比率,形成一个闭环控制,使得在用户发送的大量请求中,能够按照一定的比率进行随机丢弃,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明提供的一种网络流量控制方法实施例一的流程图。图2为本发明提供的一种网络流量控制方法的实施例二中确定水线值的流程图。图3为本发明提供的一种网络流量控制装置实施例一的结构示意图。图4为本发明提供的一种网络流量控制装置实施例二的结构示意图。图5为本发明提供的一种网络流量控制系统实施例的结构示意图。图6为本发明所提供的一种服务器实施例的结构示意图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明提供的一种网络流量控制方法实施例一的流程图,如图1所示,本实施例包括以下步骤步骤100 接收以太网数据包,生成与所述以太网数据包对应的随机数;这里的以太网数据包可以是用户发送给内容服务器、应用服务器等服务器的请求,如发给DNS服务器的域名解析请求。在生成随机数时可以设定一个取值范围,使生成的随机数在这个范围内。步骤101 根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;其中,所述水线值根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定,所述水线值的取值范围是所述随机数的取值范围的子集。所述目标流量通常根据所述业务处理装置的处理能力预先设定,也可以根据服务器的负载情况随时调整。假设水线值的取值范围为
,则随机数的取值范围可以为
,也可以是
等。以随机数的取值范围为W,10]为例,由于水线值(设为A)是根据输出流量和目标流量的差值确定的,A会随差值的变化而在W,10]区间内变化,而随机数在W,10]范围内任意值的取值概率是均等的,这样,当根据所述随机数与水线值确定是否丢弃所述以太网数据包时,随机数出现在
和[A,10]两个区间内的概率是随A变化的,对应地丢包的比例也是随A变化的,这样就是实现了将输出给服务器的业务处理装置的以太网数据包的输出流量和根据业务处理装置的处理能力设定的目标流量的差值反馈回来控制丢弃以太网数据包的比率,形成一个闭环控制。为了根据服务器的负载情况动态调整数据包的丢弃比例,更进一步地,本实施例中还可以周期性地统计输出给所述业务处理装置的以太网数据包的输出流量,对应地根据周期性统计的所述以太网数据包的输出流量周期性地更新所述水线值。这个周期可以根据想要达到的反馈控制的灵敏度来设定,通常取值在w.01,l]秒范围内。本发明实施例通过输出给服务器的业务处理装置的以太网数据包的输出流量与目标流量的差值确定水线值,根据水线值和接收到的以太网数据包对应的随机数来确定是否丢弃所述数据包,所述水线值的取值范围是所述随机数的取值范围的子集,使得在用户发送的大量请求中,根据反馈回来的输出流量与目标流量的差值确定的比率进行随机丢弃,形成一个闭环控制,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。这里的水线值通常是通过对以太网数据包的输出流量与目标流量的差值进行一定的数学运算来得到。这里可进行的数据运算的方式有很多种,比如积分运算,积分+直通、双重积分等低通运算,只能能够使得水线值随所述差值的变化按照一定的关系在其取值范围中变化即可。其中积分运算较为简单,在工程上易实现。在本发明提供的一种网络流量控制方法实施例一的基础上,对其中确定水线值的步骤进行细化,以积分运算为例,对通过积分运算确定水线值的过程进行详细说明,形成网络流量控制方法的实施例二。本领域技术人员根据本发明公开的内容和公知常识,可以推导出通过其他运算方式确定水线值的过程,因此在本发明实施例中不再对通过其他运算方式确定水线值的具体过程做详细说明。图2为本发明提供的一种网络流量控制方法的实施例二中确定水线值的流程图。 假设随机数和水线值的取值范围均为[K,M],K、M为自然数,积分运算的结果为A,周期性统计的以太网数据包的输出流量为R,目标流量为R0,R’为输出流量检测的中间结果,T为统计以太网数据包输出流量、更新水线值的周期,假设T是一个自动增加的定时计数,不失一般性,进一步假设R和RO的基本单位为1个数据包数/T秒,从而每输出一个数据包时,R’ 的值应该加1。如图2所示,包括以下步骤步骤200 初始化A = K,R = R,= 0, T = 0,给定目标流量RO ;应用中,A的初始值可以为[K,M]范围内的任意值,本实施例以初始化A = K为例进行说明;步骤201 检测到一个数据包输出时,令R,= R,+1 ;步骤202 判断定时T是否超时;若是则执行步骤203,否则返回步骤201 ;步骤203 令 R = R,,输出 R ;令 R,=0,定时 T = O;步骤204 接收R,进行减法运算Diff = R-R0,输出Diff ;步骤205 接收 Diff,令 A = A+Diff,A = max (K,min (Α, Μ)),输出 A 为水线值;返回步骤201。由于积分运算与加法运算的等价性,得到积分结果为A = A+Diff,由于水线值的范围为[K, M],若A超出则将其截至该范围,相应的数学运算为A = max(K,min(A, M));即若A小于K则令A = K,若A大于M则令A = M,若A在[K,M]范围内则不变,将A作为水线值。在通过上述步骤确定了水线值后,本实施例中还包括接收以太网数据包,生成与所述以太网数据包对应的随机数;根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置。具体地,若所述随机数小于所述水线值, 则丢弃所述以太网数据包,否则确定不丢弃所述以太网数据包。由于在物理实现上加法和减法运算在逻辑上是可以互换的,只要整个闭环反馈环路能够达成流量控制的目的即可。比如,在具体实现时,步骤205中的积分运算也可以使用 A = A-Diff,较优地,A的初始值设为M,对应地,所述根据所述随机数与水线值,确定是否丢弃所述以太网数据包,具体为若随机数大于水线值则丢弃当前包,否则确定不丢弃。在实际应用中,T的典型值为W.01,l]秒。M的取值范围比较灵活,一般是RO的 1/5 1/10,RO的取值取决于服务器的处理能力。为工程实现方便,K通常取为0,当然根据服务器的过载承受能力,K值也可以适当的提高。以DNS服务器为例,若DNS服务器允许的最大域名请求量为每秒15万次,而统计周期T为0. 01秒,则RO = 0. 01*150000 = 1500,M 可以取为200。基于本实施例,设K = 0,M = 200,初始化A = 0,每个周期用户发出的请求数均为1520,第一个周期T由于水线值为0,随机数小于该水线值的概率为0,因此不丢包, 第一个周期后统计得到的R = 1520,则DifT = 20,积分运算后A = 0+20 = 20,而随机数的取值范围为W,200],这样第二个周期的丢包比例大约为10%,那么第二个周期输出给业务处理装置的数据包的输出流量R = 1520*(100% -10% ) = 1368,则Diff =-132,积分运算后A = 20-132 = -112,截止范围后A = 0,这样第三个周期的丢包比例大约为0%, 那么第三个周期输出给业务处理装置的数据包的输出流量R = 1520,Diff = 20,积分运算后A = 0+20 = 20,这样第四个周期的丢包比例大约为10%,那么第四个周期输出给业务处理装置的数据包的输出流量R= 1368。截止到第四个周期,0.04秒的时间内,输出给业务处理装置的数据包总共有4256,按这样的趋势,每秒服务器要处理的请求为4256/0. 04 = 106400次< 150000次。由于网络中用户的情况是随时变化的,每个周期用户发出的请求数也不是一个恒定的数值,对于这种动态变化的情况,本发明实施例所提供的动态反馈机制会有更好的效果。本发明实施例中动态闭环控制的原理是这样的假定输入端的流量为Ri,输出端的流量为R,目标流量为R0,M为积分结果取值范围的最大值,K为积分结果取值范围的最小值,得如下方程 Ri = (M-K) *R/ (Μ- f (R-RO))。
定性分析环路控制流程如下1)假定Ri突然增大,由于环路响应需要一定时间则R增大,R增大将导致反馈项 / (R-RO)的增大,在负反馈的作用下将抑制R的增大,直至环路平衡。2)假定Ri突然减小,由于环路响应需要一定时间则R减小,R减小将导致反馈项 / (R-RO)的减小,在负反馈的作用下将抑制R的减小,直至环路平衡。3)在环路平衡时,反馈项f (R-RO)将保持在一个相对固定的值,R的值与RO大致相同但保持微小波动。通过这样的环路控制,使得流量控制精度高,收敛速度快,在实际系统中表现出良好的性能。本发明实施例通过输出给服务器的业务处理装置的以太网数据包的输出流量与目标流量的差值确定水线值,根据水线值和接收到的以太网数据包对应的随机数来确定是否丢弃所述数据包,所述水线值的取值范围是所述随机数的取值范围的子集,使得在用户发送的大量请求中,根据反馈回来的输出流量与目标流量的差值确定的比率进行随机丢弃,形成一个闭环控制,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。图3为本发明提供的一种网络流量控制装置实施例一的结构示意图。如图所示, 该装置包括丢包仲裁模块30,用于接收以太网数据包,生成与所述以太网数据包对应的随机数,根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;水线值生成模块31,用于根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定所述水线值,所述水线值的取值范围是所述随机数的取值范围的子集。为了根据服务器的负载情况动态调整数据包的丢弃比例,水线值生成模块31具体用于,周期性地统计所述已输出给所述业务处理装置的以太网数据包的输出流量,并根据所述周期性统计的输出流量周期性地更新所述水线值。本发明实施例中模块的具体实现可以参照对应的方法实施例。本发明实施例通过输出给服务器的业务处理装置的以太网数据包的输出流量与目标流量的差值确定水线值, 根据水线值和接收到的以太网数据包对应的随机数来确定是否丢弃所述数据包,所述水线值的取值范围是所述随机数的取值范围的子集,使得在用户发送的大量请求中,根据反馈回来的输出流量与目标流量的差值确定的比率进行随机丢弃,形成一个闭环控制,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。在本发明提供的一种网络流量控制装置的实施例一的基础上,本发明还提供了一种网络流量控制装置实施例二,如图4所示,水线值生成模块31具体包括流量检测单元311,用于检测输出给所述业务处理装置的以太网数据包的输出流量;减法器312,用于将所述输出流量减去目标流量得到差值;积分器313,用于将所述差值进行积分运算,将积分运算的结果作为所述水线值。
进一步地,丢包仲裁模块30具体用于设定所述随机数的范围为[K,M],其中K、M 为自然数;积分器313具体用于设定所述水线值的范围为[K,M],若所述积分运算的结果小于K,则将所述水线值取值为K,若所述积分运算的结果大于M,则将所述水线值取值为M。丢包仲裁模块30具体用于当所述随机数小于所述水线值时,确定丢弃所述以太网数据包,否则确定不丢弃所述以太网数据包。本发明实施例中模块的具体实现可以参照对应的方法实施例。本发明实施例通过输出给服务器的业务处理装置的以太网数据包的输出流量与目标流量的差值确定水线值, 根据水线值和接收到的以太网数据包对应的随机数来确定是否丢弃所述数据包,所述水线值的取值范围是所述随机数的取值范围的子集,使得在用户发送的大量请求中,根据反馈回来的输出流量与目标流量的差值确定的比率进行随机丢弃,形成一个闭环控制,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。本发明所提供的一种网络流量控制装置可以作为一个独立的设备设置在需要流量控制的服务器与用户之间,也可以作为一个模块设置在需要流量控制的服务器内部,对发给服务器的请求进行前置处理后再发给业务处理装置。图5是本发明提供的一种网络流量控制系统实施例的结构示意图,如图5所示, 该系统包括相互连接的服务器50和网络流量控制装置51,服务器50包括业务处理装置 501,网络流量控制装置51为如本发明提供的一种网络流量控制装置实施例一或二所述的装置。具体地,服务器50可以与网络流量控制装置51中的丢包仲裁模块、流量检测单元连接。图6为本发明提供的一种服务器实施例的结构示意图,如图6所示,该服务器包括业务处理装置60和网络流量控制装置61,网络流量控制装置61为如本发明提供的一种网络流量控制装置实施例一或二所述的装置。具体地,业务处理装置60可以与网络流量控制装置61中的丢包仲裁模块、流量检测单元连接。在本发明提供的服务器中,虽然业务处理装置和网络流量控制装置共享一个平台,但由于网络流量处理装置所需资源相对业务处理装置所需资源小得多,因此仍然可以起到保护服务器不过载的作用。本发明实施例通过输出给服务器的业务处理装置的以太网数据包的输出流量与目标流量的差值确定水线值,根据水线值和接收到的以太网数据包对应的随机数来确定是否丢弃所述数据包,所述水线值的取值范围是所述随机数的取值范围的子集,使得在用户发送的大量请求中,根据反馈回来的输出流量与目标流量的差值确定的比率进行随机丢弃,形成一个闭环控制,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种网络流量控制方法,其特征在于,包括接收以太网数据包,生成与所述以太网数据包对应的随机数; 根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;所述水线值根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定,所述水线值的取值范围是所述随机数的取值范围的子集。
2.根据权利要求1所述的方法,其特征在于,所述水线值根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定,包括对所述差值进行积分运算,将积分运算的结果作为所述水线值。
3.根据权利要求2所述的方法,其特征在于,所述接收以太网数据包,生成与所述以太网数据包对应的一随机数之前,还包括设定所述随机数和所述水线值的取值范围均初始化为[K,M],其中K、M为自然数; 对所述差值进行积分运算,将积分运算的结果作为所述水线值,包括 若所述积分运算的结果小于K,则将所述水线值取值为K,若所述积分运算的结果大于 M,则将所述水线值取值为M。
4.根据权利要求3所述的方法,其特征在于,所述根据所述随机数与水线值,确定是否丢弃所述数据包,具体包括若所述随机数小于所述水线值,则丢弃所述以太网数据包,否则确定不丢弃所述以太网数据包。
5.根据权利要求3所述的方法,其特征在于,M为所述目标流量的1/10到1/5。
6.根据权利要求1 5任一所述的方法,其特征在于,所述已输出给所述业务处理装置的以太网数据包的输出流量通过周期性地统计获取,所述水线值根据所述周期性统计获取的输出流量周期更新。
7.根据权利要求1 5任一所述的方法,其特征在于,所述目标流量根据所述业务处理装置的处理能力预先设定。
8.一种网络流量控制装置,其特征在于,包括丢包仲裁模块,用于接收以太网数据包,生成与所述以太网数据包对应的随机数,根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;水线值生成模块,用于根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定所述水线值,所述水线值的取值范围是所述随机数的取值范围的子集。
9.根据权利要求8所述的装置,其特征在于,所述水线值生成模块具体包括 流量检测单元,用于检测输出给所述业务处理装置的以太网数据包的输出流量; 减法器,用于将所述输出流量减去目标流量得到差值;积分器,用于将所述差值进行积分运算,将积分运算的结果作为所述水线值。
10.根据权利要求9所述的装置,其特征在于,所述丢包仲裁模块具体用于将所述随机数的取值范围设定为[K,M],其中K、M为自然数;所述积分器具体用于将所述水线值的取值范围设定为[K,M],其中K、M为自然数,若所述积分运算的结果小于K,则将所述水线值取值为K,若所述积分运算的结果大于M,则将所述水线值取值为M。
11.根据权利要求10所述的装置,其特征在于,所述丢包仲裁模块具体用于当所述随机数小于所述水线值时,确定丢弃所述以太网数据包,否则确定不丢弃所述以太网数据包。
12.根据权利要求8 11任一所述的装置,其特征在于,所述水线值生成模块具体用于,周期性地统计所述已输出给所述业务处理装置的以太网数据包的输出流量,并根据所述周期性统计的输出流量周期性地更新所述水线值。
13.根据权利要求8 11任一所述的装置,其特征在于,所述目标流量根据所述业务处理装置的处理能力预先设定。
14.一种网络流量控制系统,其特征在于,包括相互连接的服务器和如权利要求8 13 任一所述的网络流量控制装置,所述服务器包括业务处理装置。
15.一种服务器,其特征在于,包括相互连接的业务处理装置和如权利要求8 13任一所述的网络流量控制装置。
全文摘要
本发明提供一种网络流量控制方法、装置、系统及服务器。该方法包括接收以太网数据包,生成与所述以太网数据包对应的随机数;根据所述随机数与水线值,确定是否丢弃所述以太网数据包,若确定不丢弃,则将所述以太网数据包输出给服务器的业务处理装置;所述水线值根据已输出给所述业务处理装置的以太网数据包的输出流量与目标流量的差值确定,所述水线值的取值范围是所述随机数的取值范围的子集。本发明通过闭环控制,使得在用户发送的大量请求中,能够按照一定的比率进行随机丢弃,避免了服务器可能由于过载而出现服务能力下降甚至崩溃的现象。
文档编号H04L12/56GK102316025SQ201110212570
公开日2012年1月11日 申请日期2011年7月27日 优先权日2011年7月27日
发明者孙云刚, 孙才, 陈曦 申请人:中国科学院计算机网络信息中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1