QoS中ToS和CoS的区别?802.1p、ip pri、dscp的区别?

Q:
QoS中ToS和CoS的区别?802.1p、ip pri、dscp的区别?
告警信息

原因分析

处理过程
A:
谈到qos首先需要了解qos调度的几个重要过程,qos调度过程包括网络入口数据流量的分类和标记、骨干网设备上的拥塞避免和拥塞管理、网路出口的队列调度这几个重要过程.
1、cos和tos的区别:
通过acl对流量进行分类以后,紧接着就需要对报文进行标记,打标记可以在三层(ip)报文头上做,也可以在二层报文头上做.
tos(type of service)就是指在三层报文头(即ip头)作标记,cos(code of service)则是在二层报文头作标记,tos与cos只是qos的一种标记机制。
2、802.1p、ip preference、tos、dscp的区别:
(1)、802.1p:
当需要在二层报文头做标记的时候,由于单纯二层报文没有地方能打标记,二层打标记只能在trunk上完成,trunk要用到802.1q或isl协议,如果使用的是802.1q协议,标记会打在802.1q协议头的tci字段上,打了标记(优先级)后的报文,就称为802.1p报文了。
二层报文头:
dasadatafcs
 
802.1q报文头:
dasatpid
2byte
tci
2byte
ptdatafcs
 
tci字段结构:
tci
pri
3 bits
cfi
1 bit
vlan id
12 bits
 
tpid字段标识此报文是802.1q报文,tci字段有3bit是用来标记优先级的,如果标记了优先级就称为802.1p报文了。
(2)、ip preference和tos:
ip报文结构如下:
versionihltype of servicepacket length
identificationflagfrag offset
time to liveprotocolheader checksum
source address
destination address
optionspadding
      
ip报文头的type of sevice字段长度为1个字节,其中高3 bit用来标记优先级,所以有0-7共8个ip preference级别。
type of service字段的中间4bit为tos子字段,最低1bit未用但必须置0。4bit的tos分别代表:最小时延、最大吞吐量、最小费用和最高可靠性。4bit中只能将其中1bit置1。如果所有4bit均为0,那么就表示是普通服务。type of service字段结构如下:
type of service
xxxdelaytroughputcostrely0
ip preferencetos长置0
 
(3)、dscp:
为了更精细化的控制数据流分类,rfc2474定义了dscp(differential services code point),dscp扩展了type of service 字段的高6 bit来表示报文优先级,因此,标记范围从0-63。type of service字段结构如下:
type of service
xxxxxx00
ip preference长置0
 
dscp定义了四个系列,default、cs系列、af系列、ef系列。
①、default:
就是默认的不做优先级,即ip preference字段都是0。
type of service
00000000
ip preference长置0
 
②、cs系列:
rfc2474 定义最高3比特为级别/类别选择代码(class selector codepoints,cs),其意义和ipv4报头中ip优先级的定义是相同的,cs0 ~ cs7的级别相当于ip优先级0 ~ 7。但它并没有定义第3到第5比特的具体含义以及使用规则。dscp使用6比特,可以定义64个优先级(0-63)。cs系列ip报文中type of service字段结构如下:
 
type of service
00100000
ip preference长置0
 
.
.
.
type of service
11100000
ip preference长置0
 
cs = 6 网间控制(internetwork control), dscp= 48 (110000).路由协议优先级默认是cs6。
cs = 7 网内控制 (intranetwork control), dscp= 56 (111000)
③、af:
保证转发(assured forwarding, af)由rfc2597对cs1~cs4进行进一步定义。它使用第3和第4比特做丢弃优先级标志。01-低丢弃优先级;10-中丢弃优先级;11-高丢弃优先级。这样,在同一类数据中,又根据被丢弃的可能性划分出3个级别。af11~af13,af21~af23,af31~af33,af41~af43.下表列出了af服务等级及其对应的dscp值:
 cs1
00100
cs2
01000
cs3
01100
cs4
10000
low drop
01
af11
00101
af21
01001
af31
01101
af41
10001
medium drop
10
af12
00110
af22
01010
af32
01110
af42
10010
high drop
11
af13
00111
af23
01011
af33
01111
af43
10011
 
④、ef:
由rfc2598定义,dscp值为46 (101110)。ef服务适用于低丢包率,低延迟,低抖动及保证带宽的业务,voip默认级别是ef。
### 如何为生成的CNP设置802.1p优先级 在网络环境中,IEEE 802.1p 是一种用于标记数据包优先级的标准协议。它通过在以太网帧头中插入一个3比特字段来定义八个不同的优先级级别 (0到7),从而实现流量分类优先级管理。 对于 Kubernetes 中的容器网络接口(Container Network Interface, CNI),如果希望为其生成的 CNP(Custom Networking Policy)应用 802.1p 优先级,则需要考虑以下几个方面: #### 1. **确认支持 IEEE 802.1Q VLAN 的环境** 为了能够配置 802.1p 优先级,底层物理网络设备以及虚拟交换机(如 Open vSwitch 或 Linux Bridge)必须支持 IEEE 802.1Q VLAN 功能。这是因为 802.1p 优先级通常嵌入在 802.1Q 帧头部中[^1]。 #### 2. **调整 Pod 网络接口的 QoS 参数** 可以通过修改 Pod 所使用的网络接口参数来指定 802.1p 优先级。具体操作如下: - 使用 `tc` 工具(Traffic Control)对特定网络接口进行队列管理优先级设定。 以下是基于 Linux 的命令示例,展示如何为某个网络接口设置 802.1p 优先级: ```bash # 创建一个新的 classful qdisc 类型 pfifo_fast 并绑定到 eth0 接口上 tc qdisc add dev eth0 root handle 1: prio # 添加一个过滤器规则,将具有特定 TOS/DSCP 标记的数据包映射到相应的优先级队列 tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dscp 0xe0 flowid 1:1 ``` 上述脚本中的 `flowid` 定义了不同类型的流量应该进入哪个优先级队列。例如,“1:1”表示最高优先级队列[^2]。 #### 3. **集成至 CNI 插件配置文件** 某些高级 CNI 插件允许直接在其 YAML 配置文件中声明服务质量(QoS)策略。假设您正在使用 Calico 或 Flannel 这样的插件,可以尝试扩展其功能或者替换为更灵活的支持自定义选项的替代品,比如 Multus-CNI SR-IOV-Network-DPDK。 下面是一个简单的例子,说明如何利用 Multus 来附加额外的 NIC 到 Pods 上,并同时指定了该子网内的默认 DSCP/TOS 字段值作为间接影响最终转换成的 802.1p Priority Level: ```yaml apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: sriov-network spec: config: '{ "cniVersion": "0.3.1", "name": "mynet", "type": "macvlan", "mode": "bridge", "ipam": { "type": "host-local", "subnet": "192.168.1.0/24", "rangeStart": "192.168.1.100", "rangeEnd": "192.168.1.200", "gateway": "192.168.1.1" }, "mtu": 1500, "capabilities": {"portMappings": true}, "args": ["dscp=af41"] # This maps to an equivalent 802.1p value. }' ``` 此片段里的 `"args"` 键传递了一个名为 `dscp=af41` 的参数给 macvlan 插件实例化过程,这一步骤实际上就是为了让后续产生的所有通信都携带 AF41 类别的服务等级指示符,进而被下游硬件解析并转化为对应的 P-bit 数字编码. --- ### 总结 要成功实施针对由 K8S 生产出来的 CNPs 加载有恰当的 802.1p Priorities 设置,需从基础架构层面确保兼容性;接着借助操作系统级别的工具像 Traffic Controller (`tc`) 对单个端点执行精细化调控;最后探索主流 CNI 解决方案是否具备内置机制满足需求或是开放 API 让开发者自行定制逻辑链路行为模式。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值