一、引言

以前从来没关注电信无线上网网络的具体架构(也即PS域架构),现在开始学5G接触这些东西时,理解起来很痛苦,资料也少,于是一方面到处找人咨询,一方面到处查资料,最后发现应该从3G、4G时代的架构及功能开始学习,这样知识有个演进过程,了解起来就很简单了。废话不说,下面我们来分别看看3G、4G、5G流量上网的网络能力架构。

二、3G时代PS域架构

3G时代的PS域结构非常简单,请见下图:



上图中:

  • RAN:无线接入网,其中的NodeB是基站,RNC是无线网络控制器(Radio Network Controller,也称为基站控制器),RNC负责移动性管理、呼叫处理、链路管理和移交机制
  • 无线核心网:3G核心网由电路域(CS域,CS即Circuit Switched,电路交换)和分组域(PS域,PS即分组交换Packet Switch,有时又称分组业务Packet Service)两部分组成,分别负责传统语音业务和分组域业务(数据和多媒体业务),无线上网只和PS域相关。3G的PS域核心网主要由SGSN和GGSN两部分组成。SGSN和GGSN统称为GSN。

    其中SGSN(Serving GPRS Support Node,服务GPRS支持节点)执行用户和GGSN之间的数据路由(用户面功能),并进行用户接入鉴权控制、移动性管理(包括附着、去附着和位置管理)、会话管理(包括激活、修改或者删除PDP上下文等功能)这些控制面功能。

    GSGN(Gateway GPRS Support Node,网关GPRS支持节点,GSN网关)作为整个GPRS网络的网关,位于GPRS网络和外部分组交换网络(Internet)之间,负责在核心网和外部网络之间交换数据和执行地址转换。

三、4G时代PS域架构

4G时代PS域的发展出现了较大的变化,PS域整体架构如下:

上图中:

  • MME:英文全称Mobile Managenment Entity, 即移动管理实体,主要负责M移动性管理和控制,包含用户的鉴权、寻呼、位置更新和切换等等
  • SGW:Serving GW,即服务网关,用户面接入服务网关,主要负责手机上下文会话的管理和数据包的路由和转发
  • PGW:Packet data network Gateway ,即PDN网关,主要负责连接到外部网络,包括会话和承载管理(承载管理即控制用户设备和网络的连接状态,一个承载可以看做是一条分配了IP地址的数据包传输通道)、用户IP地址分配、计费支持

可以看到,4G PS域的架构相对3G PS域架构进行了演进:

  • 将SGSN的移动性管理等控制面功能划分给了MME
  • 将SGSN的路由管理等用户面功能划分给了SGW
  • PGW相当于原有的GGSN
  • PCRF是新增的策略控制网元

在2016年,受5G规范的CUPS架构(控制面用户面分离架构)的影响,3GPP对SGW/PGW进行了一次拆分,把这两个网元都进一步拆分为控制面(SGW-C和PGW-C)和用户面(SGW-U和PGW-U)。如图:



SGW-C和PGW-C主要根据终端所在位置及漫游信息选择合适的SGW-U/PGW-U的路由,从而建立数据传输承载信道,路由建立后,MME将SGW-C/PGW-C返回的路由信息传至基站eNodeB,eNodeB自动将移动终端数据包在的SGW-U/PGW-U等组成的承载信道中直接传输,对于无需出本地的数据流量在本地直接分流。

三、5G时代PS域架构

5G标准制定时,为了提高系统响应性能,在整个PS域进行了比较大的架构优化,架构方面的优化主要有如下:

  • SBA(Service Based Architecture)架构:实际上就是中心化和微服务化架构,传统网元的功能进行整合后再按功能单一化划分为多个NF,然后NF再被分解为多个“网络功能服务”,支持容器化部署,目标是实现敏捷开发、变更控制范围、可动态伸缩、提升可靠性。所有基于服务的NF都接入SBI(Service Based Interface)消息总线,SBI消息总线基于HTTP/2,采用RESTful API设计原则
  • CUPS(Control and User Plane Separation):控制与用户面分离,用户面可以集中部署也可分布式部署,在分布式部署时将用户面下沉到更接近用户,提升对用户请求的响应速度,而控制面集中管理、统一集群部署,提升可维护性和可靠性
  • NS(Network Slice ):网络切片,基于网络功能虚拟化、软件化的基础上,把网络切成多个虚拟且相互隔离的子网络,分别应对有不同要求的不同服务,再将网络功能进一步细粒度模块化,实现灵活组装业务应用

5G PS域相关的整体架构如下:



相关网元及功能如下

  • AMF:Access and Mobility Management Function,接入及移动性管理功能,AMF接收UE的请求并处理所有与连接和移动性管理有关的任务如鉴权,并通过N11接口向SMF转发会话管理需求。AMF通过询问NRF确定哪一个SMF是最适合处理该连接请求
  • SMF: Session Management Function ,会话管理功能,例如会话建立,修改和释放,包括UPF和AN节点之间的隧道维护、UE IP地址分配和管理、选择和控制UPF功能、计费数据收集和计费接口支持等
  • UPF: User plane Function,用户面功能,包括用户数据包的路由和转发、与外部数据网DN的数据交互、用户平面的QoS处理、流控规则实施(例如门控、重定向、流量转向)等
  • UDM:Unified Data Management,统一数据管理功能,负责用户标识、签约数据、鉴权数据的管理、用户的服务网元注册管理(比如当前为终端提供业务的AMF、SMF等,如当用户切换了访问的AMF时,UDM还会向旧的AMF发起注销消息,要求旧的AMF删除用户相关信息)
  • AUSF:Authentication Server Function,鉴权服务功能,AUSF用于接收AMF对UE进行身份验证的请求,通过向UDM请求密钥,再将UDM下发的密钥转发给AMF进行鉴权处理
  • PCF:Policy Control function ,策略控制功能,支持统一的策略框架去管理网络行为,提供策略规则给网络实体去实施执行,访问统一数据仓库(UDR)的订阅信息
  • NRF:NF Repository Function ,网络存储功能,用来进行NF登记、管理、状态检测,实现所有NF的自动化管理,每个NF启动时,必须要到NRF进行注册登记才能提供服务,登记信息包括NF类型、地址、服务列表等
  • AF:Application Function ,应用功能,指应用层的各种服务,可以是运营商内部的应用如Volte AF(类似4G的Volte As)、也可以是第三方的AF(如视频服务器、游戏服务器),如果是运营商内部的AF,与其他NF在一个可信域内,可以直接与其他NF如PCF交互访问,而第三方的AF则不在可信域内,必须通过NEF访问其他NF
  • NEF:Network Exposure Function ,网络开放功能,位于5G核心网和外部第三方应用功能体之间(可能也有部分内部AF),负责管理对外开放网络数据的,所有的外部应用,想要访问5G核心网内部数据,都必须要通过NEF。NEF提供相应的安全保障来保证外部应用到3gpp网络的安全,提供外部应用Qos定制能力开放、移动性状态事件订阅、AF请求分发等功能
  • NSSF:Network Slice Selection Function, 网络切片选择功能
  • DN: 数据网络Data Network (DN), 比如运营商业务,互联网或者第三方业务等

在这些功能型的NF后面,还有两个重要的NF,它们是:

  • UDR:Unified Data Repository ,统一数据存储/仓库,用于UDM存储订阅数据或读取订阅数据以及PCF存储策略数据或者读取策略数据
  • UDSF:Unstructured Data Storage network function,非结构化数据存储功能,所有NF的非结构化数据都存储于UDSF

从以上架构可以看出,无论怎么演进,网络架构中的用户管理、会话管理、移动性管理、接入和鉴权管理的控制面功能和数据包转发的用户面功能都是PS域的必选基础功能,从上面这些NF的功能可以看出,5G的基础功能相关NF是从4G的网元进行功能拆分再部分整合后形成的功能体:

  • MME中负责接入和移动性管理的功能独立出来,成了5G的AMF
  • SGW-C和PGW-C关于会话管理的功能合并成为SMF
  • MME和HSS中用户鉴权的功能被抽取出来,合并成为5G的AUSF,HSS中剩余的用户数据管理功能独立成为UDM,和AUSF配合工作来完成用户鉴权数据相关的处理
  • PCRF成了5G中的PCF
  • SGW-U和PGW-U合并成为5G的用户面功能UPF
  • AF和DN基本功能保持不变就是4G网络中的AS和互联网

同时为了适应新的SBA架构和业务要求,新增了NSSF、NRF、UDR、UDSF及NEF以及SBA总线。

四、小结

经过查阅各种互联网上分享的知识和阅读部分3GPP规范,并多处求教,同时结合3G、4G的PS域组网架构,老猿终于将5G PS域各功能体的大致功能弄清楚了。这个关于5G各NF的功能介绍,应该是目前网上相关文章中最全的,并且由于以前老猿本身对核心网并不熟悉,因此介绍时写得还算比较通俗易懂,这些内容有助于有一定IT基础大众的理解。

我们看到,从3G到4G、4G到5G的演进过程中,核心功能是一脉相传,但实现的方式在不停演进,系统实现演进的目的就是为了提升用户上网响应的性能、减少不必要的流量传输、提升系统的可复用性、可靠性和扩展性,并节约投资。

最后要感谢各位互联网上知识分享的达人,由于查阅资料众多,也没有记录相关网页,在此就不一一致谢了,同时要感谢各位同事和朋友的线下帮助。

IT人的5G网络架构视点:从网络架构演进的前世今生详解5G各NF网络功能体的更多相关文章

  1. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  2. Android热门网络框架Volley详解[申明:来源于网络]

    Android热门网络框架Volley详解[申明:来源于网络] 地址:http://www.cnblogs.com/caobotao/p/5071658.html

  3. struts2常用标签详解(申明:来源于网络)

    struts2常用标签详解(申明:来源于网络) 地址:http://blessht.iteye.com/blog/1184960

  4. Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT Source Maps 详解

    系列 Sentry-Go SDK 中文实践指南 一起来刷 Sentry For Go 官方文档之 Enriching Events Snuba:Sentry 新的搜索基础设施(基于 ClickHous ...

  5. 本文详解5G是个什么鬼,程序员都准备好了吗?

    无线移动通讯发展历史 最近5G的概念炒的如火如荼,为此,华为和高通还干了一仗.这篇文章从技术层面给大家分析,什么是5G,它和4G比,高级在哪里? 我们来看看移动互联网的技术发展: 然后我们在来看看他们 ...

  6. 详解区块链P2P网络

    根据前一篇文章<从微观到宏观理解区块链>我们已经了解到,微观上,区块链本质就是一种不可篡改且可追踪溯源的哈希链条:宏观上,还具备了另外三个基本特征:分布式存储.P2P 网络和共识机制.分布 ...

  7. 【Linux 运维】查看网络连接状态信息之netstat和ss命令详解

    一.netstat 常用命令详解 通过man netstat可以查看netstat的帮助信息: netstat 命令:用于显示各种网络相关信息,如网络连接,路由表,接口状态,无效连接,组播成员 等等. ...

  8. CentOS 6.9下KVM虚拟机网络Bridge(网桥)方式与NAT方式详解(转)

    摘要:KVM虚拟机网络配置的两种方式:NAT方式和Bridge方式.Bridge方式的配置原理和步骤.Bridge方式适用于服务器主机的虚拟化.NAT方式适用于桌面主机的虚拟化. NAT的网络结构图: ...

  9. Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)

    1.简介 上一篇中宏哥已经将其的理论知识介绍了一下,这一篇宏哥就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划. 2.网络计划实战 通过上一篇的学习,宏哥将其 ...

随机推荐

  1. ArrayList使用及原理

    之前面试时,经常被问到ArrayList的原理,今天整理了一些ArrayList的使用原理和必问的知识点. ArrayList的继承关系 定义一个ArrayList的方法 ArrayList的三个构造 ...

  2. php 使用 phpword 操作 word 读取 word

    思路 1. 加载word文件.2. 循环判断加载出来的数据.( 数据下面有很多个节点 )( 节点是按照数据的类型分类的 例如 无样式的文本是RunText,换行是TextBreak,表格是table. ...

  3. slam-g2o安装失败的解决问题

    1.安装依赖项libqglviewer-dev出问题 原因: ubuntu16.04或者14.04不能直接sudo apt-get install libqglviewer-dev. 使用三个包来安装 ...

  4. CentOS 8.x 下尝试安装.Net 5 的运行时

    1.背景 看着不管是群里还是公众号里这几天最热闹就是.Net 5.0 正式版的发布.C#9. 当然要开发.net 5.0 的项目就需要把VisualStudio升级的v16.8.0版本了.升级后自带着 ...

  5. Java—多线程

    一.多线程 原理: 一个cpu内核有"一个指针",由于cpu的频率过高,所以感觉不到卡顿.(伪线程) 二.进程&线程 进程:进程指正在运行的程序.确切的来说,当一个程序进入 ...

  6. 基于docker部署ceph以及修改docker image

    前言 容器和ceph的结合已经在一些生产环境当中做了尝试,容器的好处就是对运行环境的一个封装,传统的方式是集成为ISO,这个需要一定的维护量,而容器的相关操作会简单很多,也就有了一些尝试,个人觉得如果 ...

  7. hadoop启动脚本

    记录一下一个简单的hadoop启动脚本 就是启动zookeeper集群,hadoop的HDFS和YRAN的脚本 start-cluster.sh 关于关闭的脚本,只需要顺序换一下,然后将start改为 ...

  8. [web安全原理分析]-SSRF漏洞入门

    SSRF漏洞 SSRF漏洞 SSRF意为服务端请求伪造(Server-Side Request Forge).攻击者利用SSRF漏洞通过服务器发起伪造请求,就这样可以访问内网的数据,进行内网信息探测或 ...

  9. pip install 一个本地包时提示error: Microsoft Visual C++ 14.0 is required.

    错误如下: error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Too ...

  10. Java学习之Swing Gui编程

    Java学习之Swing Gui编程 0x00 前言 前面的使用的Gui是基于Awt 去进行实现,但是在现实写Gui中 AWT实际运用会比较少. 0x01 Swing 概述 AWT 和Swing 区别 ...