网络分流器-网络分流器IP网络路由交换测试技术探讨
网络分流器
1 . 与流量相关的L2-3层高级测试技术探讨
戎腾网络分流器: 对于一个L2-3层网络设备,最基本、最重要的测试是流量转发性能测试。作为一个网络转发设备,首先要保证可以高速、低时延、稳定地转发流量。
相关的性能测试通常是通过流量生成器(一般是硬件测试仪表,可以发出线速的流量)来生成相应的流量让被测试设备承受不同的负载,检验其表现。通常会测试被测设备的容量(比如吞吐量),以及处理业务的特征如何(比如时延)。以交换机为例,不同的交换机由于采用了不同的硬件架构,性能表现会有所不同;同一个交换机在不同负载时会有不同的表现(例如重载时延和轻载时延的差异);交换机配置的不同也会引起不同的表现。
为了尽量独立、公正(不受厂家的技术指标影响),IETF测试标准化工作组(BMWG)针对交换机的测试公布了下面这些主要的RFC(如RFC1242、RFC2544、RFC2285、RFC2889、RFC2432、RFC3918、RFC5180等)。这些RFC定义了测试标准的术语和方法,其中最重要的两个测试规范是RFC2544和RFC2889。
我们不去讨论RFC2544和RFC2889的内容,只是来探讨一下这两个规范中的测试方法是否足够,在测试过程中是否考虑了如下内容:
(1)包长的选择是否过于简单?
(2)可以随机变换发包间隔(发包速率)吗?
(3)发包序列是否灵活多变?
(4)数据包的地址数可以增加吗?
(5)流量类型是否足够多?流量是否可以混合?
(6)是否可以详细地统计成千上万条数据流,并从中快速找出你所需要的数据流?
(7)是否可以跟踪数据流里的多个字段?
(8)除了时延和抖动,是否可以清晰地知道数据包的时延分布?
下面我们来逐条探讨上述提到的内容:
(1)在流量包长的选择上,我们的测试应该支持更加丰富的包长类型。包长的选择应该支持递增、递减、定制、IMIX、高斯分布等,丰富的包长类型更加贴近网络上的真实情况。
(2)在发包速率的选择上,数据包与数据包间隔(IPG)的变化,Burst与Burst之间间隔(IBG)的变化,Stream和Stream之间间隔(ISG)的变化都应该是可以配置的。流量数据包间隔的变化导致速率的不均匀性,直接可以考验被测试设备的速率计量以及限速准确性;而且这种变化的速率能模拟突发效果,反映真实数据流特性。
(3)选择不同的发包序列。例如构造了2条流量,第1条是ICMP流,IP地址变化了100次,第2条是TCP流,端口号变化了100次,那么我就有了发包序列的选择。第一种发包序列是ICMP流和TCP流按照设定的速率同时发送。第二种发包序列是顺序发送:先把第一条流里的100个ICMP包都发送出去后,再发送第二条流里的100个TCP包,周而复始。通过调整发包顺序,使被测试设备经受更多情况的测试。
(4)尽可能多地选择目的地址(IP、MAC等),在每一个方向上构造大量的DMAC、DIP,考验被测试设备在存在大量MAC或者ARP表项时的转发性能。
(5)在测试过程中,我们应该选择尽可能多的流量类型(MAC、VLAN、IPv4、IPv6、TCP/UDP、MPLS等),甚至一些错误报文(如IP/TCP/UDP Checksum错误、IP TTL为0、FCS错误)、真实的应用层流量。丰富的流量类型可以更全面地检验被测试设备在应对不同业务流时的表现。
(6)测试应该能够快速找出所需的测试数据流。目前测试仪表都可以发送数以百万的测试数据流,并且可以对这些数据流进行跟踪统计。但是由于测试流量条目众多,如何从这百万的测试流量中找出需要的测试流量,对于问题定位至关重要。例如:需要能快速地从这100万条流量中找出哪100条转发平均时延最大,或者哪100条流量丢包最严重。只有能够快速地找到所需要的流量,才能提高测试效率,减少问题定位的时间。
(7)测试方法以及测试工具应该能够跟踪数据流里的多个字段。例如我们首先可以根据数据流的源IP地址进行跟踪,然后又想看到这条流的TOS是多少。能够同时跟踪数据流里多个字段的测试工具可以极大地提高测试效率。
(8)不仅仅要测试时延和抖动,而且要能够清晰地得到时延分布。知道精确的时延分布,可以帮助研发人员更好地优化被测设备的转发性能。
2 与路由相关的L2-3层高级测试技术探讨
对于路由设备,其最基本最重要的测试包括:路由容量测试(路由条目、路由邻居数等)、大路由表情况下转发性能测试、路由收敛测试、路由震荡测试。那么,我们在做这些测试时,是否考虑了下面的情况:
(1)仿真的路由条目掩码是否过于单一?
(2)仿真的路由拓扑是否过于简单?
(3)是否考虑了应用层数据流在转发和路由收敛时的情况?
(4)是否考虑了多种协议共同工作时的情况?
(5)路由收敛时间测试的精度是否可以更高?
(6)是否考虑了路由震荡的多种情况?
下面我们来逐条分析上述提到的问题:
(1)仿真的路由条目是否过于单一?现网上的路由设备中的路由条目掩码非常复杂,因此我们在对路由设备进行测试时,模拟的路由条目也要尽可能地模拟现网的情况,通告的路由条目的掩码要具有多样性,甚至把现网的路由条目灌入路由设备。
(2)仿真的路由拓扑是否过于简单?以OSPF为例:我们是否只仿真了3类LSA或5类LSA?我们需要仿真出更复杂的网络拓扑,具有更多类型LSA的拓扑。
(3)是否考虑了应用层数据流在转发和路由收敛时的情况?
首先来看看转发的情况:传统的路由转发测试只是使用测试仪给被测试设备通告了路由后,打入无状态的L2/3流量,来检验路由设备在大路由表下的转发性能。由于这种测试方法并不能检验路由设备是否能在现网环境下高效地运行,因此我们不仅仅应该完成无状态数据流的转发测试,更要测试L4/7应用层流量跑在通告的路由拓扑上的情况。
我们再来看看应用层流量和无状态流量在路由震荡时的收敛情况,可以很清楚地看出,无状态流量可以很快地收敛,但是真实业务的流量收敛起来就慢了许多。
(4)是否考虑了多种协议共同工作时的情况?在测试中,路由设备应该同时启动多种路由协议,应该考虑组播路由协议和单播路由协议的协同工作,BFD和路由协议的协同工作,IPv4/v6路由协议的协同工作,甚至协议over协议的情况。
(5)路由收敛时间测试的精度是否可以更高?传统的路由收敛测试方法是:(Frames Delta)/(TX Frame Rate)=Tconvergence,精度不高,并且随traffic的包长不同而造成测试精度不同。更先进的测试方法是:Tport3,first timestamp–Tport2,last timestamp=Tconvergence,精度高(20ns),测试精度只和测试仪背板时钟晶振有关,精度稳定。
(6)是否考虑了路由震荡的多种情况?
通告/撤销路由条目造成的震荡(邻居关系仍在,路由条目可能部分震荡,或者全部震荡;邻居关系震荡(邻居关系建立/断开),路由条目全部震荡)。
邻居关系震荡又有很多种情况,例如:有Graceful Restart和没有Graceful Restart,相关路由协议Start/Stop,主备控制板倒换,相关链路UP/Down,路由设备出现重启现象等。
除了上述情况,我们在做L2-3层测试时,还有哪些地方需要注意呢?
(1)QoS(部署QoS时和没有部署QoS时,流量转发结果的比较)。
(2)访控列表(部署ACL时和没有部署ACL时,流量转发结果的比较)。
(3)系统测试(非单台被测试设备-DUT、多台设备组成的被测试系统-SUT、多协议、多种应用)。
(4)稳定性测试(多端口、满负载、长时间、大流量、正常/异常情况)。
(5)DUT状态(测试过程中,DUT的CPU利用率,内存占用状态等重要指标)等。
3 结束语
在越来越复杂的网络环境下,测试内容日趋复杂,高性能、功能强大且稳定的测试工具能够给测试工作者的工作带来极大的便利.
网络分流器作为网络安全领域网络监控前端重要基础装备,对于整个网络安全起到了关键作用!戎腾网络分流器!
核心网采集,骨干网采集,移动互联网采集,大数据采集设备!基于NPS400多核业务板戎腾CDP4000
转载于:https://blog.51cto.com/13877589/2167198
相关文章:

浅谈https\ssl\数字证书
在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议…

input不管用 vue_Vue自定义指令实现快速读取Excel
前几天因为业务需求,所维护的而后台中出现了大量关于上传下载Excel的操作。因为我们的后台是基于Vue,并且是在 vue-element-admin 的基础上结合实际需求开发而来。vue-element-admin 中也有一些相关操作 Excel 的示例,都十分清晰明了…

数据结构——算法之(010)( 字符串的左旋转操作)
【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping163.com】 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cde…

value_counts()
Serise类型: Series.value_counts(normalizeFalse, sortTrue, ascendingFalse, binsNone, dropnaTrue) 功能:返回包含唯一值计数的对象。结果对象将按降序排列,以便第一个元素是最常出现的元素。 不包括默认的NA值。 参数:normali…

DFA和NFA
1.历史:引用正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一…

adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)
[导读] 生活环境周围信号万万千,对于一个嵌入式er。我们利用技术去了解世界、改变世界。而一个产品要与外界物理环境打交道,一个至关重要的触角就是采样真实模拟世界的信号,翻译成芯片可理解的数字信号,进而实现很多为人服务的应…

Swift泛型
泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。 泛型函数 定义 fun 函数名<T,S&…

02、在层级未知情况下通过递归查找子物体
1、在在层级未知情况下通过递归查找子物体 ,这个主要是用于UI的的层级查找中 2、代码: 1 using System.Collections;2 using System.Collections.Generic;3 using UnityEngine;4 5 public class EnemyManager : MonoBehaviour6 {7 8 private GameOb…

CentOS装机必备-基本设置以及缺失文件
SecureCRT中注意不要使用以Ascii方式上传文件,只有在需要的地方才使用。主要是虚拟机中安装CentOS每次总会做一些设置,记录下来方便以后。 纯粹基本设置,比如本地SecureCRT可以连接虚拟机中的CentOS。 复杂的非基本设置见:Linux …

unity替换mesh测试
直接替换SkinnedMeshRender的Mesh,实现所谓断肢效果(不过最近发现,绑定多mesh似乎更好实现这样的效果。有时间准备写一篇): 只要不改变两个Mesh原始文件的层级,就不会出现权重的错乱问题。 权重映射的测试:http://www.…

matlab中patch命令_matlab 放大平移图形是超出边界问题的处理
matlab提供的图形放大和平移函数zoom和pan可以通过鼠标来控制图形,非常方便,在工具条toolbar上也有对应的按钮。但是在放大或平移自己画的数据图是,有时会出现部分图形超出了坐标系的边界的问题,非常奇怪。经分析和试验࿰…

关于虚拟化技术软硬件兼容问题的探讨
VMware十几年前就已经出现,个人最早使用VMware的时间似乎是2001年或者2002年,当时可以在个人电脑上通过VMware虚拟多套系统,用于学习研究(做实验往往会破坏系统,当时VMware在一些场景下还是比较流行的)。由…

自己开发操作系统
算是《30天自制操作系统》的读书笔记吧,但是我觉得原书不少地方啰嗦,某些做法值得商榷 http://product.china-pub.com/36828381.二进制编译器 首先下载Bzl1621.lzh,这个可以把二进制数编辑的软件。 BZ启动画面打开img文件2.使用虚拟机加载IMG…

广东科技学院专插本c语言考卷_广东科技学院第二届红色文化节之红色影视经典配音大赛决赛...
红色经典影视配音大赛追忆革命岁月,传承红色文化,激扬青春生命,传承红色精神,为了让广大师生感受到红色影视经典的魅力和配音的乐趣,加深对红色文化的理解,提高师生们的爱国情怀。2020年12月16日19…

Social regularizations
trust-aware :如何从隐式信任中导出显示信任。链接预测就是搞这一方面的么? 和类似谱聚类的拉普拉斯矩阵结合在一起,没怎么看。

阿里P7架构师的成长之路
前言 系统架构师是近几年来在国内外迅速成长并发展良好的一个职位,它的重要性及给互联网行业所带来的影响是不言而喻的。很多程序员把成为一名优秀的架构师作为自己职业生涯奋斗的目标,但很多人努力却用不对地方,前段时间我与在阿里的P7架构师…

cad的文字嵌入线条_带你玩转CAD!
CAD画图已经成为化工人的必备技能。什么,这么多CAD必备技巧你居然还不知道?我该拿什么拯救你,我最最最最最最亲爱的旁友!!!下面给大家整理了50个相见恨晚的CAD技巧,带你玩转CAD!&…

BZOJ1315 : Ural1557Network Attack
找到一棵dfs搜索树,给每条非树边一个随机非0权值,每条树边为所有经过它的树边的权值的异或。 那么有2种情况是合法的: 1.一条边权值为0,一条边权值非0。 2.两条边异或和为0。 排序后统计即可,时间复杂度$O(m\log m)$。…

android原生跳转到外网
2019独角兽企业重金招聘Python工程师标准>>> super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent new Intent(); intent.setAction("android.intent.action.VIEW"); Uri uri Uri.parse("…

linux上使用strace查看C语言级别的php源码【一种方法】
如果你希望看到C语言级别的php代码就需要使用strace 这个默认是安装了的,如果没有安装可以 #yum install strace查看httpd进程 #ps auxw | grep httpd有多个,必须停止apache [rootlocalhost usr]# /usr/local/webserver/apache2/bin/apachectl stop启动…

iphone8p百度云认证_探秘百度数据工厂Pingo的多存储后端数据联合查询技术
作者介绍:张志宏,2013年加入百度大数据部,曾作为核心成员参与百度大数据平台的搭建。目前是百度数据工厂Pingo核心团队的技术负责人。Pingo是来自百度的离线大数据集成开发平台,使用Spark作为计算引擎,深度整合了资源调…

JavaScript文件中调用AngularJS内部方法或改变$scope变量
需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量,同时还要保持双向数据绑定; 首先获取AngularJS application: 方法一:通过controller来获取app var appElement document.querySelector([ng-controllermainCon…

web类协议脚本-飞机订票系统示例
以下是LR自带的飞机订票系统的Demo,希望能帮助大家。 Action() {int iRand;int iTmp;char *strTmpA;char *strTmpB;char *strTmpC;char *position;if ((strTmpA (char *)malloc(100 * sizeof(char))) NULL) { lr_output_message ("Insufficient memory avail…

ACCEPT()和ACCEPT4()
ACCEPT章节:Linux 程序员手册 (2) 更新:2010-09-10到 易美翻译 翻译名字accept - 通过套接口接受一个连接 概要 #include Esys/types.h> /* 参看 “注意小节” */ #include Esys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen…

没有提示_华为手机发出莫名的提示音,打开什么也没有?原来是它们在作怪
不知道你们有没有遇到过这样的情况,在使用手机的过程中会出现一个非常奇怪的现象:当你听到手机发出声音,打开手机却发现什么通知也没有?这一度让我感到很困扰,本着“打破砂锅问到底”的精神,终于让我找到了…

近段时间佛我就偶尔无
jo建瓯市金佛玩手机欧力紧凑度 我株型紧凑我阿九倨傲四局李嘉诚转载于:https://juejin.im/post/5b8e5263e51d4538e2278c9b

php内核探索方法与资源
PHP内核探索 TIPI深入理解PHP内核 风雪之隅PHP源码分析 《php扩展开发及内核应用》 百度XLQ Gods blog codinglabsPHP内核探索:从SAPI接口开始PHP内核探索:一次请求的开始与结束PHP内核探索:一次请求生命周期PHP内核探索:单进程SA…

feign调用走不走网关全局拦截_feign服务端出异常客户端处理的方法
在使用feign进行远程方法调用时,如果远程服务端方法出现异常,客户端有时需要捕获,并且把异常信息返回给前端,而如果在开启熔断之后,这个异常会被消化,所以说,如果希望拿到服务端异常,…

配置Cesium编译环境
1、安装node.js https://nodejs.org/en/ 2、配置node.js 在node.js安装目录下新建node_global、node_cache两个文件夹,并把node_global添加到环境变量 eg.D:\app\nodejs npm config set prefix D:\app\nodejs\node_global npm config set cache D:\app\nodejs\node_…

迷你世界电锯机器人_迷你世界:三分钟制作超简单飞翔石像机器人报道!
更多游戏资讯,请点击上方蓝字查询!哈喽,大家好,还记得我之前分享的超简单的石像机器人吗?不记得了吗?我再帮助大家回忆回忆,之前研游酱分享的石像机器人总共是分两篇文章,一个是不会…