如何设置IPv4和IPv6报文的DSCP值——网络测试仪实操
一、操作说明
在QoS测试中,经常要设置不同优先级的报文,来验证被测设备对于优先级的调度。所以,我们就要了解如何设置IPv6和IPv6报文中的DSCP(大部分使用DSCP值,也会用到TOS值)
这里我们使用测试接交换机,交换机转发测试仪发出的报文,我们在接收端口抓包,验证配置正确性。
二、测试拓扑

拓扑说明
1、测试仪两个端口和DUT两个端口相连
2、测试P1端口发出流量,经过DUT转发后,从B端口发出,进入P2端口。
三、测试思路
1、创建两个Port之间的流量,这里为了便捷就使用Raw流。
2、修改IPv4和IPv6报文中的DSCP值,在接收端口抓包查看DSCP字段是否符合设置预期
四、测试步骤
1、IPv4报文DSCP值设置
(1)占用端口

(2)创建流量,这里为了便捷,使用RAW流

(3)设置IPv4头部中的DSCP值。首先选在TOS或DSCP,这里我们以DSCP为例。

设置DSCP类型。这里有两个类型:CodePoint和Class Selector。

其中,Class Selector对应我们常说的AFxx

其中,CodePoint,对应我们常说的CSxx。这里根据客户要要求设定。

另外,点击QoS Edit按钮,这里可以看到DiffServ和ToS的设置,以及DiffServ下,CodePoint和Cass Selector的对应关系。

2、IPv6报文的DSCP值设置
(1)设置RAW流
(2)将IPv4头删除,添加IPv6报文头

(3)可以看到,报文头里只有Traffic Class(十进制)字段,我们就要通过设置Traffic Class字段,来实现DSCP值的设置。

这里需要注意下,我们首先看下报文中的DSCP值。Traffic Class字段有8bits,其中前6bits是DSCP值,后2bits是ECN(默认00)

因此,我们在报文编辑时填的Traffic Class数值时包括ECN的。
(4)编辑Traffic Class字段
我们先找到DSCP值10进制的编码表,例如下面这张。因为后面还有两个bit的ECN值00。所以我们把10进制的DSCP值*4,就得到了10进制的Traffic Class值。

例如,我们这里使用AF43对应10进制38, 38*4=152。

(5)发送流量,接收端口抓包,显示DSCP值为AF43

如何设置IPv4和IPv6报文的DSCP值——网络测试仪实操的更多相关文章
- RENIX报文字段跳变——网络测试仪实操
什么是报文字段跳变? 报文字段跳变是指字段的值进行一些列有规则的变化,Renix支持对字段进行递增.递减.列表和随机变化. 如当用户想要仿真大量的源IP变化的数据时,就可以使用Modifier进行规则 ...
- 配置IPv6地址跳变——网络测试仪实操
第一部分:什么是IPv6地址跳变? IPv6地址跳变是指IPv6地址进行一系列有规则的变化,Renix支持对IPv6地址进行递增.递减.列表和随机变化. 如当用户想要仿真大量的源IPv6地址变化的数据 ...
- 基于IPv6的RIPng路由协议测试——信而泰网络测试仪实操
关键词 IPv6; RIPng; 协议测试; 内部网关协议; 外部网关协议 前言:在国际性网络中,如因特网,拥有很多应用于整个网络的路由选择协议.形成网络的每一个自治系统(AS),都有属于自己的路由选 ...
- IPv6 OSPFv3路由协议测试——信而泰网络测试仪实操
关键词 IPv6; OSPFv3; OSPFv2. 前言:在网络部署中,动态路由协议是重要的组成部分.良好的路由协议,是保证网络可靠.稳定运行的基础.为了适应IPv6协议栈的变化,OSPFv3协议在保 ...
- RENIX报文两个字段嵌套变化——网络测试仪实操
RENIX软件如何实现报文中两个字段嵌套变化,以下为您实操讲解详细步骤. 1.打开Renix软件,连接机框并预约测试端口: 2.创建一条RAW流量(Binding流量也可以,这里用RAW流做例子) 3 ...
- Renix软件如何发送CRC错误的报文——网络测试仪实操
我们在日常使用Renix软件时,有时候需要发送CRC错误的报文,那么如何操作呢?接下来为你详细介绍一下操作步骤. 1.打开Renix软件,连接机框并预约测试端口: 2.添加流模板 3.给P1设置CRC ...
- Renix修改报文长度——网络测试仪实操
Renix软件修改报文长度的方式有4种,分别是固定.递增.随机和自动.接下来对这四种方式,分别配置和验证. 一.固定(fixed) 描述:流中的帧具有固定长度 1.配置fixed 64Byte 2.w ...
- RENIX发送固定个数报文——网络测试仪实操
在使用RENIX软件时,有时候我们需要发送固定个数报文,那么该如何操作呢?以下为您讲解具体操作步骤. 第一步:预约测试资源 打开Renix软件,连接机箱, 预约端口 第二步:发送固定个数的报文 选中流 ...
- RENIX操作之XML报文模板说明——网络测试仪实操
我们在网络测试仪的日常使用过程中,经常涉及到编辑和修改报文.利用RENIX软件,可以把当前编辑好的报文模板导出为XML文件,下次使用时可以直接导入使用,从而提升测试工作效率.本文以"添加UD ...
随机推荐
- Winfrom统一单例窗口
//调用方式 var frm = new MyForm().Instance(); public static class ExFrm { static Dictionary<string, F ...
- 【涨姿势】原来golang的case <-time.After(xxx)还有这样的坑
偶然看到这样一篇文章:<使用 pprof 排查 Golang 内存泄露>https://www.toutiao.com/i6881796351139676680/ 最后一段让我很疑惑: 修 ...
- (3)ESP32 Python 制作一个办公室温度计
因为经常在办公室里面不知道实际室内温度是多少,所以用ESP32做了一个工具来进行温度&湿度的监测.在之前的文章当中,已经完成了ESP32的数据上云工作,如果要进行温度/湿度的检测.从原理上就是 ...
- 话说C#程序员人手一个ORM
话说C#程序员人手一个ORM,确实没有必要再写ORM了,不过我的ORM并不是新的,是从DBHelper演化过来的,算是DBHelper魔改版. 目前流行的ORM有EF.Dapper.SqlSugar. ...
- SpringDataRedis入门到深入
一:简介 SpringDataRedis是SpringData开源项目中的一部分,它可以在Spring项目中更灵活简便的访问和操作Redis:原先在没有SpringDataRedis时往往使用Jedi ...
- JavaScripts之变量作用域提升问题(var、let、const)
变量提升(Hoisting) var: 使用var在函数或全局内任何地方声明变量相当于在其内部最顶上声明它,这种行为称为Hoisting(提升) 注意:变量赋值的位置不会改变 function fn( ...
- python 中 *args he **kwargs的区别
''' 一 *args 和 **kwargs 的区别? *args 表示任意个 无名参数, 类型是元祖 tuple. **kwargs 表示的是关键字的参数 传入的参数是 dict 类型. 当*和** ...
- mybatis 原生写法创建项目
一.创建全局文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuratio ...
- ApacheCN Asp.NET 译文集 20211126 更新
ASP.NET Core2 基础知识 零.前言 一.搭建舞台 二.控制器 三.视图 四.模型 五.验证 六.路由 七.RestBuy 八.添加功能.测试和部署 ASP.NET Core3 和 Angu ...
- ==和equeals区别以及使用场景
定义 ==:基本数据类型比较的是值或地址,引用数据类型比较的是地址. equals:在不重写的情况下,和==没有任何区别,重写,可以自定义比较规则,一般重写之后都让其比较值. Object类中的equ ...