5G核心网学习平台
精华帖 #06

5G-NAS消息解码实现流程

来自知识星球

5G-NAS消息解码实现流程

NAS信令有两种信令格式,NAS信令的解码过程分两部分进行。

首先,根据NAS信令是否加密进行分类,根据关键字段判断消息类型,进行不同的处理。其次,要区分是

5GMM消息还是5GSM消息,不同类型消息的头部字段含义不同。

移动性管理消息有40种信令类型,会话管理消息有22种信令类型, 无论是移动性管理消息还是会话管理

消息,其每种消息类型字段具有唯一标识, 例如,Registration request消息的值为0x41。

由于NAS信令种类有限,消息类型字段可以唯一标识每种类型的信令,故预先为每种消息类型设计相应的

解码函数,后续解码同样类型的消息时直接调用相应解析函数即可。

具体的NAS解码实现流程如下图所示:

Step1:获取待解析的NAS信令,将NGAP解码模块中无法解析的NAS信令转发到NAS解码模块的消息队

Step2:解析NAS消息第二个8bit的安全头类型,对“安全头类型”字段的 数值进行判断。若“安全头类型”

=0,则此NAS消息为明文消息,已获得明文消 息;若“安全头类型”=1、2、3、4,此NAS消息为受安全保

护的消息,进入 Step3。

Step3:将带有安全保护的NAS信令的消息头部信息送入NAS解密模块进行解密操作,获得明文信息。

Step4:解析NAS消息第一个8bit,得到扩展协议鉴别符,判断当前的消息是 会话管理消息还是移动性管

理消息。若“EPD”=0x7E,则该消息为移动性管理 消息,跳转到Step5;若“EPD”=0x2E,则该消息为会话

管理消息,跳转到Step6。 根据不同消息相应的字段含义进行解析。

Step5:解析安全头类型,解析NAS消息第三个8bit的消息类型标识,根据 解析出的Message type调用相

应的解码函数,对具体的NAS信令进行解析。

Step6:解析PDU会话标识、过程处理标识,解析NAS消息第三个8bit的消 息类型标识,根据解析出的

Message type调用相应的解码函数,对具体的NAS信 令进行解析。

根据不同消息类型封装的解码函数的实现流程如下图所示。

NAS信令除去 前面字段的信息后,后面是由若干信元(IE)组成。在每个信元严格按照TLV编 码规则进

行编码。其中,T是Type,代表信元类型,是该信元的唯一标识代码; L是Length,代表Value域的长

度;V是Value,是数据本身的编码内容。此外, 有些信元编码中还有扩展内容,E代表Extend。此外,

NAS协议还定义了IE存在 性,分为三种:M、O、C,具体含义如表2-4所示。对于非必选IE会有相应的信

元标识(Information Element Identity,IEI)。解码函数的实现流程为:

Step1:获取待解析的NAS剩余编码内容,以及NAS剩余部分长度L0、NAS 消息类型Message type。

Step2:按照Message type在协议中查找该信令类型的编码格式,对信元逐个 解析。

Step3:判断NAS信令的有效性,是否还有待解码的信元。

Step4:根据Message type获得每个信元的存在性(Presence)。若“Presence” = M,则按照LV编码格式

进行解码,即信元包含信元长度(L)和信元值(V); 若“Presence”=O、C时,存在IEI,则按照T-L-V

编码格式(类型-长度-数值) 或T-V编码格式(类型-数值)进行解码。

Step5:一个信元解析完成后,判断是否还有需要解析的信元。若“L0-L”>0, 则还有信元需要解码,继续

循环上述解码过程;若“L0-L” = 0,后续没有信元需要,解码完毕,结束进程。

返回精华帖列表