赞
踩
为了配合TSN网关的流量调度,终端设备上的IPv4网络通信有3种QoS优先级标签方式,基于二层的COS字段(配合VLAN ID),基于三层的IP TOS 和 IP DSCP,需要实际验证Xavier QNX平台如何支持,以及ADU经网关实现异构网络传输时是否有效果(按优先级转发).
1、802.1P优先级(有时也称COS优先级):
802.1p用户优先级定义在二层802.1Q 标签头中的TCI字段中。和VLAN ID一起使用,位于高位起16-18bit字段,长度3bit,取值范围0-7,0优先级最低,7优先级最高
TPID(Tag ProtocolIdentifier标签协议标识):2字节的定值0X8100,表明这是一个加了802.1Q标签的帧。
TCI(Tag Control Information):2字节,包含了帧的控制信息
Priority:802.1P优先级,3bit,取值0-7
CFI:1bit,暂时保留未用,为0说明是规范格式,1为非规范格式,被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息。
VLANID:12bit,取值范围0-4095,由于0 和4095保留,实际取值范围是1-4094,每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN
2、IP优先级和TOS优先级:
IP优先级定义在三层IP报文头中的TOS字段(8bit)中,占据高位的3bit,取值范围0-7,0优先级最低,7优先级最高
IPV4的报文格式:
如上图所示,IPV4的报文头重包含一个8-bit的TOS(服务类型)优先级区域,它通常被分为precedence部分(IP优先级)-前3bit和TOS优先级(紧接着的4bit),最后一位作保留;格式如下:
起初,该字段定义如下(RFC1349):
IP优先级具体取值及含义如下:
111-Network Control 网络控制
110 -Internetwork Control 网间控制
101 -Critic 关键
100 - FlashOverride 疾速
011 -Flash 闪速
010 -Immediate快速
001 -Priority 优先
000 -Routine 普通
优先级6和7一般保留给网络控制数据使用,比如路由。
优先级5推荐给语音数据使用。
优先级4由视频会议和视频流使用。
优先级3给语音控制数据使用。
优先级1和2给数据业务使用。
优先级0为缺省标记值。
在标记数据时,既可以使用数值,也可以使用名称(英文名称)。
3、DSCP优先级:
由于对区分服务类型的多样化的要求,IP优先级的8个优先级是远远不够的,在之后的RFC文档中对TOS字段进行了重新的分配,命名为DSCP,DSCP优先级是把整个8位的前6位重新定义了一下,称为DSCP优先级,取值范围0-63,0优先级最低,63优先级最高。COS TOS DHCP通常要做映射机制。
由于DSCP和IP PRECEDENCE是共存的于是存在了一些兼容性的问题,而且DSCP的可读性比较差,比如DSCP 43(101011)我们并不知道对应着IP PRECEDENCE的什么取值,于是就把DSCP进行了进一步的分类。目前定义的DSCP总共分成了4类(64个优先级并未用完):
类选择器 Class Selector(CS) aaa 000
加速转发 Expedited Forwarding(EF) 101 110
确保转发 Assured Forwarding(AF) aaa bb0
尽力而为 Default(BE) 000 000
https://www.cnblogs.com/zandon/p/11923607.html
(4)IP precedence和DSCP的对应
来自 https://blog.csdn.net/Mr_zhangtf/article/details/107925938
TOS和DSCP是三层协议(IP层)中的字段;
COS是二层协议中的字段;
映射,COS到DSCP的映射(二层与三层之间的映射)
查看命令:
这是个二维阵列表,d1 列代表DSCP值的十位数,d2 行代表DSCP值的个位数。在列与行交叉的位置上显示的是映射到该DSCP值上的CoS值。
比如DSCP值08(十进制)(D1=0,D2=8)交叉值是01,就表示对应的COS 值是01.
再比如:比如DSCP值0x30=48–>(D1=4,D2=8)
IP-Precedence到DSCP的映射(Tos–>DSCP,不同三层之间的映射)
默认的IP-Precedence-to-DSCP映射关系如下。
在实施Qos策略时,Cos与Tos或DSCP之间通常要做映射机制。
具体实现方法是企业为分类制定明确的交付目标。路由器和其它设备可以通过数据包队列(本质上就是缓冲区)和相应算法,传递数据包,实现交付目标。
不同的报文使用不同的QOS优先级,例如VLAN报文使用802.1p,IP报文使用DSCP,MPLS报文使用EXP。当报文经过不同网络是,为了保持报文的优先级,需要在连接不同网络的网关处配置这些优先级标记的映射关系。
为了保证不同的报文的服务质量,在报文进入设备时,需要将报文携带的优先级映射到本地优先级LP(即设备为报文分配的一种具有本地意义的优先级,对应出端口队列序号);在报文出设备时,可以将本地优先级映射为QOS优先级或者直接重标记报文优先级,以便后续网络设备能够根据QOS优先级提供相应的服务质量。
报文数据流进入设备端口之后,设备会根据端口配置的信任模式来分配报文的各类优先级。端口的信任模式如下,对于二层网络中的报文,可以选择信任802.1p模式;对于三层网络中的报文,可以选择信任DSCP模式
使用端口的优先级
缺省情况下,端口模式为不信任报文优先级,即使用端口优先级,按照端口的优先级,根据映射表为报文分配优先级。
信任DSCP模式
配置为信任DSCP优先级时,根据报文的DSCP优先级作为索引,查看DSCP映射表,得到报文的802.1p、DSCP、LP优先级,在设备内转发的时候使用LP作为拥塞处理的优先级值。当报文从设备转发出去时,把映射后的优先级更新到出报文的VLAN Tag、IP DSCP字段。
信任802.1p模式
配置为信任 802.1P 优先级时,根据报文的 802.1P 优先级作为索引,查看802.1P映射表,得到报文的 802.1P、DSCP、LP 优先级,在设备内转发的时候使用 LP 作为拥塞处理的优先级值。当报文从设备转发出去时,把映射后的优先级更新到出报文的 VLAN tag、IP、或DSCP 字段。
设置优先级后,高优先级报文应保证其确定性。
测试方法:低优先级一直发送,发送char buffer[10000]的数据,占满带宽(千兆以太网,流量是150MB/s),高优先级10ms周期发送。测一下接收端高优先级的报文周期是否稳定。
用发送、接收两边抓包的方式做对比。
如果在接收端代码中打印计数,可能会有实际接收到了报文,但是刷新不过来,会漏掉接收报文的打印。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。