写给互联网工程师的 5G 书 | 5. 高级功能
早就想写一个系列,给互联网行业的朋友介绍一下移动通信网络,特别是 5G 移动通信系统,但一直没想好怎么写。最近看到 ONF 发布的开源书《5G Mobile Networks:A Systems Approach》,其目标读者正是互联网从业者,因此打算将全书翻译为中文,希望能让有兴趣的朋友们能够了解移动通信网络的一些基本概念、网络架构和演进方向。原文:5G Mobile Networks: A Systems Approach[1]。中文版 Github 仓库:https://github.com/yuff100/5GSystemApproachCHN。
5. 高级功能(Advanced Capabilities)
本章将探讨三个例子,尝试解释为什么需要解耦蜂窝网络,有什么好处。在第三章(体系架构)中,我们介绍了“what is”(基于 3GPP 的基础知识),在第四章(RAN 内部详解)中,我们介绍了“what will be”(行业正在演进的方向),而这一章我们将介绍“what might be”(未来最终会达到的可能性)。
5.1. 数据面优化(Optimized Data Plane)
对功能进行拆分的原因有很多,其中最引人注目的原因之一是解耦控制和数据代码路径,从而允许对它们分别进行优化。例如,数据路径可以通过将其编程到专门的硬件中来优化。具有可编程分组转发管道的现代白盒交换机是我们可以在蜂窝网络中开发的专门硬件的一个完美例子。图 25 显示了拆分的第一步,包含了到目前为止我们所介绍的所有元素。
图 25. 端到端解耦系统,包括移动核心网和分布式 RAN。
关于这个图表有几点需要注意。首先,该图结合了移动核心网和 RAN 组件,并根据主要的子系统进行组织:移动核心网、中央单元(CU)、分布式单元(DU)和无线电单元(RU)。该图还显示了这些子系统到物理位置的一种可能的映射,前两个子系统共同位于一个机房,后两个共同位于一个铁塔,当然也可以部署为其他模式。
其次,图中显示了移动核心网的两个用户面组件(PGW, SGW),CU 的用户面组件(PDCP)也被进一步分解为一对控制/用户平面,分别表示为 PGW-C/PGW-U、SGW-C/SGW-U 和 PDCP-C/PDCP-U。确切地说,如何实现解耦是一个实现选择问题(3GPP 并没有做出指定),但其思想是将用户面组件减少到可以接收/处理/发送数据包的最小内核,并将所有与控制相关的功能都提升到控制面组件中。
第三,在 DU 和 RU 之间分割 RAN 处理流水线中的 PHY(物理层)组件,PHY 的细节不在本书范围之内。3GPP 规范定义了 PHY 层元素作为一组功能的集合,其中一些可以以软件的方式有效的运行在通用处理器上,而另一些最好基于专用硬件实现(比如基于 DSP 实现)。这两个块功能分别映射为 PHY Upper(DU 的一部分)和 PHY Lower(RU 的一部分)。
第四,让人困惑的是,在图 25 中,PCDP-C 和 Control Plane(Forwarding)组成了一个单一的功能块,与 RLC 和 MME 相连。如何实现这对功能是一个实现选择(例如,可以映射为两个或多个微服务),但最终的结果是,它们是端到端路径的一部分,通过这个路径,MME 可以向 UE 发送控制报文。注意,这意味着在控制面和用户面之间解码数据包的责任落到了 RLC 身上。
图 26. 在可编程交换机中实现用户面组件。
图 26 展示了我们解耦这些组件的原因:这样我们就可以在交换硬件中实现用户面组件(PGW-U、SGW-U、PDCP-U)。可以使用面向可编程网络报文转发流水线定制的语言(例如 P4)和独立于协议的交换架构(例如英特尔的 Tofino)的组合来实现。目前一个重要的结论是,RAN 和移动核心网用户面可以直接映射到 SDN 支持的数据面。
延伸阅读:有关 P4 和可编程交换芯片的更多信息,我们推荐阅读《软件定义网络:系统方法(Software-Defined Networking: A Systems Approach)》中的白盒交换机章节[2]。
由于某些术语的冲突,在交换硬件中实现 RAN 和移动核心网的转发功能可能会让人感到困惑。5G 将功能分成控制面和用户面,而 SDN 将功能分成控制面和数据面。重叠的部分来自于我们将 5G 用户面的实现分为基于 SDN 的控制和数据平面。作为一种简化,我们将 Control Plane(Forwarding)和 PDCP-C 组合起来,称为 CU-C(Central Unit - Control)。
最后,SDN 定义的控制/数据平面分离附带了一个隐含的实现策略,即使用可伸缩和高可用的 NOS(Network Operating System,网络操作系统。跟传统操作系统一样,NOS 位于应用程序(控制程序)和底层硬件设备(白盒交换机)之间,为这些应用程序提供更高层次的抽象(例如,网络拓扑),同时隐藏底层硬件的实现细节。为了使讨论更加具体,我们以 ONOS(Open Network Operating System,开放网络操作系统)为例,其中 PGW-C、SGW-C 和 PDCP-C 都实现为运行在 ONOS 之上的控制应用程序。
图 27. 控制面组件实现为运行在 SDN 控制器(例如,ONOS)上的控制应用程序。
图 27 展示了一种可能的配置,其中底层交换机以叶脊(leaf-spine)网络架构相互连接。请记住,图 26 所示的交换机线性拓扑只是逻辑上的,并不能将实际的硬件配置为相同的拓扑。我们使用叶脊网络的原因与构建边缘云的最终目标有关,叶脊是这种基于云的集群的原型架构。三个控制应用程序必须协同工作,基于网络实现端到端路径,这实际上是在其他能够感知网络的控制应用程序的帮助下实现的(图中以“…”表示)。我们将在下一章中介绍更多细节,但目前最重要的是,5G 上层控制面组件可以实现为基于 SDN 的控制应用程序。
5.2. 多云部署(Multi-Cloud)
功能解耦的另一个结果是,不同的功能可以部署在不同的物理位置上。当我们拆分 RAN 时,已经看到了这一点,可以将一些功能(如 PCDP 和 RRC)放在 CU,而将其他功能(如 RLC 和 MAC)放在 DU。这样我们就可以在机房条件、电力供应、制冷条件都不太好的偏远地区使用更简单(更便宜)的硬件。
我们可以在多个不同的云上重复部署不同组件的过程,从而受益于已经具备了弹性和规模效益的大型数据中心。图 28 展示了移动核心网的多云部署。我们将用户面部署在网络边缘(例如,在网络机房),将控制面部署到中央云上,甚至可以是像谷歌或亚马逊这样的公有云。不仅可以部署 MME、PCRF 和 HSS,还可以部署我们在前一节中解耦出来的 PGW-C 和 SGW-C(注意,图 28 将之前图表中的 PDCP-U 重命名为 CU-U,两个术语表示的是一个意思)。
图 28. 多云部署,PGW/SGW 的控制组件和 MME、HSS、PCRF 部署在中央云中运行。
这么做有什么价值?和 DU/RU 一样,边缘云(Edge Cloud)的资源也很有限。如果我们想要在那里腾出空间来运行新的边缘服务,那么将任何没有必要部署在本地的组件转移到资源更丰富、更大的设施中是有帮助的。如果信息分布在多个位置,就很难收集分析,因此集中化部署还有助于跨多个边缘位置收集和分析数据(对数据执行分析也可以受益于丰富的可用计算资源)。
另一个值得关注的原因是,它降低了任何人(不仅仅是拥有和运营 RAN 基础设施的公司)向客户提供移动服务的门槛。这些实体被称为 MVNOs(Mobile Virtual Network Operators,移动虚拟网络运营商),运营 MVNO 的一个简单方法就是在你选择的云中运行你自己的移动核心网。
但是,最大的动机是将移动核心网的用户面组件部署在网络边缘,从而可以分流(break out)本地流量,而不必经过中心节点转发,这有可能极大的减少边缘托管服务的网络延时。我们将在第 7 章回到这个话题。
5.3. 网络切片(Network Slicing)
5G 最引人注目的价值主张之一是为不同应用和客户提供不同水平服务的能力。当然,差异化是向某些用户收取更高费用的关键,但收费只是这个故事的一部分,它还必须支持广泛的具有不同需求的应用程序。例如,流媒体视频需要高的带宽,但可以容忍更大的延迟,而物联网的带宽需求很小,但有时需要极低和可预测的延迟,并需要连接大量可伸缩(massively scalable)的设备。
支持这种差异化的机制被称为网络切片,其核心可以归结为调度,包括 RAN(决定传输哪个分片)的调度,以及移动核心网(缩放微服务实例并将这些实例放置在可用的服务器上)的调度。下面从 RAN 开始介绍基本思想。
但在深入讨论细节之前,我们注意到网络切片是前面讨论的 QCI(QoS Class Index,QoS 类标识符)的实现。3GPP 定义了一组标准的网络片,称为 SST(Standardized Slice Type,标准切片类型)。例如,SST 1 对应移动宽带,SST 2 对应超可靠低时延通信,SST 3 对应海量物联网,等等。还可以用额外的切片行为扩展这个标准集,或者为每个 SST 定义多个切片(例如,根据优先级进一步区分客户)。
当然,定义所需的切片集和实现切片机制是完全不同的两码事。下面简单介绍一下如何实现切片。
RAN 切片(RAN Slicing)
我们首先回顾一下第 2 章中提到的基本调度问题。如图 29 所示,可以将无线电频谱抽象为一个二维 RB(Resource Blocks,资源块)网格,调度程序的工作是根据来自终端的 CQI 反馈,决定如何把用每个用户传输队列中的可用分片填充到网格中。重申一下,OFDMA 的强大之处在于它在如何执行映射方面非常灵活。
图 29. 调度器为 UE 分配资源块。
虽然理论上我们可以定义一个 uber scheduler(指的是集合了多个参数并可以通过配置开关或切换的调度器)把几十个不同的因素都集成进来,但网络切片的关键是添加一个如图 30 所示的中间层,实现虚拟 RB(Virtual RBs)到物理 RB(Physical RBs)的映射。这种虚拟化策略在计算系统的资源分配器中很常见,可以将分配给每个用户的资源数量与实际分配的物理资源分开。这种虚拟到物理的映射是由一个通常被称为 Hypervisor 的层执行的,而它完全不知道每个转换会影响到哪个用户分片。
图 30. 无线 Hypervisor 将虚拟资源块映射到物理资源块。
将虚拟 RB 与物理 RB 解耦后,可以定义多个大小不同的虚拟 RB 集,每个都有自己的调度器,图 31 给出了两个相同大小 RB 集的示例。将物理 RB 划分为两个相等分区后,与每个分区相关联的调度器就可以自由分配完全独立的虚拟 RB 了。例如,一个调度器可能被设计用于处理高带宽的视频流量,而另一个调度器可能被优化用于低延迟的物联网流量。或者,可用容量的一部分可以预留给高级客户或其他高优先级流量(例如公共安全),其余部分由其他人共享。
图 31. 在无线 hypervisor 上运行多个调度程序。
再深入一层实现细节,如图 32 所示,DU 中的实时调度器从 CU 中的近实时调度器接收高级指令,DU 按照这些指令基于每个切片(on a per-slice basis)做出调度决策。单个 RAN 的切片控制程序通过在一组切片之间分配资源来负责宏观调度决策。理解这个实现细节是很重要的,因为所有这些控制决策都是由软件模块实现的,因此很容易更改或定制。在 5G 中这些控制模块并没有被“锁定”在底层系统中,而在 4G 中是被预置在 eNodeB 中的,很难被修改。
图 32. 与分布式实时 RAN 调度器协作的集中式近实时控制应用程序。
总而言之,RAN 切片的目标是通过可编程的方式创建虚拟 RAN 节点(基站),这些节点在相同的硬件上操作,并根据不同应用程序、服务、用户等的给定策略共享频谱资源。将 RAN 切片与解耦联系起来,考虑到切片之间所需的隔离级别,可以想象到有几种可能的配置。图 33 给出了四个例子,所有例子都假设切片共享天线和射频组件(RU):(a)RAN 切片共享 RU、DU、CU-U 和 CU-C;(b)RAN 切片共享 RU 和 DU,但有自己的 CU-U 和 CU-C;(c)RAN 切片共享 RU、CU-U 和 CU-C,但有自己的 DU;和(d)RAN 切片共享 RU,但有自己的 DU、CU-U 和 CU-C。
图 33. 支持切片的分布式 RAN 的四种可能配置。
核心网切片(Core Slicing)
除了对 RAN 进行切片,我们还需要对移动核心网进行切片。这也很容易理解,网络交换机中的 QoS 机制(确保每个切片能够获得承诺的带宽)和集群处理器(确保每个微服务的容器被分配了足够的 CPU 以保证相应切片的包转发速率)也需要满足切片的要求。
但是包调度和 CPU 调度都是底层机制,要满足切片的需求,也需要虚拟化和部署移动核心网服务的多个副本。如果将一个切片视为一个系统抽象,那么该抽象需要跟踪实现每个切片的互连微服务集合,然后指示底层包调度器为切片的数据流分配足够的网络带宽,并指示底层 CPU 调度器为切片的容器分配足够的计算周期。
例如,如果有两个网络切片(和图 31、图 32 所示的两个调度器类似),那么就需要有两个移动核心网服务组,两组 AMF,SMF,UPF 等组成的微服务集合,分别处理两个切片。这两个服务组可以独立伸缩(即包含不同数量的容器实例),由它们各自的工作负载和 QoS 保证决定。这两个切片也可以各自做出不同的实现选择,例如,一个针对大规模物联网应用进行优化,另一个针对高带宽 AR/VR 应用进行优化。
我们还需要一个能够将给定的数据流(例如 UE 和某些互联网应用之间的数据)映射到合适的服务实例上的解复用功能。这是在第 3 章中描述的 NSSF 的工作:它负责选择为给定切片的流量提供服务的实例。
切片和备受争议的网络 QoS 之间的相似之处可能会让人得出以下结论:切片不会成功,因为 QoS 似乎从未在大型网络中提供足够的好处,而只是引入了复杂性。但是当带宽不足时,QoS 就能够提供价值,而在最后一英里链路中就有可能存在这样的情况。切片允许对蜂窝网络频谱这一相对稀缺的资源进行有效的分割,因此可能是有价值的。
最后,请注意,切片可以被视为在蜂窝网络上启用虚拟网络(overlay)的一种方式。互联网很早之前就开始通过使用 overlay 来支持创新,比如多播和内容交付网络就是以这种方式发展起来的。因此,虽然我们可能不知道切片将如何被使用,但它是促进创新的一个重要因素。
Reference:
你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术总监,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。微信公众号:DeepNoMind
评论