新闻详情

新闻详情

首页 / 资讯中心 / 详情

5G核心网技术全景:从架构原理到OAI部署实战

发布时间:2026/10/2 15:26:41来源:尧图网络
5G核心网技术全景:从架构原理到OAI部署实战
简介这是一份面向5G通信学习者与网络工程师的PDF资料聚焦5G核心网整体架构与关键技术以清晰方式梳理从业务场景到标准化落地的完整链条。文档从5G网络架构设计概要切入对比连续广域覆盖、热点高容量、低时延高可靠、低功耗大连接等典型场景进而剖析总体设计涵盖控制转发分离、信令连接优化、新空口技术、用户面简化及本地卸载/CDN等关键方向。核心网章节详解网关吞吐量、单个MME支撑的上下文数、并发数及端到端时延等现状并介绍3GPP标准进程与NextGen八大热点方向网络切片、QoS、移动性管理、会话管理等帮助读者理解基于服务的网络架构以及CU分离带来的控制面功能重构与转发面分布化。资源包仅含1个PDF文件大小2.62MB已有318人学习。通读后可建立5G核心网从需求驱动、架构设计到标准化的系统认知适合作为入门学习或备查资料。1. 5G核心网到底在忙什么一份 PDF 背后的知识全景拿到《5G网络技术之核心网介绍.pdf》这类资料的人通常不是来看热闹的。要么是刚转岗到移动核心网方向的工程师要么是正在搭 5G 实训室、需要给团队讲清楚核心网原理的讲师还有一种是在做 OAI 或 free5GC 开源核心网部署、被一堆网元和接口名字砸晕的动手派。这份 PDF 的定位就是一张地图告诉你 5G 核心网里有谁、谁跟谁说话、数据从哪进从哪出。但它毕竟是“介绍”离“能跑起来”还差着十万八千里——PDF 里画得清清楚楚的服务化架构落到真实环境里N2 接口配错一个 IP注册流程能卡你两天。这篇我就按自己带项目时拆解核心网的顺序把架构、协议、部署和踩过的坑一次讲透新手能按章节把知识串起来熟手可以直接跳到部署和排查章节找参数。2. 核心网的网元与接口先把“人”认齐再谈流程2.1 从 4G 到 5G控制面与用户面彻底分家5G 核心网5GC相比 4G 的 EPC最本质的变化不是“更快”而是控制面和用户面从物理上、逻辑上都分开了。4G 时代 SGW 和 PGW 虽然也分控制面和用户面但部署时常常还是一台设备5GC 则把用户面功能彻底抽出来做成独立的 UPF可以下沉到地市、园区甚至基站旁边控制面网元则集中部署。这个拆分带来的直接好处是数据流量不用再像 4G 那样绕一圈回到核心网再出去UPF 离基站越近时延越低这也是 5G 低时延业务的地基。明白了这个背景你再去看 PDF 里的 5GC 架构图就不会懵。控制面网元包括 AMF接入和移动性管理、SMF会话管理、AUSF鉴权服务、UDM用户数据管理、PCF策略控制、NRF网络功能仓库、NSSF网络切片选择用户面只有一个核心角色——UPF。AMF 负责管“人”UE 注册、切换、位置更新都找它SMF 负责管“路”UE 要上网、要建 PDU 会话SMF 给 UPF 下发转发规则。这个分工理解透了后面看任何信令流程都顺。提示下载 PDF 后建议先翻目录重点看“服务化架构”和“接口”两章其余网元细节可以边用边查。2.2 关键接口与协议栈N1 到 N6 别死记按“谁和谁通信”去推5GC 的接口名字看起来多其实规律极强。N1 是 UE 和 AMF 之间的 NAS 信令接口走的是 NGAP 之外的 NAS 协议N2 是基站gNB和 AMF 之间的接口走 NGAPN3 是基站和 UPF 之间的用户面接口跑 GTP-UN4 是 SMF 给 UPF 下转发规则的接口跑 PFCPN6 是 UPF 和外部数据网络DN之间的接口就是普通的 IP 转发。剩下 N8、N10、N11、N12 这些全是控制面网元之间的服务化接口底层清一色 HTTP/2 加 JSON。接口连接双方协议作用N1UE ↔ AMFNAS注册、鉴权、会话管理信令N2gNB ↔ AMFNGAP基站与核心网信令N3gNB ↔ UPFGTP-U用户面数据隧道N4SMF ↔ UPFPFCP下发转发规则N6UPF ↔ DNIP访问外部网络这里有个常见的理解误区很多人以为 5G 核心网全是 HTTP/2实际上 HTTP/2 只用在控制面网元之间的服务化接口SBI上。N2、N3、N4 这几个关键接口仍然是二进制协议抓包分析时选错协议解析器会看到满屏乱码。我一般建议新手先抓 N2 的 NGAP 包因为注册流程第一步就是 gNB 向 AMF 发 Initial UE Message信息量最大也最好对得上 PDF 里的流程图。3. 注册与会话流程PDF 画得再花主线只有两条3.1 注册流程UE 怎么让核心网“认识”自己5G 注册流程是理解核心网最合适的切入点因为它是所有业务的前提。UE 开机后先通过 gNB 向 AMF 发送注册请求这个请求里带着 SUCI加密后的用户标识之前叫 IMSI。AMF 收到后会根据 SUCI 里的信息找到对应的 UDM/AUSF触发鉴权流程。鉴权通过后AMF 从 UDM 拉取用户签约数据检查 UE 有没有权限、能用哪些切片和 DNN最后给 UE 分配一个 5G-GUTI临时标识回注册接受消息。这里有一个 PDF 里经常一笔带过但实际部署时最关键的点AMF 必须正确配置取签约数据的路径也就是 UDM 的地址。如果 AMF 配错了 UDM 的服务化接口地址整个流程会在鉴权后立刻卡住UE 反复发注册请求gNB 侧看 NGAP 一切正常但核心网日志里全是超时报错。用 OAI 部署时这个问题十有八九出在 AMF 的amf.ini里udm那一段的 FQDN 或 IP 填错。3.2 会话建立流程与 TAU注册只是入场券会话才是真正的“上网”注册成功只代表 UE 进了门要真正上网还得建 PDU 会话。UE 发 PDU Session Establishment Request这是 NAS 消息走 N1AMF 收到后先做切片选择——根据 UE 请求的 NSSAI 和签约数据里的 SST/SD 决定走哪个 SMF然后把请求转给 SMF。SMF 是会话建立的“总指挥”它选 UPF给 UPF 下发 PFCP 规则包括隧道 IDTEID、QoS 参数5QI、GBR/MBR 等最后通过 AMF 把 N2 SM 信息PDU 会话对应的隧道信息发给 gNB。gNB 和 UPF 之间的 N3 隧道一建好数据面就通了。TAUTracking Area Update是另一个高频考点。UE 从一个跟踪区跑到另一个跟踪区时触发 TAU流程本质是“换 AMF 或不换 AMF 的注册更新”。如果 PDF 里有 TAU 章节注意看它是不是分成了“同 AMF TAU”和“跨 AMF TAU”两种——跨 AMF TAU 多了个上下文转移步骤AMF 要从旧 AMF 捞 UE 上下文这个 N14 接口的配置经常被忽略。我在实训室搭环境时踩过这个坑手动触发 TAU 后 UE 直接掉线后来发现是旧 AMF 的 N14 接口地址配了新 AMF 的网段上下文转移请求发到了错误的地方。提示自测核心网部署是否成功不要只看注册成功一定要走一遍“注册→PDU 会话建立→Ping 通外部服务器”完整链路。注册成功只能证明 NAS 流程通了会话建立才能暴露 SMF/UPF 配置问题。4. 把 PDF 变成能跑的网基于 OAI 的最小核心网部署4.1 为什么要用 OAI开源方案里最接近“商用形态”的选择看 PDF 只能懂原理真正要验证理解对不对最快的路径是搭一套开源核心网。常见选择是 OAI 和 free5GC两者我都部署过结论是如果你是按 3GPP 标准流程去学用 OAI如果你是做应用开发、需要快速起一套带 Web 界面的核心网用 free5GC。OAI 的 AMF/SMF/UPF 分开部署结构上和商用设备更像适合对着 PDF 逐网元验证free5GC 一体化部署更省事但有些实现“简化”了标准流程反而不利于理解协议细节。OAI 5G 核心网的最小部署只需要 4 个容器AMF、SMF、UPF 和 MySQL存签约数据。NRF 在单机部署时可以不开AMF/SMF 直接配 IP 地址互访即可。生产环境的服务化发现机制先放一边先把流程跑通。硬件要求很亲民一台 8 核 16G 的 x86 服务器足够甚至可以跑在同一台物理机上用 docker-compose 一键起。4.2 逐网元的部署步骤与关键配置先准备基础环境Ubuntu 22.04 系统Docker 和 docker-compose 装好。然后克隆 OAI 核心网的代码仓库切到适合当前 RAN 版本的 tag。这里强调一点OAI 的 AMF 版本必须和接入的 gNB 版本匹配我实测 RAN 用develop分支时AMF 必须也用最新develop否则 NGAP 的版本协商会失败。# 基础环境准备Ubuntu 22.04 sudo apt update sudo apt install docker.io docker-compose-v2 git -y # 拉取 OAI 核心网组件 git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-amf.git git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-smf.git git clone https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-upf.git # 构建镜像需要约 20 分钟取决于机器性能 cd oai-cn5g-amf docker build -t oai-amf:latest . cd ../oai-cn5g-smf docker build -t oai-smf:latest . cd ../oai-cn5g-upf docker build -t oai-upf:latest .镜像构建完成后的四件事按顺序做就不会乱。第一件是配置数据库——OAI 用 MySQL 存 UE 签约信息需要建库建表并插入测试 UE 的 IMSI、密钥K、OPc。第二件是写 AMF 配置重点改amf.ini里的GUAMIMCC/MNC 必须和 USIM 卡一致、PLMN和 NRF 地址单机部署可以不配 NRF。第三件是写 SMF 配置smf.ini里的关键项是UPF的 N4 地址和 SMF 自己的 N4 地址这俩必须和 UPF 容器实际 IP 对应。第四件是 UPF 配置upf.conf里的N3地址要填 gNB 可达的 IP。# MySQL 初始化建库建表示例密码请自行修改 docker run -d --name mysql \ -e MYSQL_ROOT_PASSWORDadmin \ -v /opt/oai-db:/var/lib/mysql \ mysql:8.0 # 导入 OAI 数据库脚本 docker exec -i mysql mysql -uroot -padmin oai-db/oai_db.sql # 插入测试 UE替换 SUPI 和密钥为实际值 docker exec -i mysql mysql -uroot -padmin oai_db \ -e INSERT INTO users (supi, key, opc, amf, sqn) VALUES (208950000000001, 0C0A34601D4F07677303652EE64448E8, 63BFA50EE6523365FF14C1F45F88788D, 8000, 000000000000);数据库配置这里有个高概率翻车点OAI 代码库里的oai_db.sql可能随版本更新改了表结构如果用旧版本的脚本初始化数据库、再跑新版本的 AMF注册时会报SUCI decode error或鉴权参数不匹配。我的习惯是每次构建镜像后都从当前代码库里重新导出 SQL 脚本别复用几个月前的备份。AMF、SMF、UPF 三个容器的启动命令要按顺序执行先 AMF等它日志出现gNB SCTP connection established之前不要动 SMF。因为 SMF 启动时会尝试向 AMF 注册如果 AMF 没起来SMF 会一直重试日志刷屏但不影响最终成功只是会拖慢启动时间。UPF 最后起起之前先确认内核 IP 转发已打开# 开启 IP 转发UPF 转发数据面必需 sudo sysctl -w net.ipv4.ip_forward1 # 启动 AMF docker run -d --name amf --network host \ -v /opt/oai/config/amf.ini:/opt/oai/config/amf.ini \ oai-amf:latest # 启动 SMF docker run -d --name smf --network host \ -v /opt/oai/config/smf.ini:/opt/oai/config/smf.ini \ oai-smf:latest # 启动 UPF docker run -d --name upf --network host \ -v /opt/oai/config/upf.conf:/opt/oai/config/upf.conf \ oai-upf:latest启动顺序的逻辑后面再说——AMF 负责对外接入必须先就位SMF 依赖 AMF 的 SBI 接口才能完成注册UPF 则完全被动等 SMF 通过 N4 接口来下发规则。用--network host是为了避免容器网络 NAT 导致 N3/N4 接口地址对不上多网卡服务器上特别容易出这种问题。4.3 用 gNBsim 验证核心网没有基站也能测注册流程不是每个搞核心网的人手边都有真实基站。OAI 提供了一个叫 gNBsim 的模拟基站工具它实现 NGAP 协议模拟 UE 接入。这个工具的价值在于你可以完全不用管射频和物理层直接测试核心网的注册和会话流程是否正常。gNBsim 的二进制在 OAI 的 RAN 代码库里编译好后配一个gnbsim.conf指定 AMF 的 IP 和要模拟的 UE 数量。# gNBsim 配置关键段gnbsim.conf # 指向 AMF 的 N2 接口地址 [gnbsim] ngap_ip_address 192.168.70.130 # 本机 IP gnb_id 1 gnb_name gnbsim amf_ip_address 192.168.70.130 # AMF 地址 amf_port 38412 [ue] imsi 208950000000001 key 0C0A34601D4F07677303652EE64448E8 opc 63BFA50EE6523365FF14C1F45F88788D dnn internet跑 gNBsim 时注意看 AMF 容器日志。我一般会同时开三个终端一个docker logs -f amf一个docker logs -f smf一个docker logs -f upf。如果三个日志都出现关键信息——AMF 出现REGISTRATION COMPLETE、SMF 出现PDU SESSION ESTABLISHMENT、UPF 出现PFCP SESSION ESTABLISHMENT——那恭喜核心网这个“黑匣子”已经通了。剩下的事就是抓包看细节验证信令顺序。5. 核心网部署避坑现象、根因与解决办法5.1 注册请求石沉大海gnbsim 发了消息AMF 毫无反应现象gNBsim 启动后报SCTP connection established但 AMF 日志里完全看不到Initial UE Message好像数据包凭空消失了。原因我排查发现 AMF 配置里的 N2 接口监听的 IP 写错了。OAI AMF 默认监听eth0的 IP但我是多网卡机器gNBsim 发送的 SCTP 包到了另一块网卡上。代码里抓包看 SCTP 的 INIT 包正常到达但 AMF 的ngap模块绑定的地址不是目标网卡内核协议栈直接丢弃了后继包。解决把amf.ini里ngap段的ngap_ip_address改成实际承载 N2 流量的网卡 IP重启 AMF 容器。用ip addr确认所有网卡地址别按习惯填192.168.70.130这种想当然的地址先tcpdump -i 网卡名 port 38412看看 SCTP 包到底进了哪块网卡。5.2 鉴权失败卡在 5G-MAUSIM 参数没对上号现象gnbsim 注册流程走到Authentication Request之后UE 返回Authentication FailureAMF 日志报MAC mismatch循环重试几次后放弃。原因数据库里的key和opc参数与 gnbsim 里配置的不一致。OAI 默认密钥有两套说法——代码注释里给了一套示例值实际数据库初始化脚本里插的值又是另一套。gnbsim 用的密钥和数据库里的任何一套都对不上。解决把 gnbsim 配置里的key、opc和数据库users表里的记录统一成一套我用的是 OAI 文档里的标准测试号IMSI 208950000000001 那套改完重启 gnbsim一次通过。这个坑在实操里几乎必然遇到因为每个版本手册给的默认值可能不同一定要以当前代码仓库里的oai_db.sql实际插入值为准。5.3 会话建立成功后 Ping 不通N6 出接口的坑现象PDU 会话建立成功gnbsim 报PDU SESSION ESTABLISHMENT SUCCESS但 UE 侧 Ping 外部 IP 地址时不通UPF 日志能看到包进来但没有转发出去。原因UPF 的 N6 接口没打通到外部网络的路由。OAI UPF 默认 N6 接在eth0如果外部服务器和 UPF 不在同一网段需要给 UPF 容器或者宿主机加一条静态路由告诉它去外部网段的下一跳是网关。解决在宿主机上加路由ip route add 10.0.0.0/8 via 192.168.70.1 dev eth0同时确认upf.conf里的n6_ip_address填的是宿主机可达的地址。还有一种隐蔽情况UPF 的 NAT 没有开如果外部网络是私网地址要把upf.conf里 UE 网段执行源 NAT 的配置打开否则包能出 UPF 却回不来。注意ping 内网地址和外网地址的排查路径完全不一样。先 ping UPF 的 N6 地址再 ping 外部网关逐跳缩小范围别一上来就怀疑 UPF 配置。5.4 TAU 触发后 UE 掉线N14 接口没配现象gnbsim 模拟的 UE 从 gNB1 切换到 gNB2 时跟踪区更新TAU完成后 UE 立刻脱离网络AMF 日志报UE context not found。原因跨 AMF 的 TAU 需要 N14 接口传输 UE 上下文OAI 里 N14 其实用的还是 NGAP 的UE Context Transfer流程。我配置 AMF 时图省事没开 N14 相关参数旧 AMF 无法把上下文传给新 AMF。解决在两个 AMF 的配置里都确认打开了ue_context_transfer相关开关并保证两个 AMF 的amf.ini里n14段或对应 NGAP 参数指向正确的对端地址。这个场景在单 AMF 部署时不会触发所以很多人只在有真实切换需求时才暴露出来。5.5 SBI 接口 HTTP/2curl 测不通就先别怀疑服务现象用 curl 测试 AMF 的 SBI 接口比如查注册状态返回curl: (1) Received HTTP/0.9 when not allowed。原因5G 服务化接口走 HTTP/2curl 默认用 HTTP/1.1 请求协议协商失败AMF 直接把连接关了。这不是核心网故障纯粹是测试工具没选对。解决curl 加--http2参数重试或者直接用nghttp客户端。还有更省事的方法AMF/SMF 的日志里会完整打印 SBI 请求和响应体看日志比用 curl 看得更全。用 OAI 调试时我习惯把日志级别调到debug虽然刷屏严重但排障的时候一条完整信令的来龙去脉比什么都值钱。6. 进阶验证与调优从“流程通了”到“指标对了”流程通了只是起点真正让这套核心网为业务服务还要做两件事验证 QoS 参数是否被正确执行以及测出核心网的实际转发性能。前者决定“能不能用”后者决定“敢不敢用”。QoS 验证的核心是看 SMF 下发的 PFCP 规则里的 QoS 参数是否和签约数据一致。打开 SMF 的 debug 日志找PFCP Session Establishment Request这一段里面会列出每个 SDF服务数据流的QERQoS 执行规则。我一般会故意在数据库里把某个 UE 的5qi改成 1会话类业务要求极低时延然后重新触发 PDU 会话建立再用iperf3打流观察 UPF 的转发行为是否符合预期——QoS 检查如果有问题UPF 不会执行任何速率限制流量直接全速跑。这个测试能快速帮你判断核心网到底是“只做了信令转发”还是“真的执行了策略”。性能测试方面工具用iperf3就够了部署在外部服务器上UE 侧gnbsim 环境下就是 UPF 的 N6 出口起一个客户端做 TCP 和 UDP 双向打流。注意一个细节UPF 容器跑在 host 网络模式下时iperf3的吞吐受宿主机网卡驱动和 CPU 中断处理能力影响很大。我实测 10G 网卡上单流 TCP 跑到 6Gbps 就上不去了换多流之后立刻能到 9Gbps 以上这不是核心网瓶颈是单核软中断的瓶颈。遇到这种情况别急着优化 UPF 代码先确认是不是测试方法的问题。还有一个容易被忽略的调优点N3 接口的 MTU。如果 UE 和外部服务器之间的 MTU 不一致TCP 会频繁触发分片重组。5G 核心网里 N3 隧道外面还有一层 IP 头和 GTP-U 头MTU 要比普通链路少 24 字节左右——如果你在 gNB 侧配置 MTU 为 1500实际到 UE 的路径 MTU 会变成 1476UDP 大包直接丢。我处理过一个真实项目的问题终端看视频卡顿抓包发现 UDP 包超过 1476 的全被丢弃最后在 UPF 的 N6 接口把 MTU 改成 1400 彻底解决。这套部署和验证流程跑完回头看那份介绍 PDF你会发现自己已经能看懂每张信令图里每一步对应的日志输出了。我自己的习惯是每做完一次核心网调优就在 PDF 对应章节页脚记一笔当时的配置参数和踩坑记录——下一次再搭环境翻自己的笔记比翻任何官方手册都快。希望这篇能帮你把 5G 核心网从“概念”变成“工具”少走几趟我走过的弯路。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

hindsight:基于事件总线的可回溯日志分析,让事故复盘从小时级到分钟级 2026/10/2 16:05:41

hindsight:基于事件总线的可回溯日志分析,让事故复盘从小时级到分钟级

1. 事故复盘的第一性原理:后见之明本来就不是贬义词 如果你做过后端或者偏业务的技术系统,大概率经历过这种场景:半夜被报警电话拉起来,群里七嘴八舌,A说是缓存的问题,B说是数据库连接打满了,C直…

阅读更多 →
OpenCode终端AI编程助手使用指南:安装、配置与实战 2026/10/2 16:05:28

OpenCode终端AI编程助手使用指南:安装、配置与实战

如果你平时习惯在终端里干活,最近多半刷到过OpenCode这个名字。它本质上是一个开源的终端AI编程助手,你可以把它理解为跑在命令行里的AI结对程序员:不靠网页IDE,不靠图形界面,直接在终端里跟它对话,让它帮你…

阅读更多 →
Univer 在线表格单元格锁定:实现指定区域可编辑的完整指南 2026/10/2 16:05:22

Univer 在线表格单元格锁定:实现指定区域可编辑的完整指南

“想用在线表格做一个报名表或者工单登记表,业务同学打开网页就能填,但只能改我指定的那几格,标题、说明,还有那些公式列,一概不能碰”——这是我最近被问到次数最多的一个需求。字面听上去不复杂,真正落到…

阅读更多 →
AI进课堂不止讲题:备课、互动、作业、学情全场景提效指南 2026/10/2 16:05:22

AI进课堂不止讲题:备课、互动、作业、学情全场景提效指南

晚上十点,办公室灯还亮着。一位老师刚改完40份作业,接着要备明天的课——找一道能让学生眼睛发亮的例题,翻素材库翻了半天也没找到满意的。“AI进课堂”这个话题聊到现在,大家条件反射想到的都是“让AI给孩子讲题”,仿…

阅读更多 →
从EMD到CEEMDAN:模态分解演进与Python实现详解 2026/10/2 16:05:22

从EMD到CEEMDAN:模态分解演进与Python实现详解

简介:一套面向信号处理研究者的CEEMDAN改进算法MATLAB实现资源包,聚焦EMD、EEMD与CEEMDAN在非线性非平稳信号分析中的模态混叠问题。CEEMDAN利用自适应噪声取代EEMD的随机噪声,既能继承集成平均的稳健性,又能提高IMF分解精度与收敛…

阅读更多 →
Linux top命令实战:进程内存占用查看与系统排查技巧 2026/10/2 16:05:22

Linux top命令实战:进程内存占用查看与系统排查技巧

排查Linux服务器问题的时候,我干的第一件事永远是敲下 top 。这三个字母看起来简单,但它能告诉你的东西,几乎等于半台服务器的体检报告——哪个进程在抢CPU,谁把系统内存吃掉了,磁盘IO忙不忙,load averag…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉