开源移动核心网 Magma 架构设计启示

简介: 开源移动核心网 Magma 架构设计启示

Magma 是由 Meta Connectivity 开发并开源给 Linux 基金会的开源移动核心网项目,目的是构建灵活、低成本、可扩展的移动核心网。本文介绍了 Magma 架构设计的基本理念和取舍。原文: Implications of the Magma Architecture: Interoperability, Scale and Resilience

简介

如今有许多移动核心网开源实现,如Open5GSFree5GCOMEC,Magma 是又一个实现。然而,Magma 的关键架构与其他实现不同,其在接近"边缘"的地方从逻辑上终止了 3GPP 协议,在这个上下文中,边缘的意思是无线空口或到另一个移动网络的联邦接口。这一统一的架构决策不是随意做出的,而是具有广泛的含义,本文将对此进行探讨。

在边缘终止协议(Edge Termination of Protocols)

我们先解释一下什么是"边缘终止(edge termination)"。无论是 LTE 的 EPC(分组演进核心网,Evolved Packet Core),还是 5GC(5G 核心网,5G Core),3GPP 标准都定义了 RAN(无线接入网,Radio Access Network)和移动核心网组件之间的接口。


图 1. LTE 和 5G 移动核心网接口


图 1 中两框之间的每条线都是某种定义为3GPP规范一部分的接口。Magma 最感兴趣的是那些被标记为"边缘接口(Edge Interfaces)"的部分,这些是 RAN 和移动核心网之间的接口。Magma 根据 3GPP 标准实现了在这些接口上运行的协议,并且从逻辑上尽可能接近 RAN 的位置,从内部终止了 3GPP 协议,如图 2 所示。


图 2. 在接近 RAN 的位置终结 3GPP 协议


举例来说,3GPP 定义的 S1AP 接口运行在 eNodeB 和 MME(移动性管理实体,Mobility Management Entity)之间,S1AP 消息通过 SCTP(一种可靠传输协议)传递。然而在 Magma 中,S1AP 接口终止于 eNodeB 旁边的模块,S1AP 消息被翻译成 gRPC 消息,所有 Magma 组件之间的通信都通过 gRPC 进行。在尽可能接近 RAN 的位置终结所有特定于 RAN 的协议这一决定具有广泛影响,下面会详细介绍。


图 3. 联邦 Magma 架构


如上图所示,Magma 还终结了另一个边缘(联邦网关,Federation Gateway)上的 3GPP 协议。通过这个接口,Magma 可以与移动运营商现有核心网相连,从而可以共享现有核心网中的计费和订户信息。同样,联邦网关在接入处终止了这些 3GPP 协议,然后使用 gRPC 将所有必要的信息传递给 Magma 的其余组件。


总之,Magma 有两个"边缘"实现了 3GPP 协议: 和 RAN 交互的接口以及联邦网络接口。Magma 在这些接入点上保持了 3GPP 兼容性,并与运行在这些接口另一侧的标准设备进行互操作。但如果查看 Magma 内部,可以看到所有内部通信都是通过 gRPC 进行的,而不是标准 3GPP 协议。

标准兼容

只在边缘实现标准 3GPP 协议的决定意味着 Magma 只能在边缘与其他实现进行互操作。因此,可以将 Magma 移动核心网连接到任何符合标准的 eNodeB 或 gNB,并预期能够工作。类似的,Magma 核心网可以与现有 MNO 的 LTE 网络交互。对 LTE 或 5G 特定功能的支持有可能受限于开发路线图问题,还没有实现,但从架构上讲,这些接口预期可以与任何标准系统互操作。


相反,由于 Magma 没有实现移动核心网内部的所有 3GPP 接口,因此不可能在核心网内任意混合和匹配组件。尽管传统 3GPP 实现允许(比方说)来自一个厂商的 MME 与另一个厂商的 S-gateway 进行互操作,但除了通过上面介绍的接口之外,不可能将来自另一个厂商(或另一个开源项目)的移动核心网的一部分与 Magma 的一部分连接起来。这一场景是否重要取决于用例。


电信基础设施项目(Telecom Infra Project)的开放核心网络项目组(Open Core Network Project Group)正在定义一套基于固定无线接入(fixed wireless access)和私有 5G(private 5G)等特定用例的移动核心网技术规范,符合这些需求规范是 Magma 正在进行的工作的一部分。


Magma 是特意决定不实现所有 3GPP 内部接口的,因为这样可以提高 Magma 在各种场景中的性能和可靠性,此外还可以用一个通用、融合的软件核心网支持广泛的接入技术(LTE、5G 和 WiFi),并降低实现复杂性。这种体系架构的选择对测试和移动性支持也有影响,下面将详细介绍。

对测试的影响

现在有丰富的测试设备可以用来测试 3GPP 协议的性能、规模和兼容性,可以有效利用这些测试工具测试 Magma 实现的那些 3GPP 协议(RAN 接口和联邦接口)。此外,所有基于 gRPC 的内部接口,需要使用专门为 Magma 开发的方法进行测试。这至少增加了对 Magma 的可扩展性和功能进行测试所付出的代价,并且根据测试的投资水平,也可能造成内部接口测试覆盖率不高。

回传的可靠性(Reliability of Backhaul)

在边缘终结 3GPP 协议的决定以多种方式影响移动核心网的可靠性。在长距离回传链路上运行 3GPP 协议已被证明是有问题的,尤其是当回传链路的可靠性不够完美时(例如,卫星用于回传)。这是因为 3GPP 协议在某些情况下对丢包和时延相当敏感,从而会导致连接中断,进而迫使终端重试到核心网的连接流程。实践中并不是所有终端都能很好的处理这个问题,有时会陷入"停滞(stuck)"状态。


Magma 通过两种方式解决回传线路不可靠的挑战。首先,Magma 通过在接入网关中运行更多功能来避免完全依赖回传发送消息。这源于 Magma 高度分布式的架构,在标准 3GPP 中集中部署的功能在 Magma 中被分布到边缘(接入网关)。因此,例如验证 UE 并将其连接到核心网所需的操作通常可以使用 AGW 中的本地缓存信息来完成,不需要任何流量通过回传网络传输。其次,当 Magma 确实需要通过回传链路传递信息时(例如从编排器获得配置状态),使用 gRPC 来完成(gRPC 被设计为在不可靠或低延迟链路的情况下可以可靠运行)。

弹性

Magma 的一个重要设计选择是对运行时和配置状态使用"期望状态(desired state)"模型,其含义为,为了传递所需的状态更改(例如,在数据平面中添加一个新会话),期望的最终状态是通过 API 设置的,这与 3GPP 规范中常见的"CRUD(创建、读取、更新、删除)"接口不一样。期望状态模型在面对故障(包括组件故障和通信路径故障)时实现了更高的可靠性,下面通过一个例子来解释。


考虑为单个 AGW 所服务的 UE 的一组活跃会话建立数据平面状态的情况。假设有两个活跃会话 X 和 Y,然后第三个 UE 变为活跃状态,需要建立会话 Z。在 CRUD 模型中,控制平面指示数据平面"添加会话 Z"。相比之下,期望状态模型会传达整个新状态:"会话集现在是 X、Y、Z"。


CRUD 模型在面对故障时很脆弱。如果某个消息丢了,或者某个组件在一段时间内不可用,无法接收更新,更新的接收方就会与发送方不同步。因此,有可能最终处于这样一种状态: 控制平面认为已经建立了会话 X、Y 和 Z,而数据平面只有 X 和 Y 的状态。通过发送所有期望状态,可以确保一旦接收方能够再次接收消息,就会重新与发送方同步,从而在面对软硬件故障时有更高的弹性。比方说,Magma 网关中的软件组件可以被重启(在崩溃或升级之后),而不需要重新启动 UE 会话,这与传统核心网的实现方式不同。


关于期望状态模型,有两点值得注意。首先,Magma 中有许多模块之间的内部接口,而只有其中的一个子集完全实现了期望状态模型。重要的是运行在回传链路上的接口,即 AGW 和编排器之间的接口,遵守了期望状态模型。因此,任何配置状态的"单一数据源(source of truth)"都在编排器中,状态会在需要时被推送到 AGW 中。AGW 内部子系统之间仍然有一些内部接口,通过状态变化进行通信。


其次,当只有少量状态发生变化时,在两个模块之间发送完整的期望状态是有扩展性问题的。随着 Magma 部署规模和用户数量的增加,有必要在模块之间更有效的发送状态更新。在将用户信息从编排器发送到 AGW 时,这一点非常明显。在维持所需状态方法的同时,有许多方法可以提高此类更新的效率,相应工作(详细介绍参考这篇文章)正在进行中。

支持横向扩展的中心化控制

Magma 采取的设计方法的一个有趣结果是,允许集中控制与高度分布式部署相结合,这种方法是由软件定义网络(Software-Defined Networking)运动开创的,而 Magma 采用了 SDN 式的架构。例如,虽然将 UE 连接到核心网的任务可以由位于基站旁的 AGW 通过本地操作完成,但如上所述,运营商并不需要面对独立管理数百个 AGW 的任务。相反,运营商通过集中化的编排器(有 UI 和 API)(或其他软件)与整个网络进行互动。AGW 通过 gRPC 和中央编排器进行通信,由于 3GPP 的标准核心网架构没有遵循 SDN 方法,因此没有类似的 3GPP 协议可以完成这项工作。3GPP 确实定义了控制和用户平面的分离,但没有集中式控制器与分布式接入网关的概念,这在另一篇文章中有进一步讨论。


为了理解这一决定的影响,假设某家运营商试图在回传质量较低的偏远地区提供移动电话服务。在无线电塔旁安装传统 EPC,以避免在回传链路上运行 3GPP 协议,这可能很诱人。任何扩展此解决方案的尝试都会使运营商管理大量远程 EPC,而没有直接方法管理整个网络。正是这一用例(在回传选择有限的地区进行远程访问),推动了客户对 Magma 的兴趣。


作为具体案例,如果通过编排器将用户添加到 Magma,那么用户信息将传播到所有 AGW。相比之下,在部署了多个传统 EPC 的场景中,每个 EPC 都需要单独配置以添加新用户。

性能

Magma 的 SDN 风格架构提供了天然的性能优势。每次添加 AGW 时,都会向网络添加新的数据平面和控制平面处理能力。因此,随着基站的增加,Magma 的性能自然会上升(每个 AGW 通常支持若干个基站)。


在最近的测试中,单个 Magma AGW 数据平面可以支持约 400Mbps 流量以及 600 个 LTE 并发用户,或者 400Mbps 数据平面流量和 200 个 5G 并发用户。随着更多 AGW 被添加到网络中,数据速率和用户数量都会平滑增加。相比之下,我们对 Open5GS 的测试显示,单节点 EPC 可以支持大约 95Mbps 和 200 个并发用户(LTE)。原始数据之间的差异并不重要,重要的是 Magma 的数据平面和控制平面性能能够随着部署的 AGW 数量的增加而增加。最近提交的一篇会议论文的现场部署测试结果显示,Magma 有能力在单个协调器的控制下扩展到至少 5000 个 AGW。

跨网关移动性

在 Magma 目前的实现中,与 UE 相关的所有运行时状态都被定位到该 UE 所连接的 AGW。虽然对可扩展性有利,但这种方法确实需要权衡利弊。尤其需要考虑支持跨 AGW 的无缝移动性,以允许 UE 在漫游到另一个 AGW 时保持与核心网的连接,这需要在切换期间从一个 AGW 到另一个 AGW 同步控制面状态。这在目前还没有实现,UE 只能在一个 AGW(通常少于 10 个基站)所服务的基站群中无缝漫游。虽然没有这个功能也可以支持许多用例,但这是一个限制。Magma 社区成员已经开始设计工作,目的是解决这个限制。

结论

Magma 旨在为建设和运营移动核心网提供一种可扩展的方法。它在关键边缘接口支持 3GPP 协议,特别是与 RAN 的接口(如图 2 所示),以及与其他移动网络的联盟接口(图 3)。然而,为了获得 SDN 方法的益处,不使用 3GPP 协议在其组件之间进行内部通信。这种方法的主要缺点是,基于 Magma 的移动核心网不能混合、匹配来自多个供应商或开源项目的组件。在现在的实现中,对跨网关的移动性支持也有限制。其优点包括更高的性能和将解决方案扩展到数千个基站的能力,同时保持集中控制点以方便操作和配置。Magma 的方法还提供了一个解决方案,支持不同类型的回传链路(如卫星),具有较高的弹性,能从硬件和软件故障中优雅的恢复。




你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。

微信公众号:DeepNoMind

目录
相关文章
|
6月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB与微服务架构的融合:灵活扩展与高效管理
【5月更文挑战第23天】阿里云PolarDB是适用于微服务的高性能分布式数据库,提供数据分片、水平扩展及高可用性解决方案。通过SQL或API实现弹性扩展,内置故障转移保障服务连续性,且兼容MySQL协议,易于集成微服务生态。通过Spring Boot示例展示了PolarDB的配置与集成过程,强调其在现代云原生应用中的重要角色。
161 1
|
6月前
|
监控 安全 Cloud Native
云原生开源沙龙北京站开启报名 | 微服务安全零信任架构
「微服务安全零信任架构」主题技术沙龙将于4月13日在北京阿里中心举行,欢迎报名!~
云原生开源沙龙北京站开启报名 | 微服务安全零信任架构
|
6月前
|
调度
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(二)
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构
161 0
GitHub开源大厂缓存架构Redis优化的文档被警告,900页全是干货
掌握Redis对Java程序员来说很有必要了。实际上,很少有人真的掌握了Redis的全部技巧,有些甚至连面试题都很难应付。那么,如何全面系统地学习Redis呢?
|
13天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
18天前
|
编解码 人工智能 开发者
长短大小样样精通!原始分辨率、超长视频输入:更灵活的全开源多模态架构Oryx
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据。其核心创新在于能够对图像和视频进行任意分辨率编码,并通过动态压缩器模块提高处理效率。Oryx 在处理长视觉上下文(如视频)时表现出色,同时在图像、视频和3D多模态理解方面也展现了强大能力。该模型的开源性质为多模态研究社区提供了宝贵资源,但同时也面临一些挑战,如选择合适的分辨率和压缩率以及计算资源的需求。
27 3
|
1月前
|
分布式计算 大数据 Serverless
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
在2024云栖大会开源大数据专场上,阿里云宣布推出实时计算Flink产品的新一代向量化流计算引擎Flash,该引擎100%兼容Apache Flink标准,性能提升5-10倍,助力企业降本增效。此外,EMR Serverless Spark产品启动商业化,提供全托管Serverless服务,性能提升300%,并支持弹性伸缩与按量付费。七猫免费小说也分享了其在云上数据仓库治理的成功实践。其次 Flink Forward Asia 2024 将于11月在上海举行,欢迎报名参加。
178 1
云栖实录 | 开源大数据全面升级:Native 核心引擎、Serverless 化、湖仓架构引领云上大数据发展
|
6月前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
225 6
|
1月前
|
机器学习/深度学习 大数据 PyTorch
行为检测(一):openpose、LSTM、TSN、C3D等架构实现或者开源代码总结
这篇文章总结了包括openpose、LSTM、TSN和C3D在内的几种行为检测架构的实现方法和开源代码资源。
42 0
|
6月前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】PolarDB高可用架构解析:确保业务连续性的关键设计
【5月更文挑战第22天】阿里云PolarDB是一款高可用、高性能的云原生数据库,采用分布式共享存储架构实现计算与存储分离。通过主从复制保证数据实时同步,当主节点故障时,从节点能快速接管。此外,PolarDB提供自动故障转移和数据备份恢复功能,确保业务连续性和数据安全性。一个简单的Python SDK使用示例展示了查询数据的过程。总之,PolarDB通过多种机制保障了企业在异常情况下的服务稳定和数据完整性。
268 5