QoS分类和标记

https://zhuanlan.zhihu.com/p/160937314

1111111

分类和标记是识别每个数据包优先级的过程。

这是QoS控制的第一步,应在源主机附近完成。

分组通常通过其分组报头来分类。下图指定的规则仔细检查了数据包头

下表列出了分类标准:

普通二层帧中是不携带有优先级字段的

VLAN帧中的优先级那就是我们通常所说的802.1p优先级(由IEEE 802.1p协议定义),位于VLAN帧

中的“802.1Q Tag”字段的“PRI”子字段中,

IEEE 802.1p是IEEE 802.1Q(VLAN标签技术

)标准的扩充协议,它们协同工作。IEEE 802.1p的出现,使得第二层交换机能够提供流量优先级和动态组播过滤服务,其中流量优先级规范工作在媒体访问控制(MAC)层,组播流量过滤功能可确保该流量不超出第二层交换网络

范围。

IEEE 802.1Q标准定义了为以太网

MAC 帧添加的标签,但并没有定义和使用优先级字段,而使用IEEE 802.1p修改后的以太网MAC帧的以太网协议

头中则定义了该字段。802.1p优先级位于二层VLAN帧头部,适用于不需要分析三层报文头,而需要在二层环境下保证QoS的场合。

4个字节的802.1Q标签头包含:

  • 2个字节的TPID(Tag Protocol Identifier,标签协议标识,取值为0x8100)
  • 2个字节的TCI(Tag Control Information,标签控制信息),参见图。

CoS

以太网帧通过指定802.1Q标头的802.1p用户优先级(CoS)进行标记。第2层以太网帧仅具有八类服务(从0到7),它们是:

TOS

1.ToS字段标的IP优先级

在早期的RFC 791标准中,IP数据包

是依赖ToS(Type of Service,服务类型)字段来标识数据优先级值的。ToS是IP数据包中的IP报头中的一个字段(共1个字节),用来指定IP包的优先级,设备会优先转发ToS值高的数据包。

ToS字段共一个字节(8位),

包括三个部分:

  1. 0~2共三位用来定义数据包的IP优先级(IP Precedence)、
  2. 3-6 共四位 ToS
  3. 一个固定为0的位

IP Precedence部分

IP优先级部分共三位,取值范围为0~7(值越大,优先级越高)。用名称表示时,这8个取值分别为,分别对应于数字0~7。

CS0.routine(普通,值为000)
CS1.priority(优先,值为001)
CS2.immediate(快速,值为010)
CS3.flash(闪速,值为011)
CS4.flash-override(急速,值为100)
CS5.critical

(关键,值为101)
CS6.internetwork control (网间控制,值为110)
CS7.network control(网络控制,值为111)

在以上IP优先级值中,6和7一般保留给网络控制数据使用,比如路由;5推荐给语音数据使用;4推荐由视频会议和视频流

使用;3推荐给语音控制数据使用;1和2推荐给数据业务使用;

0为默认标记值。在IP优先级配置时,既可以使用0~7这样的数值,也可以使用上述对应的优先级名称。

ToS部分

在IP包头的ToS字段中紧接着IP优先级字段后面的四位是ToS部分,代表需要为对应报文提供的服务类型(标识报文所注重的特性要求)。一开始,在RFC 791中是只用到了第3~5位,分别代表IP包在Delay(延时),Throughput(吞吐量

),Reliability(可靠性)这三方面的特性要求(每个报文在这三位中只有一位可能置1,此时表示IP包在对应方面有特别要求)。后来在RFC1349标准中又扩展到第6位,表示IP包在路径开销

(cost)方面的特性要求。

要注意的是,虽然ToS部分共有四位,但每个IP包中这四位中只能有一位为1,所以实际只有五个取值(包括全为0的值)。

这五个值所对应的名称和数值分别为:

  • normal(一般服务,取值为0000)、
  • min-monetary-cost(最小开销,取值为0001,确保路径开销最小)、
  • max-reliability(最高可靠性,0010,确保可靠性最高)、
  • max-throughput(最大吞吐量
  • ,取值为0100,确保传输速率最高)、
  • min-delay(最小时延,取值为1000,确保传输延时最小)。

2. DS字段的DSCP优先级和PHB

RFC 2474标准 定义了DSCP 6位 64个优先级值

重新定义了原来IP包头部的ToS字段,并改称之为DS(Differentiated Services,差分服务)

第0~5位(共六位)用来表示DSCP(Differentiated Services Code Point,差分服务代码点)优先级,取值范围为0~63,共能标识出64个优先级值(值越大,优先级越高),最后两位保留,用于显示拥塞通知(Explicit Congestion Notification,ECN)

IETF RFC 2597标准 定义了PHB 5位 3(PHB Class)+2(PHB Class Selector)

定义了PHB(Per-Hop Behavior),通过PHB值可以确定在网关处对IP包的转发行为。

  1. DSCP优先级部分的第0~4位来标识的,
  2. 0~2位用来标识PHB类别(PHB Class)值,共8个值,对应表示为CS0~CS7。
  3. 3~4位用来标识PHB类别选择值(PHB Class Selector),

PHB值=类别值+PHB类别选择值。

DSCP值

=PHB的五位+第5位(固定为0),但在PHB类别中的三位不能全为0。

在RFC 2597中定义了四种确保转发(Assured Forwarding,AF)PHB组(称之为AF PHB)。

  1. DS字段中的第0~2位定义PHB类别,
  2. DS字段中的第3和4位代表报文的“丢弃优先级”,用AF(x,y)表示,其中x表示流分类,y表示对应的丢弃优先级。

【说明】所谓“确保转发”就是允许管理员在没有超过线路允许速率的情况下提供尽可能的传输质量保证,但如果超出用户线路速率则可能在出现拥塞时丢弃数据包。

  • 3位理论有8个,但只定义4个 PHB Class 1,2,3,4
  • 2位理论有4个,但只定义3个 PHB Class Selector 取非0的三个值

在确保转发PHB中,定义了四种PHB类别(也即“流分类”),它们的值分别为001、010、011和100(对应CS1~CS4),它们本身代表了流的不同优先级(值越大转发优先级越高),

然后通过第3和4位的丢弃优先级值(取非0的三个值,分别为01、10和11,值越大丢弃优先级越高)进一步区分同一类流不同IP包

的丢弃优先级。

它们共同针对四种PHB分类组成了四组AF等级,它们所对应的AF值和对应的DSCP值如表10-1所示(此时第5位的值固定为0)。

表10-1 四组AF PHB等级

丢弃优先级

Class 1

Class 2

Class 3

Class 4

低丢弃优先级

AF11 (DSCP 10):001010

AF21 (DSCP 18):010010

AF31 (DSCP 26):011010

AF41 (DSCP 34):100010

中丢弃优先级

AF12 (DSCP 12):001100

AF22 (DSCP 20):010100

AF32 (DSCP 28):011100

AF42 (DSCP 36):100100

高丢弃优先级

AF13 (DSCP 14):001110

AF23 (DSCP 22):010110

AF33 (DSCP 30):011110

AF43 (DSCP 38):100110

再后来在RFC 3246标准中,又定义一个加速转发(Expedited Forwarding,EF)PHB,对应CS5,即在DS字段中的第0~2位取值为101,第3~4位取值固定为11,第5位固定为0,这样一来对应的DSCP值就为46(101110)。EF PHB具有低延时、低开销和低抖动特性,适用于语音、视频和其他实时服务,一般具有比其他通信类型更加优先的队列。

除了前面介绍的AF和EF外,还有一个缺省的PHB,那就是BE尽力服务类型,它所对应的DSCP值为000000,即十进制的0。另外还定义了CS6和CS7,CS6用于网间控制,对应的DSCP为110000,即十进制的48;CS7用于网内控制,对应的DSCP值为111000,即十进制的56。

在配置DSCP优先级时,既可以使用对应的DSCP名称,如CS6、CS7、AF11、AF12(在CS1~CS4中每个包含了一组DSCP值,所以要指定具体的DSCP名称),又可使用对应的DSCP十进制值,如48、56等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64370.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电机控制杂谈(23)——共模电压与轴电流

1.共模电压与轴电流的关系和危害 对于电压源换流器,由于功率半导体器件的快速开关和PWM调制方案,将在电机定子绕组的中性点(N)和接地点(O)之间产生高频共模电压(Common-mode voltage&#xff0…

FPGA设计-使用 lspci 和 setpci 调试xilinx的PCIe 问题

目录 简介 lspci lspci-TV lspci-vvv 注意事项 lspci -vs lspci -vvvs 设置pci 识别setpci中的寄存器 setpci -s 00:01.0 d0.b42 简介 lspci 和 setpci 命令在 Linux 发行版中本身可用。该命令具有各种级别的输出,并提供非常有用的时间点查看 PCI 总线…

vue+node+mysql8.0,详细步骤及报错解决方案

1.下载需要安装的插件 下载express npm install express下载cors,用于处理接口跨域问题 npm install cors下载mysql npm install mysql 2.配置服务器 可以在vue项目的src同级创建server文件夹(这里的位置可随意选择) 然后依次创建&#…

并发修改导致MVCC脏写问题

并发修改导致MVCC脏写问题 一、概要 1.1 业务场景 数据库表结构设计: 一个主档数据,通过一个字段,逗号分隔的方式去关联其他明细信息的id。 如主档数据A,有3条明细数据与A关联,其id分别是1,2,3,那么其存…

SSE(Server-Sent Events)主动推送消息

说明 使用Java开发web应用,大多数时候我们提供的接口返回数据都是一次性完整返回。有些时候,我们也需要提供流式接口持续写出数据,以下提供一种简单的方式。 SSE(Server-Sent Events) SSE 是一种允许服务器单向发送事…

Java四大内部类之局部内部类、匿名内部类

目录 一、局部内部类 二、匿名内部类 基于接口的匿名内部类 基于类的匿名内部类 三、匿名内部类的实践 类的五大成员:属性、方法、构造器、代码块、内部类 内部类的分类 定义在外部类局部位置上(比如说方法内): 局部内部类&…

请求go web后端接口 java安卓端播放视频

前端代码 添加gradle依赖 implementation com.squareup.retrofit2:retrofit:2.9.0 implementation com.squareup.retrofit2:converter-gson:2.9.0 添加访问网络权限 <uses-permission android:name"android.permission.INTERNET" />允许http 请求请求 andro…

ARMS 用户体验监控正式发布原生鸿蒙应用 SDK

作者&#xff1a;羿莉 背景 对企业数据进行敏感数据扫描和保护可以提升企业或组织的数据安全。一方面敏感数据可能包括个人身份信息、财务记录、医疗记录等&#xff0c;定期扫描这些数据可以防止未经授权的访问和泄露。 另一方面&#xff0c;许多国家和地区都有关于数据保护的…

CSS学习记录14

CSS不透明度 opacity属性指定元素的不透明度/透明度。opacity属性的取值范围为0.0 ~ 1.0。 值越低&#xff0c;越透明&#xff1a; img {opacity: 0.5; } opacity属性通常与:hover选择器一同使用&#xff0c;这样就可以在鼠标悬停时更改不透明度&#xff1a; img {opacity: 0…

【YashanDB知识库】如何处理yasql输入交互模式下单行字符总量超过限制4000字节

现象 在yasql执行sql语句后报错&#xff1a;YASQL-00021 input line overflow (>4000 byte at line 4) 原因 yasql在交互模式模式下单行字符总量限制4000字节&#xff0c;超出该限制即报错。 交互式模式下&#xff0c;yasql会显示一个提示符&#xff0c;通常是 SQL>…

为何ZLG致远电子要推出LGA嵌入式核心板?

LGA嵌入式核心板究竟有什么好&#xff1f;能让ZLG致远电子陆续推出了5个系列12个型号的LGA嵌入式核心板。 到目前为止&#xff0c;ZLG致远电子一共推出了M1106/M1107、M1126、M6Y2C、 A6Y2C、MR6450等5个系列&#xff0c;共12个型号的LGA形态的嵌入式核心板&#xff0c;涵盖了A…

C++小白实习日记——Pollnet,Efvi,UDP,数据类型转换(下)

内容太多了&#xff0c;这篇记录UDP接收端 一&#xff0c;UDP接收端接收数据 有了pollnet这个开源项目的支持&#xff0c;接收端的步骤为&#xff1a;1&#xff09;初始化硬编码的参数&#xff1a;接口&#xff0c;IP和端口 2&#xff09;创建接收文件.csv 3&#xff09;读…

【ROS2】坐标TF入门

1、简介 1)定义: TF(TransForm)是用于坐标系管理的工具,它提供了快速、高效的坐标变换和时间同步功能。 2)坐标系 坐标系:在机器人系统中,存在多个坐标系,如基坐标系(Base Frame)、世界坐标系(World Frame)、工具坐标系、工件坐标系等。这些坐标系之间的关系在机…

剑指Offer 03比特位计数

只是记录 题目链接 题目链接 自己想出来的 第一种解法 思路简述 遍历[0,n]之间的数字&#xff0c;对于每一个数字按照二进制的方式展开&#xff0c;判断最低位置是否为1&#xff0c;若为1则1&#xff0c;反之不加&#xff0c;直到该数字等于0就停止。 public static int[] …

某j 全局控制输入框不能输入表情符

在FormItem.vue文件中的function handleRules()添加两处表情正则校验&#xff0c;代码如下 效果&#xff1a; function handleRules(): ValidationRule[] {const { rules: defRules [], component, rulesMessageJoinLabel, label, dynamicRules, required } props.schema;if…

java中File类

1、介绍 File类定义了一些与平台无关的方法来操作文件&#xff0c;可以通过调用File类中的方法&#xff0c;实现创建、删除、重命名文件等操作。File类的对象主要用来获取文件本身的一些信息&#xff0c;如文件所在的目录、文件长度、文件读写权限等。数据流可以将数据写入到文…

Linux高性能服务器编程 | 读书笔记 | 10. 高性能I/O框架库Libevent

10. 高性能I/O框架库Libevent Linux服务器程序必须处理三类事件&#xff08;I/O、信号和定时事件&#xff09;&#xff0c;在处理这三类事件时需要考虑以下问题&#xff1a; **统一事件源。**统一处理这三类事件既能使代码简单易懂&#xff0c;又能避免一些潜在的逻辑错误。实…

Javaweb web后端maven介绍作用安装

自动导入到这个项目 src是源代码 main主程序&#xff0c;核心代码 java是Java源代码 resources是项目配置文件 test测试相关的 maven概述 介绍 依赖在本地仓库查找&#xff0c;如果本地仓库有&#xff0c;用本地仓库的依赖&#xff0c;本地没有&#xff0c;连接中央仓库&…

wazuh-modules-sca-scan

sca模块主函数wm_sca_main -> wm_sca_start 检查policy文件中的每一个项目wm_sca_check_policy static int wm_sca_check_policy(const cJSON * const policy, const cJSON * const checks, OSHash *global_check_list) {if(!policy) {return 1;}const cJSON * const id c…

基于单片机的智能窗帘(论文+源码)

1.系统设计 本课题智能窗帘系统的设计主要包括STM32单片机主控模块&#xff0c;光照检测模块&#xff0c;窗帘控制模块&#xff0c;键盘控制模块&#xff0c;显示模块和时钟模块等几个部分。总体设计框图如图2.1所示&#xff0c;其可以实现对当前光照强度的实时检测&#xff0…