RFC 2544通用流测试
概述
NQA通用流测试(Generalflow Test)是参照RFC 2544定义的一种通用流量测试方法。此方法屏蔽了不同网络场景以及检测报文格式的差异,是一套标准的网络的性能评估方法。基于UDP实现,缺省情况下,UDP报文的目的端口号是7,源端口号是49184。
在业务部署之前,采用自发包形式,模拟业务流量
目前已有很多方法检测网络互连设备的性能,例如二层网络可以使用Y.1731,三层网络可以使用IP FPM,但是这类直接测量技术需要网络中已经存在业务流量,因此在业务部署前检测设备性能时,需要通过测试仪解决流量收发问题,可部署性差。
依据RFC2544实现,采用标准的测试方法和步骤,方便不同厂商进行性能对比
测试过程
通用流测试是NQA检测集合中的一种检测工具,以UDP报文类型承载。测试时,发起端是NQA Client端,另一端是反射端。报文在Client端发起,然后报文在反射端将源地址和目的地址调换后直接再进行环回,这样发起端通过对发送和接收的报文进行计数以及根据报文的时间戳进行计算获得统计指标。
通用流测试可以测量如下性能指标:
- 吞吐量:最大的使不丢包的发送速率。
丢包率:在整个网路转发过程中,报文被丢弃的比率。
时延:报文从设备发出到环回到设备的时间,包括了在网络转发设备中的处理时间。
测试的吞吐量、丢包以及时延抖动指标是分多次测试获得的,测试时需要预先选择测试的指标类型。
如图4-21所示,用户网络接口UNI(User Network Interface )端口A是测试的发起端,UNI端口B是反射端。下面描述吞吐量、时延、丢包三种指标测试的详细过程。
吞吐量测试
测试时需要指定测试的发包速率上下限和测试精度值,检测就在上下限之间进行探测。具体过程如下:
- 发起端以上限速率持续发包探测,同样,如果没有丢包(或者丢包情况满足用户设置的丢包率),则认为当前网络带宽也可以满足上限值
- 发起端基于接口以下限速率持续进行发包探测,如果一定时间内,发现没有丢包(或者丢包情况满足用户设置的丢包率),则认为当前网络带宽满足下限值
如果按照上限值探测的丢包情况不满足用户预期的丢包率情况,接下来使用上限测试速率*(1-丢包率)进行下一次测试。
时延
时延测试是在一定的背景流量的基础上的测试,因此检测时,需要先按一定速率产生背景流量,然后再按一定的间隔持续发送测试报文,通过对测试报文的发送和接收的时间进行统计计算,获得网络的双向时延和抖动值。
丢包率
丢包率测试时发起端构造测试报文,按指定速率、时间发送测试报文。测试期间软件定时每秒采集收发报文计数。测试完毕时,停止发送测试流,待测试报文全部回流到发起端后,读取收发包数,并统计测试结果。
应用
通用流测试支持如下场景的检测:
二层场景:Native以太场景、二层虚拟专用网L2VPN(Layer 2 Virtual Private Network)场景(VLL、点到点VPLS)、EVPN场景
说明:
目前EVPN只支持EVPN MPLS场景,不支持EVPN VXLAN场景。
三层场景:Native IP场景、三层虚拟专用网L3VPN(Layer 3 Virtual Private Network)场景
IP网关场景
L2VPN接入L3VPN场景
如图4-22所示,二层场景和三层场景都是在两端UNI接口之间进行。启动测试例后,发起端构造和发送测试报文,反射端基于端口反射流量,或基于用户配置过滤流量后再反射流量。发起端收到反射回的流量后,进行统计分析,最终输出测试结果。
如图4-23所示,反射端设备相当于交换机的角色,用户CE侧的三层业务通过二层网络接入到IP网关。测试过程和三层场景下的测试过程类似,区别在于测试之初,IP网关无法学习到反射端设备或用户CE侧的MAC地址。此时,需要在发起端和反射端同时配置静态ARP表项。
如果测试的发起端和反射端是位置1与位置5或位置4与位置6,此时与Native以太场景相同。
如果测试的发起端和反射端是位置2与位置3,此时与Native IP场景相同。
如果测试的发起端和反射端是位置3到位置1或位置2到位置4,此时与IP网关场景类似,L2VPN设备上需要配置模拟IP地址。
如果测试的发起端和反射端是位置1与位置2或位置3与位置4,此时与IP网关场景相同。
如果测试的发起端和反射端是位置1到位置4,或位置1到位置3,或位置4到位置2,此时为正式的L2VPN接入L3VPN场景。在这种场景中发起端需要指定目的MAC地址,目的IP地址和源IP地址。反射端需要指定接收测试流的目的IP地址。L2VPN测作为发起端需要配置模拟IP地址作为源IP地址。