发明内容
本发明实施例提供一种带宽检测方法和设备,以准确检测出发送端网络设备与接收端网络设备之间路径的实际带宽值。
为了达到上述目的,本发明实施例提供一种带宽检测方法,应用于包括发送端网络设备和接收端网络设备的网络中,该方法包括以下步骤:
所述发送端网络设备在利用预配置的队列调度机制向接收端网络设备发送报文时,判断业务报文队列中是否有业务报文;如果是,则将业务报文队列中的业务报文添加到硬件队列;如果否,则将测试报文队列中的测试报文添加到硬件队列;
所述发送端网络设备将硬件队列中的业务报文和/或测试报文发送给所述接收端网络设备,由所述接收端网络设备利用收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值。
所述发送端网络设备上配置有第一级队列调度机制、第二级队列调度机制;所述第一级队列调度机制用于使所述发送端网络设备调度服务质量QoS队列中的业务报文,将所述QoS队列中的业务报文添加到业务报文队列;
所述第二级队列调度机制用于使所述发送端网络设备调度业务报文队列中的业务报文或者调度测试报文队列中的测试报文,该调度过程为判断业务报文队列中是否有业务报文;如果是,则将业务报文队列中的业务报文添加到硬件队列;如果否,则将测试报文队列中的测试报文添加到硬件队列。
所述发送端网络设备将测试报文队列中的测试报文添加到硬件队列,具体包括:所述发送端网络设备在将业务报文队列中的业务报文添加到硬件队列之后,确定将业务报文添加到硬件队列时的第一速率;
所述发送端网络设备利用发送端网络设备与接收端网络设备之间的租用带宽以及所述第一速率确定第二速率,并利用所述第二速率将测试报文队列中的测试报文添加到硬件队列;其中,所述第二速率具体为:(所述租用带宽-所述第一速率)×(1+x%),所述x为预设数值。
所述发送端网络设备将硬件队列中的业务报文和/或测试报文发送给所述接收端网络设备,之后还包括:如果发送端网络设备发送给接收端网络设备的业务报文存在丢失情况,则所述发送端网络设备降低将测试报文队列中的测试报文添加到硬件队列的速率,并利用降低后的速率将测试报文队列中的测试报文添加到硬件队列。
所述测试报文的源IP地址为所述发送端网络设备的IP地址,所述测试报文的目的IP地址为所述接收端网络设备的IP地址,且所述测试报文设置有最低报文优先级。
本发明实施例提供一种发送端网络设备,应用于包括所述发送端网络设备和接收端网络设备的网络中,所述发送端网络设备具体包括:
判断模块,用于在需要利用预配置的队列调度机制向所述接收端网络设备发送报文时,判断业务报文队列中是否有业务报文;
处理模块,用于当判断结果为是时,将业务报文队列中的业务报文添加到硬件队列;否则,将测试报文队列中的测试报文添加到硬件队列;
发送模块,用于将硬件队列中的业务报文和/或测试报文发送给所述接收端网络设备,由所述接收端网络设备利用收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值。
所述发送端网络设备上配置有第一级队列调度机制、第二级队列调度机制;所述第一级队列调度机制用于使所述发送端网络设备调度服务质量QoS队列中的业务报文,将所述QoS队列中的业务报文添加到业务报文队列;
所述第二级队列调度机制用于使所述发送端网络设备调度业务报文队列中的业务报文或者调度测试报文队列中的测试报文,该调度过程为判断业务报文队列中是否有业务报文;如果是,则将业务报文队列中的业务报文添加到硬件队列;如果否,则将测试报文队列中的测试报文添加到硬件队列。
所述处理模块,具体用于在将业务报文队列中的业务报文添加到硬件队列后,确定将业务报文添加到硬件队列时的第一速率;利用发送端网络设备与接收端网络设备之间的租用带宽和所述第一速率确定第二速率,并利用所述第二速率将测试报文队列中的测试报文添加到硬件队列;其中,所述第二速率具体为:(所述租用带宽-所述第一速率)×(1+x%),所述x为预设数值。
所述处理模块,还用于当发送端网络设备发送给接收端网络设备的业务报文存在丢失情况时,降低将测试报文队列中的测试报文添加到硬件队列的速率,并利用降低后的速率将测试报文队列中的测试报文添加到硬件队列。
所述测试报文的源IP地址为发送端网络设备的IP地址,所述测试报文的目的IP地址为所述接收端网络设备的IP地址,且所述测试报文设置有最低报文优先级。
与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在发送端网络设备与接收端网络设备之间跨越运营商复杂网络时,对于租用运营商IP专线的情况,接收端网络设备可以通过收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值,并能够准确检测出发送端网络设备与接收端网络设备之间路径的实际带宽值。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种带宽检测方法,该方法应用于包括发送端网络设备和接收端网络设备的网络中,以图1为本发明实施例的应用场景示意图,在租用运营商IP专线的应用场景下,发送端网络设备可以为用户网关1,接收端网络设备可以为用户网关2。
如图2所示,本发明实施例中,为了准确检测出发送端网络设备与接收端网络设备之间路径的实际带宽值,在QoS(Quality of Service,服务质量)队列调度之后,在硬件队列调度之前,增加一级队列调度机制,输入队列分别为业务报文队列(用于记录业务报文)和测试报文队列(用于记录测试报文)。
网络设备为了有效匹配LAN(Local Area Network,局域网)与WAN(WideArea Network,广域网)带宽的巨大差异,在接口上都会采用队列调度和拥塞管理技术,以实现对不同优先级业务的差别服务,即QoS技术;在QoS技术中,网络设备需要将出接口上待发送的业务报文送入QoS队列;之后,网络设备利用调度算法(如CBWFQ(Class Based Weighted Fair Queuing,基于类型的加权公平队列)队列调度算法等)对QoS队列中的业务报文进行调度,并将业务报文添加到硬件队列中,之后发送硬件队列中的业务报文。
基于上述过程,本发明实施例中,需要在QoS队列与硬件队列之间增加业务报文队列,该业务报文队列中输入的业务报文为QoS队列输出的业务报文。
本发明实施例中,还需要在硬件队列之前增加测试报文队列,该测试报文队列中输入的测试报文为网络设备本身自动产生的,测试报文一般可设置为小包(即报文大小低于预设数值的报文),且测试报文的源IP地址为发送端网络设备的IP地址,测试报文的目的IP地址为接收端网络设备的IP地址,且为了避免对业务报文产生竞争影响,测试报文需要设置为最低报文优先级。
综上所述,本发明实施例中,发送端网络设备上配置有第一级队列调度机制、第二级队列调度机制;该第一级队列调度机制用于使发送端网络设备调度QoS队列中的业务报文,将QoS队列中的业务报文添加到业务报文队列;该第二级队列调度机制用于使发送端网络设备调度业务报文队列中的业务报文或者调度测试报文队列中的测试报文,将业务报文队列中的业务报文或者调度测试报文队列中的测试报文添加到硬件队列。
本发明实施例中,上述业务报文队列中输入业务报文的速率将基于QoS队列输出业务报文的速率;例如:当QoS队列输出业务报文的速率为8M时,业务报文队列中输入业务报文的速率为8M。此外,上述测试报文队列中输入测试报文的速率将基于发送端网络设备与接收端网络设备之间的租用带宽,并通过配置令牌桶速率设置测试报文队列中输入测试报文的速率;例如:当发送端网络设备与接收端网络设备之间的租用带宽为10M时,可以通过配置令牌桶速率设置测试报文队列中输入测试报文的速率为10M。
基于业务报文队列和测试报文队列,以下对第二级队列调度机制的详细处理过程进行阐述,如图3所示,该方法包括以下步骤:
步骤301,发送端网络设备在向接收端网络设备发送报文时,判断本轮报文调度过程是否结束;如果否,执行步骤302;否则,执行步骤305。
步骤302,发送端网络设备判断业务报文队列中是否有业务报文;如果是,则执行步骤303;否则,执行步骤304。
步骤303,发送端网络设备将业务报文队列中的业务报文添加到硬件队列;在本步骤结束之后,继续执行步骤301。
步骤304,发送端网络设备将测试报文队列中的测试报文添加到硬件队列;在本步骤结束之后,继续执行步骤301。
其中,上述步骤301-步骤304的处理为第二级队列调度机制的调度过程。
步骤305,发送端网络设备将硬件队列中的业务报文和/或测试报文发送给接收端网络设备;即发送端网络设备通过租用运营商IP专线将硬件队列中的业务报文和/或测试报文发送给接收端网络设备。
本发明实施例中,上述硬件队列具体包括但不限于:FIFO(First Input FirstOutput,先入先出)队列。
本发明实施例中,发送端网络设备的调度机制为:只要业务报文队列中有业务报文,则发送端网络设备需要调度业务报文队列中的业务报文;当业务报文队列中没有业务报文(即业务报文队列为空)时,则发送端网络设备需要调度测试报文队列中的测试报文;此外,对于测试报文队列中没有被调度的测试报文,则发送端网络设备可以直接丢弃该测试报文。
基于此,发送端网络设备在调度业务报文或者测试报文时,需要基于向硬件队列中输入报文的速率以及报文的大小,确定出本轮报文调度过程中的调度次数,如每秒的调度次数;假设每秒的调度次数为10000,则在这10000次的调度过程中,判断结果均为本轮报文调度过程没有结束,执行步骤302和后续步骤;在10001次调度时,判断结果为本轮报文调度过程结束,执行步骤305,并继续进行下一轮报文调度过程,后续处理不再赘述。
例如,当发送端网络设备需要按照10M速率向硬件队列中输入报文,业务报文队列中输入业务报文的速率为8M,测试报文队列中输入测试报文的速率为10M时,针对本轮报文的调度过程,在输入前8M速率的报文时,发送端网络设备确定业务报文队列中有业务报文,因此需要将业务报文队列中的业务报文添加到硬件队列;在输入后2M速率的报文时,发送端网络设备确定业务报文队列中没有业务报文,因此需要将测试报文队列中的测试报文添加到硬件队列。基于此,发送端网络设备将硬件队列中的业务报文和测试报文发送给接收端网络设备。
又例如,当发送端网络设备需要按照10M速率向硬件队列中输入报文,业务报文队列中输入业务报文的速率为10M,测试报文队列中输入测试报文的速率为10M时,针对本轮报文调度过程,在输入10M速率的报文时,发送端网络设备确定业务报文队列中有业务报文,因此需要将业务报文队列中的业务报文添加到硬件队列;基于此,发送端网络设备将硬件队列中的业务报文发送给接收端网络设备。
又例如,当发送端网络设备需要按照10M速率向硬件队列中输入报文,业务报文队列中输入业务报文的速率为0M,测试报文队列中输入测试报文的速率为10M时,针对本轮报文调度过程,在输入10M速率的报文时,发送端网络设备确定业务报文队列中没有业务报文,因此需要将测试报文队列中的测试报文添加到硬件队列;基于此,发送端网络设备将硬件队列中的测试报文发送给接收端网络设备。
基于上述分析,在本发明实施例的一种优选实施方式中,发送端网络设备在将业务报文队列中的业务报文添加到硬件队列之后,可以确定出将业务报文添加到硬件队列时的第一速率;例如,业务报文队列中输入业务报文的速率为8M时,则将业务报文添加到硬件队列时的第一速率为8M。
之后,发送端网络设备利用发送端网络设备与接收端网络设备之间的租用带宽以及第一速率确定第二速率;其中,该第二速率具体为:(租用带宽-第一速率)×(1+x%),x为大于等于0的预设数值;例如,假设x为0,发送端网络设备与接收端网络设备之间的租用带宽为10M,则第二速率为2M。
需要注意的是,将x设置为大于等于0的预设数值的原因是:保证发送端网络设备发送报文的速率大于等于租用带宽,以避免发送端网络设备发送报文的速率小于租用带宽时,无法准确检测出发送端网络设备与接收端网络设备之间路径的实际带宽值;一般情况下,可以设置x等于0,此时发送端网络设备发送报文的速率将等于租用带宽,但是考虑到网络抖动等影响,发送端网络设备发送报文时会出现丢包情况,因此可以设置x大于0,以进一步保证发送端网络设备发送报文的速率能够大于等于租用带宽。
之后,发送端网络设备利用第二速率将测试报文队列中的测试报文添加到硬件队列;例如,当第二速率为2M时,发送端网络设备将测试报文队列中的测试报文添加到硬件队列的速率为2M;此外,对于测试报文队列中没有被添加到硬件队列的测试报文,发送端网络设备直接丢弃该测试报文。
步骤306,接收端网络设备利用收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值。
具体的,接收端网络设备在收到来自发送端网络设备的业务报文和/或测试报文后,利用收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值,即利用实际收到的源IP地址为发送端网络设备的报文的流量大小确定发送端网络设备与接收端网络设备之间路径的实际带宽值;进一步的,接收端网络设备还需要从收到的业务报文和/或测试报文中区分出业务报文和测试报文;对于业务报文,接收端网络设备需要按照正常流程处理业务报文;对于测试报文,接收端网络设备需要丢弃测试报文。
考虑到运营商给予用户可用的QoS优先级有限,测试报文虽然设置为最低报文优先级,但是仍然有可能对同样报文优先级的业务报文带来干扰和影响;基于此,本发明实施例中,发送端网络设备将硬件队列中的业务报文和/或测试报文发送给接收端网络设备之后,如果通过比较发送端网络设备发送业务报文的流量大小和接收端网络设备收到业务报文的流量大小,确定发送端网络设备发送给接收端网络设备的业务报文存在丢失情况,则发送端网络设备还需要降低将测试报文队列中的测试报文添加到硬件队列的速率(即降低第二速率),并利用降低后的速率将测试报文队列中的测试报文添加到硬件队列,以确保在检测实际带宽值的过程中不会对业务报文产生影响。
在一种优选实施方式中,发送端网络设备将本设备发送业务报文的流量大小通知给网管设备,接收端网络设备将本设备收到业务报文的流量大小通知给网管设备;基于此,网管设备比较发送端网络设备发送业务报文的流量大小和接收端网络设备收到业务报文的流量大小,确定发送端网络设备发送给接收端网络设备的业务报文是否存在丢失情况,在存在丢失情况时,通知发送端网络设备降低将测试报文队列中的测试报文添加到硬件队列的速率。
综上所述,本发明实施例中,在发送端网络设备与接收端网络设备之间跨越运营商复杂网络时,接收端网络设备可以通过收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值,并能够准确检测出发送端网络设备与接收端网络设备之间路径的实际带宽值。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种发送端网络设备,应用于包括所述发送端网络设备和接收端网络设备的网络中,如图4所示,所述发送端网络设备具体包括:
判断模块11,用于在需要利用预配置的队列调度机制向所述接收端网络设备发送报文时,判断业务报文队列中是否有业务报文;
处理模块12,用于当判断结果为是时,将业务报文队列中的业务报文添加到硬件队列;否则,将测试报文队列中的测试报文添加到硬件队列;
发送模块13,用于将硬件队列中的业务报文和/或测试报文发送给所述接收端网络设备,由所述接收端网络设备利用收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值。
本发明实施例中,所述发送端网络设备上配置有第一级队列调度机制、第二级队列调度机制;
所述第一级队列调度机制用于使所述发送端网络设备调度服务质量QoS队列中的业务报文,将所述QoS队列中的业务报文添加到业务报文队列;
所述第二级队列调度机制用于使所述发送端网络设备调度业务报文队列中的业务报文或者调度测试报文队列中的测试报文,该调度过程为判断业务报文队列中是否有业务报文;如果是,则将业务报文队列中的业务报文添加到硬件队列;如果否,则将测试报文队列中的测试报文添加到硬件队列。
所述处理模块12,具体用于在将业务报文队列中的业务报文添加到硬件队列后,确定将业务报文添加到硬件队列时的第一速率;利用发送端网络设备与接收端网络设备之间的租用带宽和所述第一速率确定第二速率,利用所述第二速率将测试报文队列中的测试报文添加到硬件队列;其中,所述第二速率具体为:(所述租用带宽-所述第一速率)×(1+x%),所述x为预设数值。
所述处理模块12,还用于当发送端网络设备发送给接收端网络设备的业务报文存在丢失情况时,降低将测试报文队列中的测试报文添加到硬件队列的速率,并利用降低后的速率将测试报文队列中的测试报文添加到硬件队列。
本发明实施例中,所述测试报文的源IP地址为发送端网络设备的IP地址,所述测试报文的目的IP地址为所述接收端网络设备的IP地址,且所述测试报文设置有最低报文优先级。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种接收端网络设备,应用于包括发送端网络设备和所述接收端网络设备的网络中,如图5所示,所述接收端网络设备具体包括:
接收模块21,用于接收来自所述发送端网络设备的业务报文和/或测试报文;
检测模块22,用于利用收到的业务报文和/或测试报文检测发送端网络设备与接收端网络设备之间路径的实际带宽值;
处理模块23,用于从收到的业务报文和/或测试报文中区分出业务报文和测试报文,并处理所述业务报文,以及丢弃所述测试报文。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。