写给互联网工程师的 5G 书 | 3. 基础架构
早就想写一个系列,给互联网行业的朋友介绍一下移动通信网络,特别是 5G 移动通信系统,但一直没想好怎么写。最近看到 ONF 发布的开源书《5G Mobile Networks:A Systems Approach》,其目标读者正是互联网从业者,因此打算将全书翻译为中文,希望能让有兴趣的朋友们能够了解移动通信网络的一些基本概念、网络架构和演进方向。原文:5G Mobile Networks: A Systems Approach[1]。中文版 Github 仓库:https://github.com/yuff100/5GSystemApproachCHN。
3. 基础架构(Basic Architecture)
本章介绍移动接入网的主要架构组件,着重于 4G 和 5G 共同的组件,为理解后面章节中介绍的 5G 高级特性奠定基础。
本书主要是概要性的介绍 3GPP 中的术语,对于熟悉互联网的人来说,这些术语可能看起来很随意(例如,“eNB”是一个“基站”),但重要的是要记住,这个术语来自于 3GPP 标准化的过程,它始终关注电信领域,几乎完全与 IETF 和其他互联网相关组织没有联系。更让人困惑的是,3GPP 的术语常常随着每一代的变化而变化(例如,在 4G 中一个基站被称为 eNB,在 5G 中被称为 gNB)。我们通过使用通用术语(例如基站)来解决这种问题,并仅在需要区分时引用特定的 3GPP 的对应术语。
延伸阅读这个例子只是术语的冰山一角。关于 5G 术语的复杂性,请参阅 Marcin Dryjanski 2018 年 7 月的文章:《LTE 和 5G 差异:系统复杂性(LTE and 5G Differences: System Complexity)》[2]。
3.1. 主要组件
蜂窝网络为移动中的设备提供无线连接,这些设备被称为*UE(User Equipment,用户设备),传统上与智能手机和平板电脑相对应,但将越来越多地包括汽车、无人机、工农业机械、机器人、家用电器、医疗设备等。
图 6. 蜂窝网络由无线接入网(RAN)和移动核心网组成。
如图 6 所示,蜂窝网络由两个主要的子系统组成:RAN(Radio Access Networks,无线接入网)和移动核心网(Mobile Core)。RAN 管理无线电频谱,确保其得到有效利用,并满足每个用户的服务质量要求,它体现为一组分布式的基站集合。如上所述,在 4G 中,这些节点被命名为 eNodeB(或 eNB),这是 evolved Node B 的缩写。在 5G 中,它们被称为 gNB(g 代表“下一代,next Generation”)。
移动核心网不是一个单独的设备,而是一组功能的集合,为多个目的服务:
为数据和语音服务提供互联网(IP)连接。
确保连接性满足承诺的 QoS 要求。
跟踪用户移动性,确保服务不中断。
跟踪用户的使用情况以进行计费和收费。
注意,移动核心网是另一个通用术语。在 4G 中被称为 EPC(Evolved Packet Core,演进的分组核心网),在 5G 中被称为*NG-Core(Next Generation Core,下一代核心网,另一个更常用的术语是 5GC)。
尽管其名称中有“核心”一词,但从互联网的角度来看,移动核心网仍然是接入网的一部分,作为一座高效的桥梁,将某个区域的 RAN 和更大的基于 IP 的互联网连接了起来。3GPP 在移动核心网的部署位置方面提供了很大的灵活性,但对于我们的目的来说,可以假设每个移动核心网都服务于一个大的城市区,相应的 RAN 将包括几十个(甚至数百个)手机发射塔。
仔细看一下图 6,我们可以看到一个回传网络(Backhaul Network)将基站与移动核心网连接起来。这个网络通常是有线的,可能有也可能没有图中所示的环形拓扑,通常是由其他商用组件构建。例如,实现光纤到户的 PON(Passive Optical Network,无源光网络)是实现 RAN 回传的首选。回传网络显然是 RAN 的必要组成部分,但它只是实现选择之一,并不是 3GPP 标准所规定的。
尽管 3GPP 在一个开放标准中指定了实现 RAN 和移动核心网的所有要素(包括我们还没有引入的子层),但网络运营商在历史上习惯于从单个供应商手中购买每个子系统的专有实现。缺乏开源实现导致蜂窝网络普遍“不透明”,RAN 尤其如此。虽然 eNodeB 的实现确实包含了在无线电频谱上调度传输的复杂算法(这些算法被认为是设备供应商的宝贵知识产权),但同时开放和解耦 RAN 和移动核心网的机会还是很大的。下面两个章节将依次介绍这两个部分。
在进入这些细节之前,图 7 重新绘制了图 6 中的组件,以突出两个重要的区别。首先,一个基站有一个模拟组件(由天线表示)和一个数字组件(由一对处理器表示)。其次,移动核心网被划分为控制面(Control Plane)和用户面(User Plane),这类似于熟悉互联网的人所理解的控制/数据平面。(3GPP 最近引入了一个对应的缩写——CUPS, Control and User Plane Separation——来表示这个想法。)在接下来的讨论中,我们将解释这两个区别的重要性。
图 7. 移动核心网分为控制面和用户面,这是一个被称为 CUPS 的架构:控制和用户平面分离
3.2. 无线接入网(Radio Access Network)
接下来,我们通过介绍每个基站所扮演的角色来描述 RAN。请记住,这有点像通过解释路由器的工作原理来描述互联网——这是一个合适的起点,但并没有完全覆盖端到端的所有场景。
首先,每个基站在用户的 UE 通电以后,或者说当 UE 处于活跃状态时,为其建立无线信道。如果 UE 在一段时间内保持空闲状态,此通道将被释放。在 3GPP 的术语里,这个无线信道提供承载服务(bearer service)。术语“承载(bearer)”历来被电信行业(包括早期的有线技术,如 ISDN)用来表示数据通道,而不是承载信令信息的通道。
图 8. 基站检测(并连接)活跃 UE。
其次,每个基站在 UE 和对应的移动核心网控制面组件之间建立“3GPP 控制面”连接,并在两者之间转发信令流量。该信令流量支持 UE 认证、注册和移动性跟踪。
图 9. 基站在每个 UE 和移动核心网之间建立控制平面连接。
第三,对于每个活跃 UE,基站在相应的移动核心网用户面组件之间建立一个或多个隧道。
图 10. 基站在每个 UE 和移动核心网用户面之间建立一个或多个隧道。
第四,基站在移动核心网和 UE 之间转发控制和用户平面数据包。这些数据包分别通过 SCTP/IP 和 GTP/UDP/IP 进行隧道传输。SCTP(Stream Control Transport Protocol,流控制传输协议)是替代 TCP 的可靠传输协议,专门用于为电话服务传送信令(控制)信息。GTP(General Packet Radio Service Tunneling Protocol,通用分组无线电服务隧道协议)是 3GPP 定义的基于 UDP 的隧道协议。
另外,值得注意的是,RAN 和移动核心网之间的连接是基于 IP 的。这是从 3G 到 4G 的主要变化之一。在 4G 之前,蜂窝网络的内部是基于电路传输的。这也很好理解,因为它最初就是一个电话网络。
图 11. 基站到移动核心网(以及基站到基站)的控制面通过 SCTP/IP 隧道传输,用户面通过 GTP/UDP/IP 隧道传输。
第五,每个基站利用直连的站到站链路与相邻基站协调 UE 切换。和上图所示的基站到核心网的链接一样,这些链路用于传输控制面(SCTP over IP)和用户面(GTP over UDP/IP)数据包。
图 12. 基站配合完成 UE 切换。
第六,基站协调从多个基站向一个 UE 进行无线多点传输,该流程也许是 UE 切换的一部分,也可能不是。
图 13. 基站之间相互协作,实现到 UE 的多径传输(链路聚合)。
通过上面的介绍,我们可以看到,基站基本上可以被视为一个专门的转发器。在网络到 UE 的方向上,基站把即将发送的 IP 包封装为物理层分片,将其调度到可用的无线频谱上进行传输。在 UE 到网络的方向上,基站把物理层分片组装为 IP 包,通过 GTP / UDP / IP 隧道发送到的上游移动核心网用户面。此外,基站根据观测到的无线信道质量和用户策略,决定(a)直接将数据包转发给 UE,还是(b)通过相邻基站间接转发给 UE,或者(c)利用多径传输到达 UE。第三种情况可以选择将物理负载分散到多个基站或者单个基站的多个载波频率(包括 Wi-Fi)上。
请注意,正如第二章无线传输所述,调度是复杂的,需要考虑很多情况,甚至在做出只会影响到单个基站的决策时也是一样。 我们现在看到,还需要考虑全局因素,需要决策是否将流量转发到不同的(多个)基站,从而在更大的地理区域内有效利用频谱资源。
换句话说,RAN 作为一个整体(即不仅仅是单个的基站),不仅支持切换(移动性的显著要求),而且还支持链接聚合( link aggregation)和负载均衡(load balancing),这些机制对任何理解互联网的人来说都很熟悉。我们将在后面的章节中重新讨论如何利用 SDN 技术来做出这种 RAN 级别(全局)的决策。
3.3. 移动核心网(Mobile Core)
移动核心网的主要功能是向移动用户提供数据网络(即互联网)连接,同时确保验证用户身份,以及保证他们体验到的服务质量满足承诺的 SLA。移动核心网通过追踪所有用户在基站粒度上的最后位置来管理用户的移动性,这是移动核心网的一个重要功能。事实上,为了追踪个人用户的移动(而这是互联网做不到的),使得移动核心网架构非常复杂。
当我们从 4G 迁移到 5G 时,总体功能基本保持不变,变化的是相关功能如何被虚拟化和以及解耦。5G 移动核心网在很大程度上受到了云计算向微服务(云原生)架构演进的影响。由于向云原生的演进打开了定制化的大门,使得这种转变比最初看起来要深刻的多。5G 移动核心网不仅支持语音和宽带连接,还可以发展到支持海量物联网。海量物联网具有完全不同的延迟需求和使用模式(即更多设备的间歇性连接),这就需要用一种会话管理方案适配多种业务模型。
4G 移动核心网
4G 移动核心网在 3GPP 的官方名称是 EPC(Evolved Packet Core),由五个主要组件组成,前三个在控制面(CP)运行,后两个在用户面(UP)运行。
MME(Mobility Management Entity,移动性管理实体):在 RAN 中跟踪和管理终端的移动,包括记录终端何时停止活动。
HSS(Home Subscriber Server,归属用户服务器):包含所有注册用户相关信息的数据库。
PCRF(Policy & Charging Rules Function,策略与计费规则功能单元):跟踪和管理策略规则,记录用户流量的计费数据。
SGW(Serving Gateway,服务网关):负责转发与 RAN 之间的 IP 报文。将承载服务的移动核心网锚定到(可能是移动的)UE,涉及从一个基站到另一个基站的切换。
PGW(PDN(Packet Data Network) Gateway,PDN 网关):本质上是一个 IP 路由器,将移动核心网连接到外部互联网。支持附加的访问相关功能,包括策略执行、流量整形和计费。
虽然面向 RAN 的 SGW 和面向互联网的 PGW 被定义为不同的组件,但在实践中,它们通常被组合在一个设备中,被称为 S/PGW。最终结果如图 14 所示。
图 14. 4G 移动核心网(EPC)。
请注意,3GPP 在如何部署移动核心网组件以服务于某个地理区域方面保持了灵活开放的态度。例如,一组 MME/PGW 可能为一个城市提供服务,SGW 部署在遍布整个城市的大约 10 个边缘站点上,每个站点为大约 100 个基站提供服务。但是规范并没有限定部署配置,可以自行选择。
5G 移动核心网
5G 移动核心网(3GPP 称之为 NG-Core)采用了类似微服务的架构,之所以称之为“类似微服务”,是因为尽管 3GPP 规范分解了这一层次的功能,但实际上只是规定了一组功能模块,而不涉及实现。一组功能模块与设计一个基于微服务的系统的工程决策是完全不同的。换句话说,可以将图 15 中所示的组件集合视为一组微服务,这是一个不错的工作模型。
下面将功能模块组织为三组。第一组是控制面(CP)功能,在 EPC 中有对应模块。
AMF(Core Access and Mobility Management Function,接入和移动管理功能):负责连接和可达性管理、移动管理、接入认证和授权、位置服务,提供 EPC 中 MME 的移动性管理功能。
SMF(Session Management Function,会话管理功能):管理 UE 会话,包括 IP 地址分配、选择关联的 UPF、QoS 控制、UP 路由控制,大致对应于 EPC 中 MME 的部分功能以及 PGW 的控制相关功能。
PCF(Policy Control Function,策略控制功能):管理其他控制面功能的策略规则,大致相当于 EPC 的 PCRF。
UDM(Unified Data Management,统一数据管理功能):管理用户身份信息,生成鉴权证书,实现 EPC 中 HSS 的部分功能。
AUSF(Authentication Server Function,鉴权服务功能):本质上是一个鉴权服务器,实现 EPC 中 HSS 的部分功能。
第二组也是控制面(CP)功能,但在 EPC 中没有直接对应的模块:
SDSF(Structured Data Storage Network Function,结构化数据存储网络功能):用于存储结构化数据的辅助服务,可以通过在微服务系统中部署 SQL 数据库实现。
UDSF(Unstructured Data Storage Network Function,非结构化数据存储网络功能):用于存储非结构化数据的辅助服务,可以通过在微服务系统中部署“键/值存储”来实现。
NEF(Network Exposure Function,网络开放功能):向第三方服务开放指定功能,包括内外部数据的转换,可以在微服务系统中通过“API 服务器”实现。
NRF(NF Repository Function,网络存储功能):用于发现可用服务,可以通过在微服务系统中部署“发现服务”来实现。
NSSF(Network Slicing Selector Function,网络切片选择功能):为服务特定 UE 选择服务的网络切片。切片是 5G 的一个关键特性,本质上是一种划分网络资源的方法,用以给不同的用户提供不同的服务,我们将在后面的章节中深入讨论。
第三组是用户面(UP)功能组件:
UPF(User Plane Function,用户面功能):转发 RAN 与互联网之间的流量,对应 EPC 中的 S/PGW 组合。除报文转发外,UPF 还负责策略执行、合法监听、流量使用报告和 QoS 策略。
其中,第一组和第三组可以被看作是对 4G EPC 的直接重构,而第二组是 3GPP 将云原生解决方案作为移动核心网解决方案的路径。需要特别注意的是,引入不同的存储服务意味着所有其他服务都可以是无状态的,可以更容易的支持伸缩。还要注意,图 15 采用了在基于微服务的系统中常见的思想,即显示连接所有组件的消息总线(message bus),而不是一组组成对的连接,这相当于提供了一个易于理解的建议实现策略。
图 15. 5G 移动核心(NG-Core)。
撇开这些细节不谈,需要注意的是,我们可以将移动核心网定义为一组服务,被称为服务依赖图(Service Graph)或服务链(Service Chain),后者在面向 NFV 的文档中更为普遍。还有另一个在云原生架构中有特殊含义的类似的专有名词,服务网格(Service Mesh),我们将避免重用这个术语。3GPP 在特定的专有名词上没有倾向性,因为这被认为是一种实现选择,而不是规范的一部分。我们将在后面的章节中介绍我们的实现选择。
3.4. 安全性与移动性(Security and Mobility)
接下来我们将仔细考虑蜂窝网络的两个独特特性——对安全性和移动性的支持——这两个特性将蜂窝网络与 WiFi 区分了开来。下面提供了关于每个终端如何连接到网络的一些细节。
我们从安全体系架构开始,它基于两个信任假设。首先,每个基站都相信它通过一个安全的私有网络连接到移动核心网,在这个网络上它建立了如图 11 所示的隧道:一个到核心网用户面(Core-UP)的 GTP/UDP/IP 隧道和一个到核心网控制面(Core-CP)的 SCTP/IP 隧道。其次,每个 UE 都有一个运营商提供的 SIM 卡,它是用户的唯一标识(即电话号码),并确定与该运营商的基站通信所需的无线电参数(如频段)。SIM 卡还包括一个密钥,终端用它来对自己进行认证。
图 16. 建立安全的控制面/用户面通道的步骤。
以此为起点,图 16 显示了每个 UE 的连接步骤。当 UE 刚开机时,它通过临时(未认证的)无线电链路与附近的基站通信(步骤 1)。基站通过现有隧道将请求转发给 Core-CP,Core-CP(具体来说,是 4G 中的 MME 和 5G 中的 AMF)根据协议对 UE 发起认证过程(步骤 2)。3GPP 定义了一组用于身份验证和加密的选项,具体使用哪种实际协议是一个实现选择。例如,AES(Advanced Encryption Standard,高级加密标准)是加密的选项之一。请注意,由于基站到 UE 的链路还不安全,因此这种身份验证交换最初是明文的。
一旦 UE 和 Core-CP 认可了彼此的身份,Core-CP 将会把为该 UE 提供服务需要的参数发送给其他组件(步骤 3)。包括:(a)指示 Core-UP 初始化用户面(例如,为 UE 分配一个 IP 地址并设置适当的 QCI 参数);(b)指示基站建立通往 UE 的加密通道;(c)给 UE 提供对称密钥,它需要用来与基站建立加密通道。对称密钥使用终端的公钥进行加密(因此只有终端可以使用其秘钥解密)。一旦完成,终端就可以通过 Core-UP 使用端到端用户面通道传输数据(步骤 4)。
关于这个过程有三个额外的细节需要注意。首先,在步骤 2 中建立的 UE 和 Core-CP 之间的安全控制通道仍然可用,并由 Core-CP 用来在会话过程中向 UE 发送额外的控制信令。
第二,在步骤 4 中建立的用户面通道被称为默认承载服务(Default Bearer Service),还可以在 UE 和 Core-UP 之间建立额外的通道,每个通道都可以有不同的 QCI 值。不同的应用可能会有不同的值,例如,在移动核心网控制下对流量进行 DPI(Deep Packet Inspection,深度包检测), 寻找需要特殊处理的流。
图 17. 端到端用户面通道中涉及的逐跳隧道。
第三,虽然最终的用户面通道在逻辑上是端到端的,但每个通道实际上都是作为一系列逐跳隧道实现的,如图 17 所示(图中为 4G 移动核心网的 SGW 和 PGW)。这意味着对于给定的 UE 来说,端到端路径上的每个组件都会通过一个本地标识符来终止下游隧道,并用第二个本地标识符来启动上游隧道。在实践中,每个流的通道通常被绑定到单个组件间的通道中,这就造成无法区分任何特定的端到端 UE 通道的服务级别。这是 4G 的一个限制,5G 雄心勃勃的想要纠正这个限制。
对移动性的支持可以理解为当 UE 在 RAN 中移动时,重新执行图 16 中所示的一个或多个步骤的过程。由(1)表示的未经认证的链路允许 UE 被覆盖范围内的所有基站所发现。(在后面的章节中,我们将这些链接称为潜在链接(potential links)。)各基站之间直接通信,并根据测量到的信号 CQI 做出切换决策。一旦做出决定,该决定将被发送给移动核心网,重新触发(3)所示的设置功能,进而重建如图 17 所示的基站和 SGW 之间(或 5G 中基站和 UPF 之间)的用户面隧道。蜂窝网络最独特的特点之一是,移动核心网的用户面(如 5G 中的 UPF)在切换过渡期间将会缓存数据,以避免丢包和随后的端到端重传。
换句话说,在 UE 移动的时候,蜂窝网络会保持 UE 会话(UE session)(对应于图 16 的步骤 2 和步骤 4),但只有在移动核心网没有变化的时候才能做到这一点(即只有基站的切换)。这通常是在城市内移动的 UE 的情况,而跨城市的移动(移动核心网需要切换)与 UE 重启没有什么区别。UE 会被分配一个新的 IP 地址,并且不会试图缓存并在随后再次发送传输中的数据。另外,和移动性无关,但与本讨论相关的是,任何在一段时间内处于非活动状态的终端的会话也会丢失,只有当终端再次处于活动状态时,才会建立新的会话并分配新的 IP 地址。
注意,这种基于会话的方法可以追溯到蜂窝网络的源头,即面向连接的网络。一个有趣的思考实验是,移动核心网是否会继续发展,以便更好的匹配运行在其上的,通常会假设为无连接状态的互联网协议。
3.5. 部署选项(Deployment Options)
随着移动网络已经部署了 4G RAN/EPC,在部署新的 5G RAN/NG-Core 的过程中,我们不能忽视从 4G 向 5G 过渡的问题(IP 世界已经为这个问题努力了 20 年)。3GPP 正式发布了多个部署选项,可以总结如下:
独立 4G /独立 5G
基于 4G EPC 的非独立(4G+5G RAN)部署
基于 5G NG-Core 的非独立(4G+5G RAN)部署
三种选项中的第二种,通常被称为“NSA”,涉及在给定的地理区域内,在现有 4G 基站的基础上部署 5G 基站,以提升速率和容量。在 NSA 中,用户设备与 4G 移动核心网之间的控制面流量利用(即通过)4G 基站进行转发,而 5G 基站仅用于承载用户流量。最终,运营商将部署 NG Core,并将 5G 基站连接到 NG Core 以实现独立(SA)运营,从而完成向 5G 的迁移。图 18 展示了 NSA 和 SA 操作。
图 18. NSA 和 SA 5G 部署选项。
我们需要注意这个分阶段演进问题的一个原因是,在接下来的章节中我们将面临类似的挑战。为了在下面的讨论中接近实现的细节,我们必须更具体地说明是在使用 4G 组件还是 5G 组件。作为一般规则,我们将使用 4G 移动核心网组件,因为我们有可用的开源代码。不过我们相信读者可以做出适当的替代,而不丧失其通用性。和其他行业一样,开源社区也在逐步进行将 4G 代码库演进为 5G 兼容版本代码库的工作。
延伸阅读要了解更多关于 4G 到 5G 演进策略的信息,请参阅 GSMA 2018 年 4 月发布的报告:《迈向 5G 之路:介绍和演进》[3]。
Reference:
[1] https://5g.systemsapproach.org/index.html
[2] https://www.grandmetric.com/blog/2018/07/14/lte-and-5g-differences-system-complexity/
评论