STC创建流量方式有两种,一种是Bound stream,另一种是Raw stream.Bound stream流量创建方式是基于对象建流方式,流量的源和目的节点基于的对象是不同仪表端口中的提前创建好的Endpoint, Endpoint可以是普通的Device,路由协议发布的Route,或者DHCP等接入协议分配到的地址等等,报文头的源和目的MAC/VLAN/IP等属性值都是继承了Endpoint的地址,Bound
Stream最大优势是结合各种网络协议,批量的为多达几百个测试端口创建各种拓扑的复杂流量。Raw stream是在每一个port的Traffic generator下面添加的,不依赖于其他任何协议,也不需要提前创建device, 一般用于纯流量测试, 报文头的源和目的MAC/VLAN/IP等属性值也可以灵活配置,通过在报文头部的某一个字段进行递增和递减等操作,也能够构造复杂的流量模型。通过前期的文章,我们知道了如何通过向导创建BGP device和发布BGP Route,那么这一期将通过向导方式来创建基于BGP Route的Bound
Stream流量,另外后面还会讲解Raw Stream流量的创建。下面是Bound
Stream流量创建用到的测试网络拓扑图(图1)以及STC预先做好的配置(图2), STC使用4个仪表Port(port1->port4),每个Port分别创建一个BGP device ( device1->device4 ), 分别与DUT建立BGP邻居,并分别发布各两条BGP路由(1.0.0.0->4.0.1.0).源选择port1和port2
BGP route,目的选择port3和port4 BGP route, 然后左边一列依次选择Pair,
Bidirectional, one-to-one, stream only generation选项,然后点击Add, 那么下面会显示两行双向流,后面会用比较多篇幅讲解这个界面中选项的作用。3.1 端口拓扑(distribution) 选项参考了RFC2889标准,有三种拓扑(Fully meshed, Backbone, Pair)可以供选择,默认拓扑是Pair,Pair拓扑比较灵活,除了可以选择一个源端口和一个目的端口,达到端口一对一效果流量之外,也可以选择多个源端口或者多个目的端口,达到端口一对多或者多对一效果。根据测试目的选择相应拓扑,例如整机转发压力测试可以选择Fully meshed拓扑。3.2 Protocol和Encapsulation列表过滤需要显示在Source和Destination表中的Endpoints.Unidirectional是A->B单向, Bidirectional是A<->B双向每个端口一般创建有多个Endpoints, 例如Port1包含Device D1和D2, Port2包含DeviceD3和D4, 那么选择one-to-one情况下,那么流量是D1<->D3和D2<->D4,单向两条Flow(双向共四条Flow), 如果选择many-to-many那么流量是D1<->D3,D1<->D4,
D2<->D3, D2<->D4,单向四条Flow(双向八条Flow),Flow的概念下面会详细讲解。3.5 Stream only Generation选项我们首先要理解一下Flow和Stream的概念,一条Flow表示构建这条流量的OSI
L2-L7报文头部的字段是唯一的,类似唯一的IP五元组,能够区分不同的流量,DUT可以根据不同流量做出转发决策。STC可以在创建Bound Stream流量中选择不同的源和目的,或者在创建Raw Stream流量中对报文头部中的字段进行递增递减等操作,从而构造出很多不同的流量,也就是很多不同的Flow.Stream是用在统计分析中的,一条Stream包含一个唯一的Stream ID,四个字节的Stream ID包含在20字节的思博伦签名字段当中,STC收到数据包首先会检查是否有签名字段,如果有,那么就会接着检查Stream ID的值,STC会基于相同Stream ID的数据包分别进行独立的统计分析。Stream only Generation选项作用是Stream ID如何映射到Flow,例如创建了两条Flow的流量,那么如果勾选上,那么两条Flow会各有一个Stream ID, 也就是两条Stream,每条Flow都可以独立统计,如果不勾选,那么只生成一条Stream,两条Flow会共用一个Stream ID, 合并进行统计。一般的测试场景就是一条Stream会对应多条Flow,方便合并进行统计。勾选后,流量向导中的Frame界面中会显示全部的报文头,包括以太网头部。3.7 Bypass IP Subnet
Checking选项如果流量的源和目的IP不在一个网段,默认不勾选的情况下,流量的目的MAC用的是网关的MAC,如果勾选这个选项,虽然源和目的不在一个网段,但是还是使用目的IP的MAC地址。该界面可选,配置跟MPLS和SRV6协议标签绑定相关,由于现在是普通的BGP route的流量, 默认配置就行了。该界面可以配置StreamBlock的名字(1),IP 头部中protocol和QOS字段的值(2),frame
Size (Fixed, Random, Increment, Decrement, Auto, iMIX)(3),以及一些选项(4),下面会利用一些篇幅讲解这些选项。5.1 Allow port to generate traffic to itself选项有一种测试场景,Bound
Stream的源和目的节点都在同一个仪表端口,也就是流量从发送端口发出到DUT后,DUT把流量原路返回给发送端口,那么勾上这个选项才能正常进行统计。5.2 Expand Stream blocks under ports选项前面讲过了Flow和Stream的概念,这里另外还要讲一下Streamblock概念才能更好理解这个选项,StreamBlock是具有一些共性stream的集合,StreamBlock提高了STC的扩展率和操作效率,能快速方便的配置大量的流。通过这个向导创建后在Traffic
Generator主界面显示的也是一行一行的StreamBlock,一行Streamblock可能包含多条Stream。回到Endpoints界面的配置 (图17),如果端口拓扑选择Backbone, 那么Port1端口会发送流量到Port3和port4,然后这个选项选择“Multiple paths per streamblock”,那么Port1端口只生成一行Streamblock(图18),如果选择“One path per streamblock”,那么Port1端口会生成两行Streamblock(图19),分别对发往不同端口的流量单独创建一行Streamblock。5.3 High Speed Result Analysis选项勾选上,发送和接收数据流都是硬件处理;不勾选,发送和接收都是CPU软件处理。默认是勾选上的,只有特殊情况才不勾选。5.4 Enable Analyzer Preload选项勾选这个选项的目的是让接收端口知道期望收到哪条Stream的数据包,如果接收端口没有收到期望收到的某条Stream的任何数据包,那么它将会为这条Stream统计为100%丢包。勾选 “Show AllFields”显示报文头部的全部字段,Bound
Stream流量的报文头部继承了BGP
Route的Ethernet和IP头部地址属性,所以这些属性显示的是灰色,无法在这里更改,但其它字段可以进行修改,可以通过点击 “Add Header”, 添加IPV4封装的上层头部,例如TCP/UDP头。配置流量调度模式和相应的流量负载,流量调度模式分别可以配置为Port
based, Rate Based, Priority Based, Manual Based四种,具体四种详细定义需要单独另外文章展开讨论,在这里不做细谈,当前默认配置。8. Rx Port界面选择流量的接收端口(图24)该界面配置可选,添加期望收到该流量的接收端口,根据测试的需要添加,如果添加了Rx
Port并在Settings界面勾选 “collect stray frames” 选项(图25),那么如果不是期望的端口收到了该流量的数据包,这些数据包就会被统计为“stray”帧(迷失帧)。9.1 可以通过点击 “All
Stream Blocks” 查看全部端口已创建的StreamBlock(图26),或者点击各自端口下的“Traffic Generator” 查看这个端口作为发送端口的StreamBlock(图27)9.2 右键点击某条StreamBlock, 选择Preview, 可以查看这条StreamBlock包含两条Stream, 对应两条Flow (已勾选Stream
only generation)10.1 统计结果窗口依次选择“System Views”->“Streams”->“Stream Block Results”,启动BGP Device, 等BGP邻居建立完成,点击发送流量,一共有四个发送端口,每个端口一条Stream Block,那么在这个统计界面(图29)会显示四条Stream Block的统计,统计包含有丢包,乱序,重复包,时延值等等。10.2 统计结果窗口依次选择“System Views”->“Streams”-> “Detailed Stream Results”,因为每一条Streamblock包含两条Stream,那么统计界面会显示总共8条Stream的统计(图30)。通过上一节创建bound
stream流量,我们知道了Flow,Stream, Streamblock的概念,那么下面我将用Raw Stream方式建立一条Streamblock(下表), 包含三条Stream, 每一条Stream对应一条Flow.1. 占用两个仪表端口,端口1点击"Add Raw Stream Block"两个端口使用光纤直接连接,端口1作为发送流量端口,端口2作为接收统计端口2.1 General页,配置数据帧的Frame Size, Payload- Frame size:Fixed, Increment, Decrement, Random, Auto, iMIX
- Payload fill constant和Payload Fill type: Payload fill constant配置的是payload的前四个16进制数,可以填全0,全1,AAAA,5555,0F0F, FFFF,剩余的payload填充由Payload fill type决定,可以配置Constant, Increment, Decrement, PRBS
- Insert FCS error: 是否发送FCS error帧
- Include Signature Field: 发送的数据帧payload是否带20字节的思博伦签名字段
a. 默认是EthernetII+IPV4封装,可以通过删除,添加,插入,修改等操作得到需要的各种头部和字段c. 右键点击Source,选择Insert IPv4 Modifier选择increment递增,递增数目Count是3,选择Use Streams (该选项功能同Bound
Stream向导中的“Stream
only Generation”),点击OKe. 按照同样步骤给Destination添加递增选项,最终显示如下图在左右统计窗口同时打开“Stream
Block Results”和“Detail
Stream Results”在端口2中进行抓包,下面是实际发送的数据包,可以查看到是仪表是轮询着发送三条flow的数据包关键词:stc,bound stream,raw stream, stream only generation, streamblock,one-to-one, many-to-many, pair, fully meshed, backbone, flow
联系我们:
思博伦官方网站: www.spirent.cn
技术中心热线:400-810-9529
支持邮箱:support@spirent.com
售后网站:support.spirent.com
版权归思博伦通信科技(北京)有限公司所有,思博伦技术中心(SpirentServices)原创发布,转载请联系授权。
长按识别二维码,关注思博伦技术中心