网络设备过载保护方法、过载保护功能测试方法及系统与流程

文档序号:13391448阅读:517来源:国知局
网络设备过载保护方法、过载保护功能测试方法及系统与流程

本发明涉及数据通信领域中的过载保护技术,具体涉及网络设备过载保护方法、过载保护功能测试方法及系统。



背景技术:

随着通信技术的高速发展,通信量的剧增导致需要高性能高容量的交换芯片。以交换和路由设备为例,由于人们对数据量需求的增长,如数字电视点播、上网等,因而对交换机、路由器提供的带宽要求也越来越高。这就需要努力提高核心设备硬件的性能和容量。当出现突发情况,数据包超过网络设备最大处理能力时,需要进行过载保护,传统技术中的过载保护方案主要由两种:

1)对所有的虚拟输出队列限制带宽来限制过载:

对每个虚拟输出队列限制带宽,如果多播包经过复制引擎复制后导致超过芯片处理能力时,可以限制过载,但过载发生时将数据包随机丢弃。

2)利用qos的policer策略器限制过载:

policer是qos技术中的一种用来给包染色划分丢弃优先级,然后根据丢弃优先级进行限速的技术。通过设置过滤条件进行上下行方向的流量带宽限制,但标记为红色的包不会在policer阶段丢弃,多播包经过复制引擎复制后导致超过芯片处理能力时,可以限制过载,但过载时也会将包随机丢弃。

此外,为了在网络设备开发前期对其过载保护性能进行验证,以便把控风险,需要构造过载场景,传统技术中构造过载场景的方法主要有:

1)蛇形法:

如图1所示,即采用划分虚拟局域网vlan的方法,跨vlan就直接用网线或光纤连接,该方法基本用于低端低速的场景,且占用全部端口,但不能过载运行,一般只能跑单种包。

2)按端口复制法:

如图2所示,采用复制的方法,将包复制到多个端口,如果端口少,则要求进入的流量要大,需要的测试仪就需要高端的(价格昂贵,资源稀缺)。如果进入的流量要小,那么要求复制的端口就要非常多,一般物理端口都有限。

综上,传统过载保护方案有着明显的缺陷和不足,限制过载后会发生包的随机丢弃,而且在过载验证时要么不能成功构造过载场景,要么就需要很多的外部资源。



技术实现要素:

本发明所要解决的技术问题是:提出一种网络设备过载保护方法、过载保护功能测试方法及系统,解决传统技术的过载保护方案中在限制过载后会发生包的随机丢弃问题,而且在过载验证时不能成功构造过载场景或者依赖大量外部资源的问题。

第一方面,本发明实施例提供一种网络设备过载保护方法,其包括:

当网络设备进入过载保护时,根据数据包的类型和优先级顺序对新到达的数据包进行丢弃:多播数据包优先于单播数据包被丢弃,低优先级的多播数据包优先于高优先级的多播数据包被丢弃。

第二方面,本发明实施例提供一种过载保护功能测试系统,包括:

测试仪和网络设备,所述测试仪的数据发送端口与网络设备的数据接收端口相连,测试仪的数据接收端口和网络设备的数据发送端口空置;

所述测试仪,用于根据测试需求构造数据包发送给网络设备;

所述网络设备,用于通过创建逻辑端口和虚拟输出队列,验证过载时数据包被丢弃的优先级顺序。

进一步地,所述网络设备通过诊断命令判断过载时被丢弃的数据包的类型及优先级,从而验证过载时数据包被丢弃的优先级顺序。

进一步地,所述网络设备包括端口模块、入队请求管理调度模块、复制引擎模块、虚拟输出队列管理模块和验证模块;

所述端口模块,用于从网络设备的物理端口中抽象出一定数量的逻辑端口;

所述入队请求管理调度模块,通过创建先进先出fifo队列对测试仪发送的数据包进行入队管理;

所述复制引擎模块,用于对多播数据包进行复制;

所述虚拟输出队列管理模块,通过创建与逻辑端口相应数量的虚拟输出队列对数据包进行出队管理;

所述验证模块,用于通过诊断命令判断过载时被丢弃的数据包的类型及优先级,从而验证过载时数据包被丢弃的优先级顺序。

进一步地,所述入队请求管理调度模块创建3个fifo队列,其中一个为单播fifo队列,另外两个分别为多播高优先级fifo队列和多播低优先级fifo队列。

优选地,所述入队请求管理调度模块还用于根据数据包的优先权代码点pcp字段,将数据包的优先级映射到内部优先级,并将内部优先级映射到虚拟输出队列;还用于将内部优先级映射到多播高优先级fifo队列和多播低优先级fifo队列。

第三方面,本发明实施例提供一种过载保护功能测试方法,其包括以下步骤:

a、针对验证多播数据包优先于单播数据包丢弃的需求搭载过载场景;

b、向网络设备发送单播与多播不同优先级的两种报文;

c、判断被优先丢弃的数据包的类型及优先级。

进一步地,步骤a具体包括:

a1、根据单播数据包和多播数据包的发包信息计算在网络设备满负载的情况下,多播数据包需要复制的最少份数n;

a2、网络设备创建n+1个逻辑端口和对应的n+1个虚拟输出队列;

a3、利用网络设备的诊断命令得到瞬时的令牌数,从而估算出到达网络设备数据发送端口的带宽。

进一步地,步骤c具体包括:

根据诊断命令查看有无被丢弃的数据包,若有被丢弃的数据包,且丢弃的原因出现多播错误(mc_err),此时根据单播fifo队列和多播fifo队列对应的虚拟输出队列发放的令牌数判断出优先丢弃的数据包的类型及优先级。

第四方面,本发明实施例提供的另外一种过载保护功能测试方法,其包括以下步骤:

a、针对验证多播低优先级数据包优先于多播高优先级数据包丢弃的需求搭载过载场景;

b、网络测试仪向网络设备发送两路不同优先级的多播数据包;

c、判断被优先丢弃的数据包的类型及优先级。

进一步地,步骤a具体包括:

a1、根据两路多播数据包的发包信息计算在网络设备满负载的情况下,多播数据包需要复制的最少份数m;

a2、网络设备为每路多播分别创建m个逻辑端口和对应的m个虚拟输出队列;

a3、利用网络设备的诊断命令得到瞬时的令牌数,从而估算出到达网络设备数据发送端口的带宽。

进一步地,步骤c具体包括:

根据诊断命令查看有无被丢弃的数据包,若有被丢弃的数据包,且丢弃的原因出现多播错误(mc_err),此时根据多播高优先级fifo队列和多播低优先级fifo队列对应的虚拟输出队列发放的令牌数判断出优先丢弃的数据包的类型及优先级。

本发明的有益效果是:

1、过载情况下,丢弃按包类型和优先级丢弃:多播数据包优先于单播数据包被丢弃,而多播低优先级数据包优先于多播高优先级数据包被丢弃;

2、在过载保护功能测试时,采用创建逻辑端口和虚拟输出队列的方式构建过载场景,验证方案可以用低性能的测试仪、不需要接出端口,因此可以节约外部资源。

附图说明

图1为传统技术中采用蛇形法构造过载场景示意图;

图2为传统技术中采用端口复制法构造过载场景示意图;

图3为本发明实施例网络设备过载时丢弃数据包的原理示意图;

图4为本发明实施例构建验证多播数据包优先单播数据包被丢弃的过载场景示意图;

图5为本发明实施例构建验证多播低优先级优先多播高优先级数据包被丢弃的过载场景示意图。

具体实施方式

本发明旨在提出一种网络设备过载保护方法、过载保护功能测试方法及系统,解决传统技术的过载保护方案中在限制过载后会发生包的随机丢弃问题,而且在过载验证时不能成功构造过载场景或者依赖大量外部资源的问题。

本发明中的过载保护功能测试系统,包括:

测试仪和网络设备,所述测试仪的数据发送端口与网络设备的数据接收端口相连,测试仪的数据接收端口和网络设备的数据发送端口空置;

所述测试仪,用于根据测试需求构造数据包发送给网络设备;

所述网络设备,用于通过创建逻辑端口和虚拟输出队列,验证过载时数据包被丢弃的优先级顺序。

所述网络设备包括端口模块、入队请求管理调度模块、复制引擎模块、虚拟输出队列管理模块和验证模块。

所述端口模块,用于从物理端口中抽象出一定数量的逻辑端口;

所述入队请求管理调度模块,通过创建fifo队列对测试仪发送的数据包进行入队管理;

所述复制引擎模块,用于对多播数据包进行复制;

所述虚拟输出队列管理模块,通过创建与逻辑端口相应数量的虚拟输出队列对数据包进行出队管理;

所述验证模块,用于通过诊断命令判断过载时被丢弃的数据包的类型及优先级,从而验证过载时数据包被丢弃的优先级顺序。

所述入队请求管理调度模块还用于根据数据包的优先权代码点pcp字段,将数据包的优先级映射到内部优先级,并将内部优先级映射到虚拟输出队列;还用于将内部优先级映射到多播高优先级fifo队列和多播低优先级fifo队列;在具体实现上,包括:

1)对包的优先权代码点(prioritycodepoint,pcp)字段8种情况映射到内部优先级的8种,pcp0->tc7,pcp1->tc6,pcp2->tc5,pcp3->tc4,pcp4->tc3,pcp5->tc2,pcp6->tc1,pcp7->tc0;

2)将8个内部优先级映射到4个虚拟输出队列,tc0,1->q0,tc2,3->q1,tc4,5->q2,tc6,7->q3,优先级上q0>q1>q2>q3;

3)映射内部tc0-3到多播入队请求高优先级fifo,tc4-7到多播入队请求低优先级fifo;

4)设置三种入队请求fifo深度均为256。

如图3所示,入队请求管理调度模块管理三个fifo队列,分别为一个单播fifo队列,一个多播高优先级fifo队列,一个多播低优先级fifo队列;这三个队列共享768个入队请求深度。当多播的fifo队列满的时候,新到达的多播包就会进入到单播的fifo队列,并被标记为mc_err,并在虚拟输出队列管理模块被丢弃。

下面结合附图及实施例对过载保护功能测试方法进行说明:

实施例一:

本发明实施例以验证多播数据包优先于单播数据包被丢弃为例进行说明,首先需要搭建过载场景(以网络设备满负载300mpps为例),如图4所示:

1)为了使用较少的端口和低端的测试仪实现,采用的是创建逻辑端口和虚拟输出队列(物理端口里面抽象出大量的逻辑端口,每个逻辑端口对应一个虚拟输出队列)的方法,但不依赖虚拟输出队列限制过载。

2)以计算一路64字节的1gbps单播和一路64字节的1gbps多播进包为例,计算多播数据包需要复制的最少份数:

包长64字节,帧前导长度8字节,帧间距12字节,因此每一路数据包包实际速率=包长/(包长+帧前导+帧间距)*发包速率=64/(64+12+8)*1gb/s=761.905mb/s(等价为761.905/64/8=1.488mpps),那么多播复制产生的负载为(300-1.488)mpps,最小需要复制的份数=(300-1.488)mpps/1.488mpps=200.6≈201。

3)创建202个虚拟输出队列和202个逻辑端口,其中一个给单播数据包用,剩余的201个给多播数据包用;

4)为了减少测试仪资源,网络设备的出端口都不接回测试仪(此时的测试仪无法通过大流量的包),给每个虚拟输出队列发放的令牌数和每个对应的虚拟输出队列出队的流量等价使用网络设备,提供的诊断命令得到瞬时的令牌数从而估算到达出端口的带宽。

5)为避免单个出端口不能提供足够的令牌数,把虚拟输出队列指向三个不同的物理端口。

在搭建上述过载场景后,利用测试仪向网络设备发送单播与多播不同优先级的两种报文;利用网络设备的诊断命令查看有无被丢弃的数据包,若有被丢弃的数据包,且丢弃的原因出现多播错误(mc_err),此时根据单播fifo队列和多播fifo队列对应的虚拟输出队列发放的令牌数判断出优先丢弃的数据包的类型及优先级。

实施例二:

本发明实施例以验证多播低优先级数据包优先于多播高优先级数据包为例进行说明,首先需要搭建过载场景(以网络设备满负载300mpps为例),如图5所示:

1)为了使用较少的端口和低端的测试仪实现,采用的是创建逻辑端口和虚拟输出队列的方法,即通过在物理端口里面抽象出大量的逻辑端口,每个逻辑端口对应一个虚拟输出队列,但不依赖虚拟输出队列限制过载。

2)以计算两路每路64字节0.5gbps多播数据包为例,计算多播需要复制的最少份数:

包长64字节,帧前导长度8字节,帧间距12字节,因此两路进包实际速率=包长/(包长+帧前导+帧间距)*发包速率=64/(64+12+8)*1gb/s=761.905mb/s(等价为761.905/64/8=1.488mpps),那么多播复制产生的负载为300mpps,最小需要复制的份数=300mpps/1.488mpps=201.6≈202,即每一路都需要复制202份。

3)为每路多播分别创建202个虚拟输出队列和202个逻辑端口;

4)为了减少测试仪资源,出端口都不接回测试仪(此时的测试仪无法接收大流量的包),使用网络设备提供的诊断命令得到瞬时的令牌数从而估算出到达出端口的带宽,给每个虚拟输出队列发放的令牌数和每个对应的虚拟输出队列出队的流量等价。

5)为避免单个出端口不能提供足够的令牌数,把虚拟输出队列指向两个不同的物理端口。在搭建上述过载

在搭建上述过载场景后,利用测试仪向网络设备发送多播高优先级与多播低优先级两种报文;网络设备根据诊断命令查看有无被丢弃的数据包,若有被丢弃的数据包,且丢弃的原因出现多播错误,此时根据多播高优先级fifo队列和多播低优先级fifo队列对应的虚拟输出队列发放的令牌数判断出优先丢弃的数据包的类型及优先级。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1