从网络架构演进的前世今生详解5G各NF网络功能体

Karen110
• 阅读 1566

一、引言

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

二、3G时代PS域架构

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

从网络架构演进的前世今生详解5G各NF网络功能体

上图中:

  • 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域整体架构如下:

从网络架构演进的前世今生详解5G各NF网络功能体

上图中:

  • 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)。如图:

从网络架构演进的前世今生详解5G各NF网络功能体

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域相关的整体架构如下:

从网络架构演进的前世今生详解5G各NF网络功能体

相关网元及功能如下:

  • 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的演进过程中,核心功能是一脉相传,但实现的方式在不停演进,系统实现演进的目的就是为了提升用户上网响应的性能、减少不必要的流量传输、提升系统的可复用性、可靠性和扩展性,并节约投资。

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

请点击下方的“阅读原文”去访问老猿Python的博客原文。

本文转转自微信公众号老猿Python原创https://mp.weixin.qq.com/s/-Qk_B3a2CmLaufQGqVLqgQ,如有侵权,请联系删除。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这