首页 › deep-tech › 图解QoS:数据包的三六九等

图解QoS:数据包的三六九等

一、从一个日常场景说起

你在地铁上刷短视频,画面偶尔糊一下,你忍了;但如果你在打网络电话,声音一卡一卡的,你大概会立刻挂断重拨。同样是一根5G管道、同样的信号强度,为什么你对两类流量的“容忍度”天差地别?

因为视频流丢了几个包、晚到了几百毫秒,画质降一档而已;而语音通话是实时对话,超过200毫秒的延迟就会让人感觉“对不上话”,丢包率高了就是“吃字”。这两类流量对网络的要求,从出生那一刻起就不是一个量级的。

问题的本质在于:蜂窝网络的空口资源是所有用户共享的稀缺品。基站就像一个只有一个窗口的银行柜台,大家排队办理。如果所有人都老老实实排队(这叫统计复用,是蜂窝网络提效的根基),那下载大文件的用户和打语音电话的用户待遇完全一样——这对语音用户是灾难。

所以网络必须引入一套机制,回答三个问题:谁优先?给谁保底?紧急时谁可以让路? 这套机制就是QoS(Quality of Service,服务质量)。而5G把这套机制设计得比4G更灵活、更细粒度,本文就把它一层层拆开看。

二、先建立全局图:会话、流、承载三层结构

理解5G QoS,最忌讳一上来就背参数表。先看骨架,5G的用户数据通道是三层嵌套的结构,用快递行业类比非常贴切:

三者的关系如下图:

flowchart TD
    P["PDU会话 一份服务合同"] --> Q1["QoS流1 语音 5QI=1"]
    P --> Q2["QoS流2 IMS信令 5QI=5"]
    P --> Q3["QoS流3 普通上网 5QI=9"]
    Q1 --> D1["DRB1 专车直送"]
    Q2 --> D2["DRB2 合并配送"]
    Q3 --> D2
    D1 --> AIR["空口无线资源"]
    D2 --> AIR

注意两个容易混淆的点:

  1. QoS流和DRB不是一对一。基站有权把多条QoS流“合并装车”到同一条DRB上,只要它们的待遇相近。流是“账面等级”,承载是“物理运力”。
  2. 5G比4G拆得更细。4G时代对应的概念叫EPS承载(EPS Bearer),整条通道绑死一个QoS等级;5G把它拆成轻量的“流”,手机里同时跑十几个QoS流是常态。这样设计的原因是:5G网络控制面和用户面分离后,QoS标记可以放在用户面设备(UPF)上执行,加一条新等级的流不需要重建整条通道,信令开销大幅下降。

那么,QoS流身上的QFI编号,是怎么和一整套“待遇标准”挂上钩的?这就引出了本文的主角——5QI。

三、5QI:一个编号背后的“套餐”

为什么不直接下发参数,而要用编号?

给一条流定义服务质量,至少要说清四件事:时延不能超过多少、丢包率容忍多少、优先级多高、要不要保底带宽。理论上,网络可以给每条流都下发一组完整参数。

但这样做有两个明显弊端:一是信令冗长,每条流都要传一长串参数;二是各家各话,如果运营商A定义的“游戏套餐”和运营商B的参数组合不一样,漫游和跨网业务就没法保证体验。

于是标准组织想了个办法:把常用的参数组合编成号。就像快餐店的“1号套餐”,收银员只喊一声“1号”,后厨就知道是汉堡加薯条加可乐。5QI=1就代表“会话级语音”这一整套待遇,5QI=9就代表“普通互联网流量”的默认待遇。一个编号代替一整包参数,信令短了,全球互通体验也锁死了。

标准5QI套餐表(节选常用值)

5QI 资源类型 优先级 时延预算PDB 丢包率PELR 典型业务
1 GBR 20 100 ms 10⁻² VoNR语音通话
2 GBR 40 150 ms 10⁻³ 视频通话
3 GBR 30 50 ms 10⁻³ 实时游戏、车联网
4 GBR 50 300 ms 10⁻⁶ 点播视频(非对话)
5 非GBR 10 100 ms 10⁻⁶ IMS信令
6 非GBR 60 300 ms 10⁻⁶ 在线视频、TCP业务
7 非GBR 70 100 ms 10⁻³ 直播、互动游戏
8 非GBR 80 300 ms 10⁻⁶ 默认互联网流量
9 非GBR 90 300 ms 10⁻⁶ 默认互联网(国内现网主流)

读这张表有三个“为什么”值得咀嚼:

为什么语音的丢包率敢放宽到10⁻²(每百个包丢一个)? 因为语音编码天生带冗余,丢一个包,解码端可以用前后帧“脑补”出来,人耳几乎无感;反而如果为了追零丢包而引入重传,时延爆炸才是致命的。而普通上网(5QI=9)要求10⁻⁶,因为TCP/QUIC一个字节都不能错,宁可重传也不能丢。

为什么IMS信令(5QI=5)是非GBR里优先级最高的(10)? 信令流量很小,但它是“打电话这个动作”本身的控制通道——振铃、接听、挂断全靠它。给保底带宽太浪费(它不占多少资源),但排队时必须让它永远插队最前面。

为什么点播视频(5QI=4)的时延预算高达300ms? 因为它是“非对话”业务——服务器先把几百毫秒的内容缓冲在手机里,网络抖一点完全被缓冲池吸收了。而直播(5QI=7)为了追近实时,时延预算收紧到100ms,代价是丢包率容忍也从10⁻⁶放宽到10⁻³。

除了这套“标准套餐”,系统还支持动态5QI:编号之外直接携带完整参数组合,供特殊行业定制(如电网差动保护对时延有极端要求)。代价是失去了互操作便利,一般只在你自己的封闭网络里玩。

四、GBR与非GBR:包下的专座和排队上车

5QI表里第一列“资源类型”才是整个QoS体系的分水岭:GBR(Guaranteed Bit Rate,保证比特率)和非GBR,走的是完全不同的两条管理逻辑。

非GBR:共享经济的逻辑

非GBR流没有任何保底承诺。它能用多少带宽,取决于当期小区忙不忙:空闲时随便跑,拥塞时被挤压。它的“上限”由两个AMBR(聚合最大比特率)管着——Session-AMBR限制单个PDU会话的总流量,UE-AMBR限制这部手机所有会话加起来的总量。这就是你手机上显示的“达量限速”类策略的技术落点。

设计逻辑很直白:上网、下载这类业务,用户对瞬时速率没有刚性预期,晚三秒收到网页和晚五秒收到,差别不大。与其浪费资源做承诺,不如让它们弹性共享。

GBR:专座必须先确认有票

GBR流则完全相反:网络必须先做准入控制(Admission Control),承诺了就必须兑现。一条GBR流带着两个关键参数出生:

两者满足 $GFBR \le MFBR$。准入控制的过程像餐厅订位:来了一位订了包间的客人(新GBR流),领班必须先看包间还空不空,而不是让他和大堂客人挤:

flowchart TD
    A["新GBR流请求到达"] --> B{"空口资源还够保底吗"}
    B -->|够| C["准入成功 预留资源"]
    B -->|不够| D{"能抢占低优先级流吗"}
    D -->|能| E["踢掉被抢占流 腾出资源"]
    D -->|不能| F["准入拒绝 业务降级"]
    E --> C

这里藏着GBR体系最容易被误解的一点:准入拒绝不是故障,而是一种保护。想象如果网络明明资源不够还硬接下10路语音,结果就是10路全糊——与其全输,不如让第11路 caller 听到忙音。语音业务里“宁可拒绝、不可劣化”是这个体系的灵魂。

还有个精巧的配套设计叫通知控制(Notification Control):如果网络某天突然供不起某条GBR流的保底了(比如邻站故障导致用户涌入),它不会默默违约,而是主动发通知“我要保不住了”,让业务层提前准备降级方案。契约精神写进了机制里。

为什么不全用GBR?

既然GBR体验好,为什么不把上网流量也做成GBR?因为保底是记账式承诺——你承诺给A用户保10Mbps,这10Mbps对应的资源池份额就被占用,哪怕A用户此刻根本没在发数据。如果人人GBR,资源预订量会远超实际需求,小区容量反而暴跌。GBR是把双刃剑:对少数关键流是保障,对多数流量是灾难。所以现网里GBR名额极其金贵,基本只留给语音、视频通话这类实时业务。

五、ARP:门卫的抢座规则

准入控制还差最后一块拼图:当包间满了,新来的贵客能不能请一位低级别客人让座?这由ARP(分配与保留优先级)决定。

ARP是一组独立的优先级参数(1到15级,1最高),带两个开关:

一条“抢占能力=开、易被抢占=关”的高优先级语音流,就是场景里的“贵客”:包间满了可以让低级客人挪位,而自己永远不会被请走。

但这里有个非常重要、考试常考的细节:抢占只发生在“建立准入”这一瞬间。一条流一旦被接纳,之后哪怕来了优先级更高的新流,也不能把它中途踢掉——新流只能看看还有没有其他空位,没有就拒绝。为什么这样设计?想象如果允许随时抢占:高优先级流一来,中级被踢;另一更高优先级一来,高级又被踢……网络资源分配陷入反复震荡,谁也别想好好通话。“一次定终身”是拿公平换稳定的工程取舍。

此外,ARP在非GBR流上也有用武之地:资源紧张时,调度器在“大家都没保底”的前提下,会参考ARP决定挤压顺序。所以它是一个横跨GBR和非GBR两界的通用门卫。

六、进入调度器:一毫秒之内的战争

上面的会话、流、准入都是“慢周期”的管理动作,而QoS的最终兑现发生在基站调度器里,每毫秒一次的资源分配决战。

调度器怎么用PDB(时延预算)?一个直观的心智模型是最早截止期优先:每个数据包到达时记下时间戳,它离“迟到”还剩多少余量——

$$slack = PDB - (t_{now} - t_{arrive})$$

余量越小,说明这个包越快到deadline,越该优先发。语音包(PDB=100ms)天生比下载包(PDB=300ms)余量消耗得快,自然长期霸占调度优先位。

要强调的是,这只是帮助理解的心智模型。真实商用调度器是多目标混合策略:优先级、ARP、信道质量、公平性、GBR余量……全在一起加权决策,具体算法属于各厂家实现细节,以各厂家官方文档为准。但万变不离其宗——5QI定义的等级,就是调度器做决策时最核心的输入。

调度器的输出还能反过来解释一个现网现象:为什么5QI=9的测速能跑到几百Mbps,而同一时刻别人的语音通话丝毫不受影响?因为GBR语音走的是“被优先伺候”的通道,非GBR流量再凶猛,也只是在这个通道之外的剩余资源里内卷。

七、网络切片:另一个维度的隔离

讲完QoS,必须厘清一个高度纠缠的概念:网络切片(Network Slicing)。很多人把两者混为一谈,其实它们是两个正交的维度。

继续航空公司的类比:QoS是舱位等级——同一架飞机上,头等舱(GBR语音)和经济舱(普通上网)享受不同的座位和服务优先级,但大家还是同一家公司、同一架飞机、同一个飞行员。切片则是包机——整架飞机、机组、航线的调度都是你专属的,和其他包机在物理运行层面就隔离开。

切片的身份证叫S-NSSAI,由两部分组成:

一部手机可以同时持有多个切片的签约,为不同业务建立绑定了不同S-NSSAI的PDU会话,各会话沿路获得各自专属的调度配置、传输管道和核心网资源:

flowchart TD
    UE["一部手机两个PDU会话"] --> S1["会话1 绑定切片eMBB"]
    UE --> S2["会话2 绑定切片URLLC"]
    S1 --> RA["基站为切片1配调度权重"]
    S2 --> RB["基站为切片2配调度权重"]
    RA --> TA["传输网切片A"]
    RB --> TB["传输网切片B"]
    TA --> CA["核心网资源池 eMBB"]
    TB --> CB["核心网资源池 URLLC"]

切片和QoS怎么配合? 切片解决“隔离”——电力公司的配电自动化流量不能被公众用户的抖音挤到;QoS解决“切片内部再分等级”——同一URLLC切片里,遥跳闸命令(GBR)依然优先于例行遥测(非GBR)。一句话总结:切片管一群人,QoS管一条流;切片是隔离的墙,QoS是墙内的 VIP 通道。

两者还有一个容易被忽视的量级差别:QoS承诺的是每条流的保底速率,切片承诺的往往是整个切片的资源配额(哪怕内部暂时没人用,配额也占着)。和GBR的逻辑一样,这是用牺牲统计复用效率换确定性。

八、QoS流从申请到通话的全过程

把前面的零件组装起来,看一个完整的VoNR(5G上打电话)场景中,一条语音GBR流是怎么诞生的(为简化,核心网侧网元做了合并):

sequenceDiagram
    participant U as 手机
    participant S as 核心网SMF
    participant G as 基站
    U->>S: 拨号 请求建立语音QoS流
    S->>G: 携带5QI=1与GFBR参数的建立请求
    G->>G: 准入检查 资源是否够保底
    G-->>S: 接纳成功
    S-->>U: 下发QoS规则
    Note over U,G: 空口建立专用DRB
    U->>G: 语音包按GBR等级被优先调度

三个值得留意的细节:

  1. 参数从哪来? 运营商在核心网签约数据里预先配置好“语音业务=5QI+GFBR值”的模板,通话时按模板实例化,而不是临时协商。
  2. 下行怎么告诉手机? 核心网直接下发QoS规则;而上行有个巧妙的省信令设计叫反射式QoS(Reflective QoS):下行数据包带着QFI标记到达手机,手机“照镜子”学到“哦,往这个目的地址发的上行包也该用这个QFI”,不需要单独的信令往返。5G新增的SDAP层就是负责贴QFI标签的那一层。
  3. 准入失败会怎样? 基站回拒绝,核心网按策略走降级路径——这正是现网语音问题排查的第一案发现场。

九、现网实战:这些知识用在哪

排障场景一:VoNR接通率突然下降。 查什么?GBR准入成功率。某个小区语音流集中准入失败,往往是资源类问题:邻区故障导致话务涌入、GBR容量参数配置过小、或者大量非GBR流被错误配成了GBR把资源池占满。信令上看到的就是“QoS流建立请求→基站拒绝”的循环。

排障场景二:某企业专线路由器上的语音老被挤掉。 查ARP配置。如果把所有流都配成“可被抢占”,那么任何一条新建立的更高级GBR流都能在准入瞬间挤掉别人(反过来,中途不会踢人)。ARP两个开关的组合配错,是现网QoS问题的经典雷区。

排障场景三:用户投诉“测速只有签约一半”。 先查AMBR再查无线环境。Session-AMBR/UE-AMBR是硬顶,签约数据配错了,无线信号再好也白搭。这属于“参数就在那,但你没看”的典型。

排障场景四:企业手机上不了专属切片。 查签约S-NSSAI和核心网配置的S-NSSAI是否一致。UE注册请求里带的切片列表、UDM签约的切片列表、网络侧实际配置的切片列表,三方对不上,手机就只注册到默认切片,专线业务自然不通。这是切片商用部署中最常见的翻车点。

调试陷阱:用测速App验证QoS是常见误区。测速本身是5QI=9的非GBR流,它只能测出“非保障业务的共享带宽”,永远测不出GBR保障是否生效。验证GBR要看通话时延/丢包指标或专用探针,而不是下载速度。

十、常见误解澄清

常见问题

Q: QoS Flow和4G的EPS Bearer到底什么区别? A: 概念上是传承关系——4G承载≈5G的“QoS流+无线承载”绑死在一起。5G把“账面等级(流)”和“物理运力(DRB)”解耦后,加新等级不用重建通道,信令更轻,一条无线承载还能聚合多条流。互操作时两者有明确的映射关系,4G通话迁回5G时等级待遇可以平移。

Q: 为什么我的手机同时在打游戏(低时延)和下载(大带宽),下载不把游戏卡死? A: 如果网络和业务都按规范走了QoS,游戏流会以低PDB的5QI(或GBR)建立,调度器永远先伺候它;下载是非GBR流,只能在剩余资源里排队。如果游戏本身没走专用QoS流(很多手游并没有),那两者确实会同级竞争,此时卡不卡就看信号和负载了。

Q: 反射式QoS是什么?为什么需要它? A: 给上行流量定等级本来需要核心网专门给手机发一条规则,信令一来一回有开销。反射式QoS让手机从下行包上的QFI标签“反推”上行该怎么标记,省掉了专门信令。适合大量短命的流(如各类互联网业务),是5G为降低控制面负担做的典型设计。

Q: 运营商会把我的普通上网流量设成GBR吗? A: 几乎不会。GBR准入要占用承诺资源,代价高昂,现网只把GBR留给语音、视频通话等少数实时业务。你刷视频、下载、游戏走的基本都是非GBR+AMBR限速的模型。

Q: 切片签约了但没生效,第一件事查什么? A: 查三方S-NSSAI一致性:手机请求的、核心网签约的、网络侧配置的切片标识列表是否对得上(SST和SD都要一致)。这是切片不通最高频的原因,其次才是无线侧切片功能开关和传输侧隔离配置。

参考来源

  1. ShareTechnote – 5G/NR QoS — 5G QoS架构、QFI、5QI参数表与GBR机制的工程向图解
  2. Wikipedia – Quality of service — QoS通用概念(调度、准入控制、优先级)的权威概述
  3. Wikipedia – Network slicing — 网络切片的端到端架构与S-NSSAI结构说明
  4. 3G4G Blog — 3G/4G/5G QoS与切片专题的持续解读博客

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入