写给互联网工程师的5G书 | 5. 高级功能
早就想写一个系列,给互联网行业的朋友介绍一下移动通信网络,特别是5G移动通信系统,但一直没想好怎么写。最近看到ONF发布的开源书《5G Mobile Networks:A Systems Approach》,其目标读者正是互联网从业者,因此打算将全书翻译为中文,希望能让有兴趣的朋友们能够了解移动通信网络的一些基本概念、网络架构和演进方向。原文:5G Mobile Networks: A Systems Approach 。中文版Github仓库: 。
5. 高级功能(Advanced Capabilities)
本章将探讨三个例子,尝试解释为什么需要解耦蜂窝网络,有什么好处。在第三章(体系架构)中,我们介绍了“what is”(基于3GPP的基础知识),在第四章(RAN内部详解)中,我们介绍了“what will be”(行业正在演进的方向),而这一章我们将介绍“what might be”(未来最终会达到的可能性)。
5.1. 数据面优化(Optimized Data Plane)
对功能进行拆分的原因有很多,其中最引人注目的原因之一是解耦控制和数据代码路径,从而允许对它们分别进行优化。例如,数据路径可以通过将其编程到专门的硬件中来优化。具有可编程分组转发管道的现代白盒交换机是我们可以在蜂窝网络中开发的专门硬件的一个完美例子。图25显示了拆分的第一步,包含了到目前为止我们所介绍的所有元素。

关于这个图表有几点需要注意。首先,该图结合了移动核心网和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展示了我们解耦这些组件的原因:这样我们就可以在交换硬件中实现用户面组件(PGW-U、SGW-U、PDCP-U)。可以使用面向可编程网络报文转发流水线定制的语言(例如P4)和独立于协议的交换架构(例如英特尔的Tofino)的组合来实现。目前一个重要的结论是,RAN和移动核心网用户面可以直接映射到SDN支持的数据面。
延伸阅读:有关P4和可编程交换芯片的更多信息,我们推荐阅读《软件定义网络:系统方法(Software-Defined Networking: A Systems Approach)》中的白盒交换机章节。
由于某些术语的冲突,在交换硬件中实现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展示了一种可能的配置,其中底层交换机以叶脊(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,两个术语表示的是一个意思)。

这么做有什么价值?和DU/RU一样,边缘云(Edge Cloud)的资源也很有限。如果我们想要在那里腾出空间来运行新的边缘服务,那么将任何没有必要部署在本地的组件转移到资源更丰富、更大的设施中是有帮助的。如果信息分布在多个位置,就很难收集分析,因此集中化部署还有助于跨多个边缘位置收集和分析数据(对数据执行分析也可以受益于丰富的可用计算资源)。
另一个值得关注的原因是,它降低了任何人(不仅仅是拥有和运营RAN基础设施的公司)向客户提供移动服务的门槛。这些实体被称为MVNOs(Mobile Virtual Network Operators,移动虚拟网络运营商),运营MVNO的一个简单方法就是在你选择的云中运行你自己的移动核心网。
但是,最大的动机是将移动核心网的用户面组件部署在网络边缘,从而可以分流(break out)本地流量,而不必经过中心节点转发,这有可能极大的减少边缘托管服务的网络延时。我们将在第7章回到这个话题。
5.3. 网络切片(Network Slicing)
5G最引人注目的价值主张之一是为不同应用和客户提供不同水平服务的能力。当然,差异化是向某些用户收取更高费用的关键,但收费只是这个故事的一部分,它还必须支持广泛的具有不同需求的应用程序。例如,流媒体视频需要高的带宽,但可以容忍更大的延迟,而物联网的带宽需求很小,但有时需要极低和可预测的延迟,并需要连接
支持这种差异化的机制被称为网络切片,其核心可以归结为调度,包括RAN(决定传输哪个分片)的调度,以及移动核心网(缩放微服务实例并将这些实例放置在可用的服务器上)的调度。下面从RAN开始介绍基本思想。
但在深入讨论细节之前,我们注意到网络切片是前面讨论的QCI(QoS Class Index,QoS类标识符)的实现。3GPP定义了一组标准的网络片,称为
当然,定义所需的切片集和实现切片机制是完全不同的两码事。下面简单介绍一下如何实现切片。
RAN切片(RAN Slicing)
我们首先回顾一下第2章中提到的基本调度问题。如图29所示,可以将无线电频谱抽象为一个二维RB(Resource Blocks,资源块)网格,调度程序的工作是根据来自终端的CQI反馈,决定如何把用每个用户传输队列中的可用分片填充到网格中。重申一下,OFDMA的强大之处在于它在如何执行映射方面非常灵活。

虽然理论上我们可以定义一个uber scheduler(指的是集合了多个参数并可以通过配置开关或切换的调度器)把几十个不同的因素都集成进来,但网络切片的关键是添加一个如图30所示的中间层,实现虚拟RB(Virtual RBs)到物理RB(Physical RBs)的映射。这种虚拟化策略在计算系统的资源分配器中很常见,可以将分配给每个用户的资源数量与实际分配的物理资源分开。这种虚拟到物理的映射是由一个通常被称为Hypervisor的层执行的,而它完全不知道每个转换会影响到哪个用户分片。

将虚拟RB与物理RB解耦后,可以定义多个大小不同的虚拟RB集,每个都有自己的调度器,图31给出了两个相同大小RB集的示例。将物理RB划分为两个相等分区后,与每个分区相关联的调度器就可以自由分配完全独立的虚拟RB了。例如,一个调度器可能被设计用于处理高带宽的视频流量,而另一个调度器可能被优化用于低延迟的物联网流量。或者,可用容量的一部分可以预留给高级客户或其他高优先级流量(例如公共安全),其余部分由其他人共享。

再深入一层实现细节,如图32所示,DU中的实时调度器从CU中的近实时调度器接收高级指令,DU按照这些指令

总而言之,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。

核心网切片(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