【3GPP】【核心网】核心网/蜂窝网络重点知识面试题二(超详细)

2024-04-11 06:12

本文主要是介绍【3GPP】【核心网】核心网/蜂窝网络重点知识面试题二(超详细),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 欢迎大家订阅和关注,3GPP通信协议精讲(2G/3G/4G/5G/IMS)知识点,专栏会持续更新中.....敬请期待!

目录

1. 对于主要的LTE核心网接口,给出运行在该接口上数据的协议栈,并给出协议特征

2. 通常说的nas加密,指的是什么?常见的加密方式有哪些?解密的大致原理是什么?

3. 当一个s1mme接口信令只有一侧的,比如detach req信令只有e-NB侧的S1-AP Id和ip时,如何关联到上文

4.  基本了解移动用户上网的几大流程场景:attach, S1 release, service request,pathswitch,detach等基础信令流程;同时了解到这些流程对应到手机的哪些实际行为


1. 对于主要的LTE核心网接口,给出运行在该接口上数据的协议栈,并给出协议特征

1.接口协议栈

    接口是指不同网元之间的信息交互方式。既然是信息交互,就应该使用彼此都能看懂的语言,这就是接口协议。接口协议的架构称为协议栈。根据接口所处位置分为空中接口和地面接口,响应的协议也分为空中接口协议和地面接口协议。

    空中接口是无线制式最个性的地方,不同无线制式,其空口的最底层(物理层)的技术实现差别巨大。LTE空中接口是UE和eNodeB的LTE-Uu接口,地面接口主要是eNodeB之间的X2接口,以及eNodeB和EPC之间的S1接口。

1.1 三层

    协议栈的分层结构有助于实现简化设计。底层协议为上层提供服务;上层使用下层的提供的功能,上层不必清楚下层过程处理的细节。比较常见的分层协议有OSI七层参考模型和TCP/IP四层协议。

    无线制式的接口协议也分层,粗略分为物理层(层一,L1,PHY)、数据链路层(层二,L2,DLL)、网络层(层三,L3,NL)。

    物理层主要功能是提供两个物理实体间的可靠比特率传输,适配传输媒介。无线空口中,适配的是无线环境;地面接口中,适配的则是E1,网线,光纤等传输媒介。

    数据链路层的主要功能是信道复用和解复用、数据格式的封装、数据包调度等。完成的主要功能是具有个性的业务数据向没有个性的通用数据帧的转换。

    网络层的主要功能是寻址、路由选择、连接的建立和控制、资源的配置策略等。

eUTRAN和UTRAN的分层结构类似,但为了灵活承载业务、简化网络结构、缩短处理时延,rUTRAN接口协议栈以下功能从层三转移到层二:

(1)动态资源管理和Qos保证功能转移到MAC(媒介接入控制)层。

(2)DTX/DRX(不连续发射/接收)控制转移到MAC层。

(3)业务量测量和上报由MAC层负责。

(4)将控制平面的安全性(加密)和完整性保护转移到PDCP(Packet Data Convergence Protocol)分组数据汇聚协议。

1.2 两面

LTE接口协议栈除了分层还分面:用户面协议和控制面协议。用户面负责业务数据的传送和处理,控制面负责协调和控制信令的传送和处理。

用户面的主要功能:头压缩、加密、调度、ARQ/HARQ。

控制面的主要功能:RLC和MAC层功能与用户面中的功能一致;PDCP层完成加密和完整性保护;RRC层完成广播,寻呼,RRC连接管理,资源控制,移动性管理,UE测量报告控制;NAS层完成核心网承载管理,鉴权及安全控制。

用户面和控制面都是逻辑上的概念。在层一,不区分用户面和控制面;在层二,数据功能处理开始区分用户面和控制面;在层三,用户面和控制面则由不同的功能实体完成。

    在无线侧,用户面和控制面还在一个物理实体eNodeB上;而在核心网侧,用户面和控制面则完全实现了物理上的分离,分别安排在不同的物理实体上。

    不同接口协议细节有所不同,但在架构上都可套用如图所示的三层两面协议栈通用模型。

S1-MME是e-NodeB连接MME的控制面接口

S1-MME协议栈

协议特征:

        IP_protocol = 132 (SCTP)&& SCTP.payload_protocol_id = 18(S1AP) 

S1-U是e-NodeB连接S-GW 的用户面接口  

S1-U协议栈

协议特征:

         GTP.version = 1 && UDP.port = 2152再根据teid匹配

S6a协议栈

协议特征:

IP_protocol = 132 (SCTP)&& (SCTP.payload_protocol_id = 46(diameter) ||(diameter.version = 1 && diameter.application_id = 16777251))

S11协议栈 

协议特征:

         GTP.version = 2   && UDP.port = 2123

2. 通常说的nas加密,指的是什么?常见的加密方式有哪些?解密的大致原理是什么?

NAS:非接入层(Non-Access stratum),位于终端UE和移动性管理实体MME内。NAS过程用于UE各MME间移动性管理与会话管理过程:支持移动性管理功能以及用户面承载的激活、修改与去激活,并负责NAS信令的加密与完整性保护。

NAS信令分为EMM(EPS Mobility Management);ESM(EPS Session Management)

EMM: 移动性管理-如注册和位置更新,GUTI重分配过程、鉴权过程、安全模式命令过程、标志过程、attach 、detach等几个模块功能。这些过程都是在非接入层信令连接建立基础之上才发起的

ESM: 会话管理-如通话建立。建立和维护UE 和PDN GW 之间的IP连接。包括:网络侧激活、去激活和修改EPS承载上下文;UE请求资源(跟PDN的IP连接,以及专用承载资源)

通常说的NAS加密是信令加密,加密方式(1128-EEA12128-EEA23128-EEA3 

NAS 解密

1.从S6a接口的diameter包获取Kasme

DIMETER  Authentication-Infomation answer中,获取Kasme

2.从S1-MME接口的包中获取加密类型

S1-AP/NAS-EPS Id-dowdlinkNASTransport,security mode command中,Fnas_eps.emm.toc.010 .... = Type of ciphering algorithm: EPS encryption algorithm 128-EEA2 (2)获取加密类型,EEA0表示不加密

3.从S1-MME接口的包中获取待解密消息

 S1-AP/NAS-EPS Id-innitialcontextsetup  获取待解密消息

解密过程

1、将第一步获得的Kasme输入到下面的KASME/KeNB框中

2、algorithm distinguisher选择NAS-enc-alg

3、algorithm identity选择02

  1. algorithm输入第二步获取的加密类型
  2. KEY输入步骤4生成的Knasenc
  3. CIPHERTEXT BLOCK输入第三步待解密的内容
  4. 如果第四步的algorithm distinguisher和algorithm identity不太确定,可以多试几个组合,解密后的结果为0741开头的应该就是正确的

1.选择pcap文件,替换加密bytes

解密原理

解密需要两个信息: 1  加密算法; 2  密钥。

加密算法:

加密算法在S1接口的security mode command/complete消息中,根据MME, ENODEB的加密算法优先级设置协商(明文)得出的,可以包的解析获取。目前可选的加密算法有3种:(1)128-EEA1(2)128-EEA2(3)128-EEA3。第一种和第三种算法的参考文档见链接:       ETSI - Custodian, Security algorithms, codes, licences

第二种算法是国内线上普遍采用的,第三方的开源代码链接如下:

http://www.gladman.me.uk/

密钥派生过程:

(1)Kasme:

  Kasme又称根密钥,NAS层用于加密及完整性的所有密钥,都是由根密钥Kasme派生得出的。Kasme由K,CK通过H M A C-SH A -256 算法生成,在S6a接口上明文传递,可以从S6a的包里解析获取。

  1. Knasenc:

 由Kasme派生出的密钥分加密密钥(entryption key)和完整性密钥(integrity key),前者用来加密,后者用来验证消息的完整性。我们只关注加密密钥,在NAS层即为Knasenc。

Knasen是由根密钥Kasme,和一个辅助参数做为输入,通过HMAC-SHA-256算法得到。此密钥需要软件计算,线上数据包里不会明文传递。

得出加密算法和密钥之后,将密钥,密文长度,及其他辅助信息如上下行,序列号等作为加密算法的输入,根据算法计算,得出密钥流,然后将密钥流与密文流做异或运算,即可得出明文。

3. 当一个s1mme接口信令只有一侧的,比如detach req信令只有e-NB侧的S1-AP Id和ip时,如何关联到上文

 首先根据e-NB的ENB-UE-S1AP-ID 与ip信息,设置过滤条件,关联出S1mme接口的报文

在找到核心网侧MME-UE-S1AP-ID和IP,设置过滤条件,得出关联报文,在得出的attach request 报文里找到imsi信息。

过滤条件取再或imsi得到如下报文,可以看到有create session response报文,报文里面含有teid+ip、MSISDN、IMEI等信息。

create session response报文同时会分配上行用户面数据携带的teid+ip(这个信息会通过s1mme接口intinal context setup req消息给到enb)

4.  基本了解移动用户上网的几大流程场景:attach, S1 release, service request,pathswitch,detach等基础信令流程;同时了解到这些流程对应到手机的哪些实际行为

attach对应行为手机开机

detach对应行为手机关机

S1 release   手机与网络侧链接断开,释放上下文信息

pathswitch:请求将业务数据的通道改变,就是将源SAE bearers 中的GTP节点切换到在在目标eNodeB中新建立的SAE bearers的GTP节点(X2切换)

service request:CC呼叫控制,SSS补充业务,SMS短信

S1释放过程有以下两种方式:

  1. eNodeB发起释放,原因是操作维护干预,不明原因的失败,用户休止状态,重复RRC

信令完整性检查失败,由于UE发生的信令连接失败而引起的S1释放等;

  1. MME发起的释放,由于鉴权失败,去附着等。

1.如果eNodeB检测发现需要与手机断开信令连接和所有的无线承载,eNode会向MME发送S1 UE Context Release Request,并且包含释放原因。注意:第一步只是考虑eNodeB初始化S1释放的过程。如果是MME初始化S1 release过程,则不需要考虑这步。

2.MME发送Release Access Bearers Request到S GW,请求释放所有和手机相关的S1-U承载。此消息既可以由从eNodeB发来的S1 Release Request消息触发也可以由MME的其他事件触发。

3. S GW释放所有eNodeB相关于该手机的信息,并且向MME返回Release Access Bearers Response,手机的S GW上下文其他的元素则不受影响。S GW保留对该手机承载配置的相关信息。S GW开始缓存到手机的数据包,并且初始化"Network Triggered Service Request" 过程。

4.MME发送S1 UE Context Release Command 给e-NodeB

5.如果RRC连接已经释放了,eNodeB会发送RRC Connection Release 消息 Acknowledged Mode到手机。

6.eNodeB通过向MME发送S1 UE Context Release Complete消息确认S1 Release。通过此消息该手机在MME和eNodeB间的信令连接被断开。MME删除了所有eNodeB的从手机MME上下文中得来的信息,但保留了其他的手机的MME上下文关于S GW的 S1-U配置信息。

Service Request

1.手机向eNodeB发送NAS:Service Request,这个消息被包含在RRC消息中。RRC消息可以用来封装S-TMSI和 NAS消息。

2.eNodeB向MME转送NAS消息。NAS 消息被封装在S1-AP: Initial UE Message中。

3.

4. MME发送S1-AP Initial Context Setup Request到eNodeB。这步为活动的EPS承载激活了无线和S1的承载。

5. eNodeB 开始处理无线承载的建立过程,并且user plane的安全也是在步建立的。当user plane的无线承载被建立起来了,Service Request也就结束了EPS 承载的状态将会在手机和网络间进行同步。如果没有无线的承载被建立起来,手机应该删除EPS 承载

6. 现在手机发送的上行数据可以通过eNodeB被转发到Serving GW。eNodeB通过Serving GW地址和TEID来转发数据。Serving GW继续转发数据到Serving GW。

7.

8. MME通过每个PDN连接发送Modify Bearer Request到Serving GW。这时Serving GW可以发送下行数据到手机。如果PDN GW请求手机的位置信息,并且手机的位置信息也被改变了,MME也会在该消息中包含User Location Information。

9. 如果RAT Type和上次使用的不一致,或者手机的位置信息被包含在消息中。Serving GW应该向PDN GW发送Modify Bearer Request。

10. 如果网络中动态的部署了PCC,PDN GW可以根据RAT Type通过IP CAN Session Modification过程来获取PCC规则。如果没有部署PCC,PDN GW可以使用本地的QoS策略。

11.

接口

可选

字段

可选

注释

Initial UE Message /Service request

S1-MME

M

S_TMSI

M

值同guti,可用于关联老的流

Additional guti

O

Old guti是从P-TMSI映射的值的时候,该guti并不是MME分配的guti,此时包里带Additional guti,additional guti才是MME分配的guti

LAI

O

位置信息

Authentication Information Request/Response

S6a

O

当前的HSS中没有该用户的鉴权信息时,发起鉴权过程,S6A的包中会包含rand和key

Authentication Request

S1-MME

O

KSI

M

RAND

Authentication Response

S1-MME

O

Security Mode Command

S1-MME

O

NAS security algorithms

M

更新加密算法

KSI

Security Mode Complete

S1-MME

O

IMEISV

O

如果cmd中有IMEISV request,则complete中必须携带IMEISV。

此包开始用新的密钥加密,security header type为4,凭此判断更新密钥,并用新的密钥解密

Initial Context Setup Request

S1-MME

M

ERAB-ID

M

Initial Context Setup Response

Initial Context Setup Complete

Modify Bearer Request

S11

M

MEI

C

Serving Network

CO

Modify Bearer Response

S11

M

Cause

MSISDN

Linked EPS Bearer ID

这篇关于【3GPP】【核心网】核心网/蜂窝网络重点知识面试题二(超详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/893277

相关文章

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

2025版mysql8.0.41 winx64 手动安装详细教程

《2025版mysql8.0.41winx64手动安装详细教程》本文指导Windows系统下MySQL安装配置,包含解压、设置环境变量、my.ini配置、初始化密码获取、服务安装与手动启动等步骤,... 目录一、下载安装包二、配置环境变量三、安装配置四、启动 mysql 服务,修改密码一、下载安装包安装地

在macOS上安装jenv管理JDK版本的详细步骤

《在macOS上安装jenv管理JDK版本的详细步骤》jEnv是一个命令行工具,正如它的官网所宣称的那样,它是来让你忘记怎么配置JAVA_HOME环境变量的神队友,:本文主要介绍在macOS上安装... 目录前言安装 jenv添加 JDK 版本到 jenv切换 JDK 版本总结前言China编程在开发 Java

Spring Boot Actuator应用监控与管理的详细步骤

《SpringBootActuator应用监控与管理的详细步骤》SpringBootActuator是SpringBoot的监控工具,提供健康检查、性能指标、日志管理等核心功能,支持自定义和扩展端... 目录一、 Spring Boot Actuator 概述二、 集成 Spring Boot Actuat

如何在Java Spring实现异步执行(详细篇)

《如何在JavaSpring实现异步执行(详细篇)》Spring框架通过@Async、Executor等实现异步执行,提升系统性能与响应速度,支持自定义线程池管理并发,本文给大家介绍如何在Sprin... 目录前言1. 使用 @Async 实现异步执行1.1 启用异步执行支持1.2 创建异步方法1.3 调用

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤