3. 流量分类与标记技术:DSCP与802.1p优先级、基于应用的流量分类、在边缘节点实现流量标记
好,咱们接着聊QoS保障机制里最基础、也最关键的一步——流量分类与标记。
说白了,你连流量是什么都不知道,怎么给它提供差异化服务?对吧。我刚开始接触边缘计算那会儿,就犯过这个错。上来就配队列、调带宽,结果发现该丢的包一个没少,不该丢的反而丢了。后来才明白,分类和标记才是QoS的起点。
3.1 DSCP与802.1p优先级
这两个东西,是网络世界里最常用的“标签”。
DSCP(差分服务代码点),工作在IP层。它用IP头部的ToS字段里的6个bit,定义了64种不同的服务等级。你想想看,64种,足够把大部分业务场景都覆盖了。
我个人习惯把DSCP分成几大类:
- EF(加速转发):用于语音、视频会议这类对延迟极度敏感的业务。它的DSCP值是46(二进制101110)。
- AF(确保转发):分4个等级,每个等级又有3个丢弃优先级。比如AF41、AF42、AF43。适合视频流、关键数据。
- BE(尽力而为):默认值0。普通上网、文件下载就用这个。
802.1p呢,工作在二层(数据链路层)。它在VLAN标签里用了3个bit,所以只能定义8个优先级(0到7)。
嗯,这里要注意:DSCP和802.1p不是互斥的,而是配合使用的。我在项目中遇到过,有些交换机只看二层标记,有些路由器只看三层标记。所以,建议在边缘节点同时打上两种标记,确保端到端的QoS策略能生效。
核心要点:
- DSCP:64个等级,三层标记,适合广域网
- 802.1p:8个等级,二层标记,适合局域网
- 最佳实践:边缘节点入方向,同时标记DSCP和802.1p
3.2 基于应用的流量分类
光靠DSCP和802.1p还不够。为什么?因为很多流量进来的时候,根本没有标记。比如一个普通的HTTP请求,它默认就是BE(尽力而为)。
这时候,就需要基于应用的流量分类。说白了,就是让边缘节点“看懂”流量里装的是什么。
常用的方法有:
- 五元组匹配:源IP、目的IP、源端口、目的端口、协议号。简单粗暴,但遇到动态端口就抓瞎了。
- 深度包检测(DPI):直接看应用层的内容。比如识别出这是Zoom的视频流,还是微信的语音通话。我建议在边缘节点部署轻量级的DPI引擎,效果很好。
- 特征指纹识别:有些应用有固定的握手包或行为模式。比如某些工业协议,数据包大小和间隔都很固定。
我曾经在一个智慧工厂项目里,就靠DPI把PLC的控制指令和监控视频流区分开。控制指令走EF队列,视频走AF队列。结果呢?控制指令的延迟从50ms降到了5ms以内。这就是分类的价值。
避坑指南:
我曾经遇到过,DPI引擎把加密流量全部分成了“未知”。后来发现,需要配合TLS指纹识别才能准确分类。所以,别迷信单一的分类手段,多种方法组合才是王道。
3.3 在边缘节点实现流量标记
好,理论说完了,咱们看看怎么落地。边缘节点是实现流量标记的最佳位置。为什么?因为流量在这里“刚刚进来”,还没被各种策略折腾过。
我一般用iptables + tc的组合,或者直接用eBPF来做。下面给个简单的例子,用iptables给视频流量打上DSCP标记:
# 识别视频流量(假设端口是554,RTSP协议)
iptables -t mangle -A PREROUTING -p tcp --dport 554 -j DSCP --set-dscp-class AF41
# 识别语音流量(假设端口是5060,SIP协议)
iptables -t mangle -A PREROUTING -p udp --dport 5060 -j DSCP --set-dscp-class EF
# 同时打上802.1p标记(需要网卡支持)
# 这里用vconfig或者ip link命令设置优先级映射
ip link set eth0.100 type vlan egress-qos-map 0:0 1:1 2:2 3:3 4:4 5:5 6:6 7:7
嗯,这里要注意:标记要在入方向做,不要在出方向做。出方向做标记,往往已经晚了,队列已经排满了。
另外,我建议在边缘节点上维护一张流量分类映射表,方便后期调整。比如:
| 应用类型 | 识别方式 | DSCP标记 | 802.1p优先级 |
|---|---|---|---|
| 语音通话 | 端口5060/5061 | EF (46) | 5 |
| 视频会议 | DPI识别Zoom/Teams | AF41 (34) | 4 |
| 工业控制 | 五元组+固定包长 | CS6 (48) | 6 |
| 普通数据 | 默认 | BE (0) | 0 |
警告:
别把所有流量都打上高优先级!我见过有人把P2P下载也标记成EF,结果整个网络都崩了。高优先级是稀缺资源,要用在刀刃上。
最后说一句,流量标记不是一劳永逸的。网络环境在变,应用在变,你的分类策略也得跟着变。我建议每季度做一次流量审计,看看哪些应用变了,哪些标记需要调整。这样才能保证QoS策略始终有效。
好,这一章就到这里。下一章咱们聊聊队列调度与拥塞管理,看看标记好的流量怎么被“区别对待”。