板卡及跨板捆绑链路的限速方法
技术领域
本发明涉及通信领域,尤其涉及一种板卡及跨板捆绑链路的限速方法。
背景技术
捆绑链路的作用是增加链路带宽;随着人们对网络越来越广泛的应用,人们对网络稳定的要求也越来越高,捆绑链路也被应用于用户接入侧,用以提升网络的稳定性和日益增加的网络带宽,增强上网用户的体验感。而这样也带来了另一个问题:网络运营商对用户网络带宽的控制,在捆绑链路接口不能精确的实现。
目前捆绑链路存在两种流量策略:逐包模式;逐流模式。在逐包模式下,从捆绑链路经过的数据流均匀的分布在捆绑链路的各成员接口上,这种情况下的限速没有问题;逐流模式时,不同的数据流(五元组区分流)通过不同的成员接口发送,因为用户使用网络的带宽限速值是按用户来购买的,在用户访问网络产生很多数据流的应用场景下,对此用户的限速是概率正确的,但是现实中,很多的用户具有固定的使用习惯,浏览的网页数量不会同时很多,网络下载的数量也不会很多,尤其是对于视频用户影响尤为甚,用户端呈现的效果为捆绑链路带宽减半甚至是减小为三分之一及更严重。
即现有技术缺乏针对各种网络用户进行不同的选路Key的选择,因此不能做到不同用户类型下的精确限速,算法固定导致了满足了某种特定用户则不能满足其他种类的用户,造成无实际可行的跨板捆绑链路下的用户带宽限制。
发明内容
本发明的目的在于,提供一种板卡及跨板捆绑链路的限速方法,用于提高跨板捆绑链路限速的精确度。
本发明提供了一种跨板捆绑链路的限速方法,上述方法预先为捆绑链路配置工作模式,板卡收到数据流时,
根据上述数据流的目的捆绑链路的工作模式,计算上述数据流所属用户的实际限速值;
根据上述工作模式对应的选路策略,提取上述数据流的选路Key,并根据上述选路Key,计算上述用户的选路值;
根据上述选路值,在链路表中查找上述目的捆绑链路的成员接口,将上述用户的实际限速值和上述数据流发送给上述成员接口所在的板卡;
上述成员接口所在的板卡根据收到的实际限速值,对收到的数据流进行限速。
优选地,上述工作模式包括逐流模式、逐地址模式、逐VLAN(Virtual Local Area Network,虚拟局域网)模式、逐子接口模式、逐包模式。
优选地,上述方法在上述目的捆绑链路的工作模式为逐包模式时,通过如下公式计算上述用户的实际限速值S:
S=n*k/m
其中,n表示上述目的捆绑链路的成员接口中,属于当前板卡的成员接口数;k表示上述用户的带宽限速值;m表示上述捆绑链路的成员接口总数。
优选地,上述目的捆绑链路的工作模式为逐流模式、逐地址模式、逐VLAN模式、逐子接口模式时,上述用户的实际限速值为上述用户的带宽限速值。
优选地,上述方法中,
当上述工作模式为逐流模式时,其对应的选路策略为:选择数据流的五元组作为选路Key;
当上述工作模式为逐地址模式时,其对应的选路策略为:对于上行数据流,选择其源地址作为选路Key;对于下行数据流,选择其目的地址作为选路Key;
当上述工作模式为逐VLAN模式时,其对应的选路策略为:对于上行数据流,选择其VLAN信息作为选路Key;对于下行数据流,选择其路由后的出接口的VLAN信息作为选路Key;
当上述工作模式为逐子接口模式时,其对应的选路策略为:对于上行数据流,选择其接收子接口号作为选路Key,对于下行数据流,选择其路由后的出接口的子接口号作为选路Key;
当上述工作模式为逐包模式时,其对应的选路策略为:使用随机数或使用已通过的数据流数。
优选地,上述方法在为捆绑链路增加成员接口时,将上述接口绑入上述捆绑链路,并更新上述链路表;在删除上述捆绑链路的成员接口时,将上述接口从上述捆绑链路中解绑,并更新上述链路表。
优选地,当上述目的捆绑链路的工作模式为逐包模式,且其成员接口数量增加或减少时,上述板卡重新计算上述数据流所属用户的实际限速值。
本发明进一步提供了一种板卡,包括捆绑链路管理模块、限速器、限速管理模块、Key选择器、选路计算器、转发模块,
上述捆绑链路管理模块,用于提供配置捆绑链路工作模式的接口,并保存配置;
上述限速器,用于根据收到的数据流所属用户的实际限速值,对上述数据流进行限速;
上述限速管理模块,用于根据上述数据流的目的捆绑链路的工作模式,计算上述数据流所属用户的实际限速值;
上述Key选择器,用于根据上述数据流的目的捆绑链路的工作模式对应的选路策略,提取上述数据流的选路Key;
上述选路计算器,用于根据上述Key选择器提取的选路Key,计算数据流所属用户的选路值;
上述转发模块,用于根据上述选路计算器得到的选路值,在链路表中查找上述目的捆绑链路的成员接口,将上述限速管理模块计算得到的实际限速值和上述数据流发送给上述接口所在的板卡。
优选地,上述捆绑链路管理模块,用于提供增加捆绑链路的成员接口或删除捆绑链路的成员接口的接口,以及存储上述链路表。
优选地,上述捆绑链路管理模块,用于为捆绑链路增加成员接口时,将上述接口绑入上述捆绑链路;在删除上述捆绑链路的成员接口时,将上述接口从上述捆绑链路中解绑;以及更新上述链路表中相应捆绑链路的成员接口。
本发明通过增强Key选择器对不同类型用户的Key的选取,实现了不同运营场景用户类型的精确带宽限制;可以实现运营商在服务不同用户的情况下,对跨板捆绑链路接入的各种用户的带宽进行精确限速。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明跨板捆绑链路的限速方法优选实施例流程图;
图2是本发明板卡优选实施例的原理框图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明跨板捆绑链路的限速方法优选实施例流程图,本实施例包括以下步骤:
步骤S001:预先为捆绑链路配置工作模式;
捆绑链路的工作模式包括逐流模式、逐地址(IP(InternetProtocol,网络协议)或MAC(Media Access Control,介质访问控制))模式、逐VLAN模式、逐子接口模式、逐包模式。
逐流模式对应的用户粒度为流,即具备相同网络特征(即五元组)的数据流看做一个用户的数据流,相应的限速对象为流;
逐地址模式对应的用户粒度为用户地址(二层地址或三层地址),即具备相同地址的数据流看做一个用户的数据流,相应的限速对象为地址;
逐VLAN模式对应的用户粒度为VLAN,即相同的VLAN内的数据流看做是一个用户的数据流,相应的限速对象为VLAN;
逐子接口模式对应的用户粒度为子接口,即同一个子接口内的数据流看做是一个用户的数据流,相应的限速对象为子接口;
逐包模式不对应特定的用户粒度,所有的用户粒度都可以在此模式下实现精确限速;
对于数据流有保序要求时,捆绑链路可配置为逐流模式、逐地址模式、逐VLAN模式、逐子接口模式中的一种,对于数据流无保序要求时,捆绑链路可配置为逐包模式。
步骤S002:板卡收到数据流;
步骤S003:根据上述数据流的目的捆绑链路的工作模式,计算上述数据流所属用户的实际限速值;
本步骤中,当目的捆绑链路的工作模式为逐包模式时,通过如下公式计算用户的实际限速值S:
S=n*k/m
其中,n表示上述目的捆绑链路的成员接口中,属于当前板卡的成员接口数;k表示上述用户的带宽限速值;m表示上述捆绑链路的成员接口总数。
当目的捆绑链路的工作模式为逐流模式、逐地址模式、逐VLAN模式、逐子接口模式时,用户的实际限速值为上述用户的带宽限速值。
用户的带宽限速值为运营商根据用户开通的业务类型,配置的值。
当目的捆绑链路的工作模式为逐包模式,且其成员接口数量增加或减少时,板卡需要重新计算上述数据流所属用户的实际限速值。
步骤S004:根据上述工作模式及其选路策略,提取上述数据流的选路Key;
当上述工作模式为逐流模式时,其对应的选路策略为:选择数据流的五元组作为选路Key;
当上述工作模式为逐地址模式时,其对应的选路策略为:对于上行数据流,选择其源地址作为选路Key;对于下行数据流,选择其目的地址作为选路Key;
当上述工作模式为逐VLAN模式时,其对应的选路策略为:对于上行数据流,选择其VLAN信息作为选路Key;对于下行数据流,选择其路由后的出接口的VLAN信息作为选路Key;
当上述工作模式为逐子接口模式时,其对应的选路策略为:对于上行数据流,选择其接收子接口号作为选路Key,对于下行数据流,选择其路由后的出接口的子接口号作为选路Key;
当上述工作模式为逐包模式时,其对应的选路策略为:使用随机数或使用已通过的数据流数。
步骤S005:根据上述选路Key,计算上述用户的选路值;
步骤S006:根据上述选路值,在链路表中查找上述目的捆绑链路的成员接口;
链路表中记录了捆绑链路的成员接口;当捆绑链路的成员接口发生改变时,比如为捆绑链路增加成员接口时,将上述接口绑入上述捆绑链路,并更新上述链路表;删除上述捆绑链路的成员接口时,将上述接口从上述捆绑链路中解绑,并更新上述链路表。
步骤S007:将上述用户的实际限速值和上述数据流发送给上述成员接口所在的板卡;
步骤S008:上述成员接口所在的板卡根据收到的实际限速值,对收到的数据流进行限速。
如图2所示,是本发明板卡优选实施例的原理框图,本实施例包括捆绑链路管理模块01、限速器02、限速管理模块03、Key选择器04、选路计算器05、转发模块07,
捆绑链路管理模块01,用于提供配置捆绑链路工作模式及增加捆绑链路的成员接口或删除捆绑链路的成员接口的接口,在为捆绑链路增加成员接口时,将上述接口绑入上述捆绑链路;在删除上述捆绑链路的成员接口时,将上述接口从上述捆绑链路中解绑;更新链路表中相应捆绑链路的成员接口,保存配置;以及保存链路表;
限速器02,用于根据收到的数据流所属用户的实际限速值,对上述数据流进行限速;
限速管理模块03,用于根据上述数据流的目的捆绑链路的工作模式,计算上述数据流所属用户的实际限速值;
Key选择器04,用于根据上述数据流的目的捆绑链路的工作模式及上述工作模式对应的选路策略,提取上述数据流的选路Key,并发送给选路计算器05;
选路计算器05,用于根据选路Key,计算数据流所属用户的选路值;
转发模块06,用于根据选路计算器05得到的选路值,在上述链路表中查找上述目的捆绑链路的成员接口,将限速管理模块03计算得到的实际限速值和上述数据流发送给上述成员接口所在的板卡。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。