一种报文转发方法及装置的制造方法
【专利摘要】本发明提供一种报文转发方法及装置,所述方法应用于网关,所述方法包括:收到主机发送的报文时,查找所述主机的保证带宽;为所述主机分配令牌桶,所述令牌桶的容量小于等于所述主机的保证带宽;根据所述令牌桶对所述报文进行转发。因此实现对主机的带宽保证,从而提高了令牌桶的实用性。
【专利说明】
一种报文转发方法及装置
技术领域
[0001]本发明涉及网络技术领域,尤其涉及一种报文转发方法及装置。
【背景技术】
[0002]随着网技术的发展和网络应用的普及,人们对网络的要求也相应提高。很多用户为了享受更流畅的网络环境,会支付相应的金额从运营商那里获得保证带宽,来提高自己的网络质量。
[0003]令牌桶算法是速率限制中最常使用的一种算法。令牌桶算法通常用来控制发送到网络上的流量大小,并允许突发数据的发送。令牌桶中的每一个令牌都相当于一个字节。如果令牌桶中的令牌数大于等于流量字节数时,则允许发送该流量;反之,则不允许发送流量。目前,运营商能够在出口网关上面利用令牌桶进行流量限制,但是无法通过令牌桶实现对用户的带宽保证,因此导致令牌桶的实用性较差。
【发明内容】
[0004]有鉴于此,本发明提供一种报文转发方法及装置,来解决无法通过令牌桶实现用户的带宽报文的问题。
[0005]具体地,本发明是通过如下技术方案实现的:
[0006]—种报文转发方法,所述方法应用于网关,所述方法包括:
[0007]收到主机发送的报文时,查找所述主机的保证带宽;
[0008]为所述主机分配令牌桶,所述令牌桶的容量小于等于所述主机的保证带宽;
[0009]根据所述令牌桶对所述报文进行转发。
[0010]进一步的,所述方法还包括:
[0011]按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整。
[0012]进一步的,所述按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整,包括:
[0013]按照预设时间周期记录所述主机使用所述令牌桶的令牌数;
[0014]当令牌数逐渐增大时,增加所述令牌桶的容量,并保证所述令牌桶的容量小于等于所述主机的保证带宽;
[0015]当令牌数逐渐减小时,减少所述令牌桶的容量。
[0016]进一步的,所述方法还包括:
[0017]监测所述主机的会话状态;
[0018]当所述主机的所有会话均结束时,删除所述令牌桶。
[0019]进一步的,所述方法还包括:
[0020]未查找到所述主机的保证带宽时,为所述主机分配令牌桶,所述令牌桶的容量小于等于剩余带宽,所述剩余带宽等于总带宽减去所有保证带宽。
[0021]基于相同的构思,本发明还提供一种报文转发装置,所述装置应用于网关,所述装置包括:
[0022]查找单元,用于在收到主机发送的报文时,查找所述主机的保证带宽;
[0023]第一分配单元,用于为所述主机分配令牌桶,所述令牌桶的容量小于等于所述主机的保证带宽;
[0024]转发单元,用于根据所述令牌桶对所述报文进行转发。
[0025]进一步的,所述装置还包括:
[0026]调整单元,用于按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整。
[0027]进一步的,所述调整单元,具体用于:
[0028]按照预设时间周期记录所述主机使用所述令牌桶的令牌数;
[0029]当令牌数逐渐增大时,增加所述令牌桶的容量,并保证所述令牌桶的容量小于等于所述主机的保证带宽;
[0030]当令牌数逐渐减小时,减少所述令牌桶的容量。
[0031]进一步的,所述装置还包括:
[0032]删除单元,用于监测所述主机的会话状态,当所述主机的所有会话均结束时,删除所述令牌桶。
[0033]进一步的,所述装置还包括:
[0034]第二分配单元,用于在未查找到所述主机的保证带宽时,为所述主机分配令牌桶,所述令牌桶的容量小于等于剩余带宽,所述剩余带宽等于总带宽减去所有保证带宽。
[0035]由此可见,本发明可以根据主机的保证带宽为该主机分配相应容量的令牌桶,并根据该令牌桶对该主机发送的报文进行转发,因此实现对主机的带宽保证,从而提高了令牌桶的实用性。
【附图说明】
[0036]图1是本发明一种示例性实施方式中的组网架构图;
[0037]图2是本发明一种示例性实施方式中的一种报文转发方法的处理流程图;
[0038]图3是本发明一种示例性实施方式中的另一种报文转发方法的处理流程图;
[0039]图4是本发明一种示例性实施方式中报文转发装置所在的网关的硬件结构图;
[0040]图5是本发明一种示例性实施方式中的一种报文转发装置的逻辑结构图。
【具体实施方式】
[0041]请参见图1,是本发明一种示例性实施方式中的组网架构图,其中运营商的出口网关设置在网络边缘,主机A和主机B均连接该网关,并可以通过该网关访问外网。假设主机A的用户从该运营商处购买了 50M的保证带宽,因此该运营商应该保证主机A在使用网络时的带宽流量。而主机B的用户未购买保证带宽,因此运营商无需对主机B的带宽流量进行保证。该网关上配置有令牌桶机制,运营商可以通过该网关的令牌桶机制对发送的报文进行限速。由于现有技术中每个主机被分配的令牌桶配置均相同,因此该网关无法通过令牌桶在限速的同时对主机A进行带宽保证,导致令牌桶的实用性较差。
[0042]为了解决上述问题,本发明可以根据主机的保证带宽为该主机分配相应容量的令牌桶,并根据该令牌桶对该主机发送的报文进行转发,因此实现对主机的带宽保证,从而提高了令牌桶的实用性。
[0043]请参考图2,是本发明一种示例性实施方式中的一种报文转发方法的处理流程图,该方法应用于网关,所述方法包括:
[0044]步骤201、收到主机发送的报文时,查找所述主机的保证带宽;
[0045]在本实施例中,当网关收到主机发送的报文时,可以根据该报文获取该主机的身份标识,例如IP地址,并在运营商的保证用户的记录中查找该主机对应的保证带宽。
[0046]步骤202、为所述主机分配令牌桶,所述令牌桶的容量小于等于所述主机的保证带宽;
[0047]根据主机的保证带宽为该主机分配令牌桶,其中该令牌桶的容量应小于等于该主机的保证带宽。在可选的实施例中,考虑到用户刚开始发送的报文通常不会占用太多带宽,因此可以将令牌桶的容量设置成该主机保证带宽的一半,以使用户可以在刚开始发送报文时获取可用的带宽流量,并且不因占用大量带宽而造成网络资源的浪费。
[0048]步骤203、根据所述令牌桶对所述报文进行转发。
[0049]为该主机分配好相应的令牌桶后,网关可以根据该令牌桶的容量对该主机发送的报文进行转发。由于令牌桶一般会通过回填速率和容量来控制报文的转发速率,当回填速率相同时,容量大的令牌桶其转发的速率就高,因此可以保证该主机的报文发送速率与其保证带宽成正比。
[0050]由此可见,本发明可以根据主机的保证带宽为该主机分配相应容量的令牌桶,并根据该令牌桶对该主机发送的报文进行转发,因此实现对主机的带宽保证,从而提高了令牌桶的实用性。
[0051]在本发明可选的实施例中,网关可以按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整。具体来说:网关可以按照预设时间周期记录所述主机使用所述令牌桶的令牌数,例如设置一个I秒的填桶定时器,当令牌桶初始化后开启定时器,来记录每一秒该主机使用该令牌桶的令牌数。
[0052]当通过记录发现令牌数逐渐增大时,说明该主机发送的报文数量逐渐增多,进而说明其需要更多的带宽,因此网关可以增加所述主机的令牌桶的容量上限,并保证所述令牌桶的容量小于等于所述主机的保证带宽。在优选的实施例中,网关可以每个周期以保证带宽的三十二分之一来增加该令牌桶的容量上限,直到增加到令牌桶的容量上限与保证带宽相同为止。至此,网关可以根据用户的带宽实际使用需求来逐步增加令牌桶的容量,从而保证报文的转发效率不受影响。容量的增加量可以视实际情况而定,此处不做限制。
[0053]相反的,当发现令牌数逐渐减小时,说明该主机发送的报文数量逐渐减少,进而说明其需要的带宽逐渐变少,因此网关可以减少所述令牌桶的容量上限,具体减少量可以与先前的增加量相同。因此可以使被保证的用户主机在带宽使用效率较低的时候,减少该用户的带宽占用,从而节省网络带宽资源。
[0054]在本发明可选的实施例中,网关还可以实时监测所述主机的会话状态。当该主机的所有会话均结束时,说明该主机无需使用带宽,因此可以将其对应的令牌桶删除。从而可以进一步节省网络带宽资源。
[0055]另外,本发明对于未承诺保证带宽的主机,或者是未被查找到保证带宽的主机,也会分配相应的令牌桶。其令牌桶的容量一般小于等于剩余带宽,所谓的剩余带宽就是该网关可用的总带宽减去所有已知的保证带宽的结果。对于未承诺保证带宽的用户主机发送的报文,本发明的网关可以根据其对应的令牌桶进行报文转发,并且保证其不会对保证带宽产生影响。
[0056]为使本发明的目的、技术方案及优点更加清楚明白,以下基于图1的组网架构,对本发明所述方案作进一步地详细说明。
[0057]假设网关的可用带宽为150M,主机A的保证带宽为100M,主机B没有保证带宽,当主机A和主机B同时通过该网关发送报文时,该网关的处理过程如图3所示,其中包括:
[0058]步骤301、获取主机的保证带宽;
[0059]网关接收到主机A和主机B发送的报文后,分别获取报文中的主机A对应的IP地址IPA,以及主机B对应的IP地址IPB。通过本地存储的保证带宽表查找IPA、IPB分别对应的保证带宽。根据查找可知IPA的保证带宽为100M,IPB未配置保证带宽。
[0060]步骤302、根据保证带宽为该主机分配令牌桶;
[0061]网关根据查找到的保证带宽分别为主机A和主机B分配令牌桶。其中,主机A的令牌桶容量为主机A的保证带宽的一半,即50M ;主机B的令牌桶容量为总带宽减去主机A保证带宽的剩余带宽,即150-100 = 50M。另外,网关可为主机A的令牌桶设置一个I秒定时器,用来记录主机A使用令牌的数量变化情况。
[0062]步骤303、根据令牌桶转发报文;
[0063]网关根据主机A和主机B的令牌桶分别转发主机A和主机B发送的报文。转发报文的同时,网关将主机A的I秒定时器开启。
[0064]步骤304、记录I秒内主机使用的令牌数;
[0065]定时器开启后,记录主机A每I秒内令牌桶消耗的令牌数。
[0066]步骤305、根据令牌数调整主机的令牌桶容量,转步骤303。
[0067]当令牌数逐渐增大时,主机A的令牌桶容量S = N*t+50 ( 100。其中,50为该令牌桶的初始容量大小,t为时间,每过一秒t增加1,N为主机A保证带宽的三十二分之一。通过上述公式,主机A的令牌桶会以初始容量50M为基准,每隔一秒容量增加(100/32)M,直到等于其保证带宽100M。之后,可根据容量调整后的令牌桶进行转发报文。
[0068]由此可见,本发明可以根据主机的保证带宽为该主机分配相应容量的令牌桶,并根据该令牌桶对该主机发送的报文进行转发,因此实现对主机的带宽保证,从而提高了令牌桶的实用性。
[0069]基于相同的构思,本发明还提供一种报文转发装置,所述装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,本发明的报文转发装置作为一个逻辑意义上的装置,是通过其所在网关的CPU读取存储器中对应的计算机程序指令后运行而成。
[0070]请参考图4及图5,是本发明一种示例性实施方式中的一种报文转发装置500,所述装置应用于网关,所述装置基本运行环境包括CPU,存储器以及其他硬件,从逻辑层面上来看,所述装置500包括:
[0071]查找单元501,用于在收到主机发送的报文时,查找所述主机的保证带宽;
[0072]第一分配单元502,用于为所述主机分配令牌桶,所述令牌桶的容量小于所述主机的保证带宽;
[0073]转发单元503,用于根据所述令牌桶对所述报文进行转发。
[0074]可选的,所述装置还包括:
[0075]调整单元504,用于按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整。
[0076]可选的,所述调整单元504,具体用于:
[0077]按照预设时间周期记录所述主机使用所述令牌桶的令牌数;
[0078]当令牌数逐渐增大时,增加所述令牌桶的容量,并保证所述令牌桶的容量小于等于所述主机的保证带宽;
[0079]当令牌数逐渐减小时,减少所述令牌桶的容量。
[0080]可选的,所述装置还包括:
[0081]删除单元505,用于监测所述主机的会话状态,当所述主机的所有会话均结束时,删除所述令牌桶。
[0082]可选的,所述装置还包括:
[0083]第二分配单元506,用于在未查找到所述主机的保证带宽时,为所述主机分配令牌桶,所述令牌桶的容量小于等于剩余带宽,所述剩余带宽等于总带宽减去所有保证带宽。
[0084]综上所述,本发明可以根据主机的保证带宽为该主机分配相应容量的令牌桶,并根据该令牌桶对该主机发送的报文进行转发,因此实现对主机的带宽保证,从而提高了令牌桶的实用性。
[0085]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【主权项】
1.一种报文转发方法,其特征在于,所述方法应用于网关,所述方法包括: 收到主机发送的报文时,查找所述主机的保证带宽; 为所述主机分配令牌桶,所述令牌桶的容量小于等于所述主机的保证带宽; 根据所述令牌桶对所述报文进行转发。2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整。3.根据权利要求2所述的方法,其特征在于,所述按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整,包括: 按照预设时间周期记录所述主机使用所述令牌桶的令牌数; 当令牌数逐渐增大时,增加所述令牌桶的容量,并保证所述令牌桶的容量小于等于所述主机的保证带宽; 当令牌数逐渐减小时,减少所述令牌桶的容量。4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 监测所述主机的会话状态; 当所述主机的所有会话均结束时,删除所述令牌桶。5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 未查找到所述主机的保证带宽时,为所述主机分配令牌桶,所述令牌桶的容量小于等于剩余带宽,所述剩余带宽等于总带宽减去所有保证带宽。6.一种报文转发装置,其特征在于,所述装置应用于网关,所述装置包括: 查找单元,用于在收到主机发送的报文时,查找所述主机的保证带宽; 第一分配单元,用于为所述主机分配令牌桶,所述令牌桶的容量小于等于所述主机的保证带宽; 转发单元,用于根据所述令牌桶对所述报文进行转发。7.根据权利要求6所述的装置,其特征在于,所述装置还包括: 调整单元,用于按照预设时间周期记录所述主机使用所述令牌桶的令牌数,根据所述令牌数对所述令牌桶的容量进行调整。8.根据权利要求7所述的装置,其特征在于,所述调整单元,具体用于: 按照预设时间周期记录所述主机使用所述令牌桶的令牌数; 当令牌数逐渐增大时,增加所述令牌桶的容量,并保证所述令牌桶的容量小于等于所述主机的保证带宽; 当令牌数逐渐减小时,减少所述令牌桶的容量。9.根据权利要求6所述的装置,其特征在于,所述装置还包括: 删除单元,用于监测所述主机的会话状态,当所述主机的所有会话均结束时,删除所述令牌桶。10.根据权利要求6所述的装置,其特征在于,所述装置还包括: 第二分配单元,用于在未查找到所述主机的保证带宽时,为所述主机分配令牌桶,所述令牌桶的容量小于等于剩余带宽,所述剩余带宽等于总带宽减去所有保证带宽。
【文档编号】H04L12/819GK105991467SQ201510178745
【公开日】2016年10月5日
【申请日】2015年4月15日
【发明人】张晓东
【申请人】杭州迪普科技有限公司