分享

看log学5G(40)--无线网络传递的NAS消息

 和老康一起学5G 2022-06-13 发布于陕西

一、什么是NAS

NAS(Non-Access Stratum)是无线网络中非接入层及包括移动性管理(MM)和会话管理(SM)协议 5G(NR)系统中NAS(非接入层)是一组协议,用于用户(UE)和移动管理实体(AMF)之间传送非无线信令消息和进行5G/RAN接入和会话管理。它位于NR网络最高层(L3)层;

图1.5G(NR)系统中NAS位置图

二、NAS层移动性管理(MM)

在5G网络中NAS(非接入层)做为终端(UE)和核心网单元AM之间控制面的最高层除负责3GPP和non 3GPP网络的接入外,负责终端(UE)的移动性管理(Mobility Management),具体负责:

  • 注册(registration)

  • 注销(de-registration)

  • eCall不活动流程(eCall inactivity procedure)

  • 连接模式流程(connected mode procedure)

  •     网络发起的NAS消息传输(network-initiated NAS transport)

  •   初次认证和密钥协商流程(primary authentication and key agreement procedure)

  •     安全模式控制(security mode control)

  •   通用UE配置更新(generic UE configuration update)

  •     鉴权(identification)

  •   UE发起的NAS消息传输(UE-initiated NAS transport)

  • 连接管理程序(connection management procedure)

  •     服务请求(service request)

  •     寻呼(paging)

  •     通知(notification)

三、NAS层会话管理

在5G网络中终端(UE)通过N1接口的NAS消息执行5GS会话(5GSM)管理流程。也就是5GSM子层支持UE和SMF中的PDU会话处理(经AMF传输)的实体。5GSM包括以下流程:

  • -  PDU会话认证和授权、建立、修改和释放;和

  • -  请求在3GPP接入和non 3GPP接入网间执行现有PDU会话切换,或将EPS中现有的PDN连接转移到5GS。

每个PDU会话代表一个在UE和SMF之间建立的PDU会话;即使构成UE和 SMF之间相应PDU会话的无线和网络资源被临时释放,PDU会话也可以保持建立。只有在UE和AMF之间建立了5GMM 上下文,并且AMF使用5GMM流程启动NAS消息安全交换后才能执行5GSM流程。会话管理具体包括:

  •       PDU会话建立

  •        PDU会话认证

  •        PDU会话修改

  •        PDU会话释放

  •        5GSM状态管理

四、移动性和会话管理网络

通过NAS进行终端移动性管理和会话网络中包括RRC、PDCP、RLC、MAC和PHY层。其中网络单元中AMF只有NAS层,没有传输层。相关管理和传输层结构如下图所示:

          图2.5G(NR)系统移动性和会话管理结构图

N1上的NAS协议包括:NAS移动性管理和NAS会话管理组件,其中:

  •    单个N1 NAS信令连接用于每个接收到UE连接的条目。单个N1端点放置在AMF中。

  •    单个N1 NAS信令连接用于注册管理和连接管理(RM/CM)以及用于UE的SME相关消息和策略。

五、NAS消息解析

在无线网络中NAS消息可通过RRC SetupComplete、DL Information Transfer、UL InformationTransfer、initiating Message 、 Initial Context Setup Request等消息传递。

5.1 RRC SetupComplete

UuMsg

    message

        t = c1 

         rrcSetupComplete          

               t = rrcSetupComplete

                     tOptFlags

                        registeredAMFPresent = 1

                        guami_TypePresent = 1              

                        selectedPLMN_Identity = 1

                                    registeredAMF

                                        tOptFlags

                                            plmn_IdentityPresent = 0

                                        amf_Identifier

                                            numbits = 24

                                            data = 08 00 08(HEX)

                                    guami_Type = 0 : RRCSetupComplete_IEs_guami_Type_Root_native

                                    dedicatedNAS_Message

                                        nocts = 78

                                        data = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff(HEX)

5.2 dlInformationTransfer

UuMsg

    message

        t = c1

                t = dlInformationTransfer             

                    dlInformationTransfer

                        rrc_TransactionIdentifier = 2

                        criticalExtensions                         

                                dlInformationTransfer

                                    tOptFlags

                                        dedicatedNAS_MessagePresent = 1

                                        lateNonCriticalExtensionPresent = 0

                                        nonCriticalExtensionPresent = 0

                                    dedicatedNAS_Message

                                        nocts = 4

                                        data = ff ff ff ff(HEX)

5.3 ulInformationTransfer

UuMsg

    message      

                t = ulInformationTransfer            

                        criticalExtensions                       

                             ulInformationTransfer

                                    tOptFlags

                                        dedicatedNAS_MessagePresent = 1

                                        lateNonCriticalExtensionPresent = 0

                                        nonCriticalExtensionPresent = 0

                                    dedicatedNAS_Message

                                        nocts = 25

                                        data = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff(HEX)

5.4 initiatingMessage

NgapMsg

    t = initiatingMessage

            procedureCode = pDownlinkNASTransport

            union_value

                pDownlinkNASTransport

                    protocolIEs

                        tOptFlags   .......

                        aMF_UE_NGAP_ID = 446628041

                        rAN_UE_NGAP_ID = 98956

                        nAS_PDU

                            nocts = 4

                            data = ff ff ff ff(HEX)

5.5 InitialContextSetupRequest

NgapMsg

    t = initiatingMessage

            procedureCode = pInitialContextSetupRequest

            union_value

                pInitialContextSetupRequest

                    protocolIEs

                        tOptFlags

                            oldAMFPresent = 0

                            uEAggregateMaximumBitRatePresent = 0

                            coreNetworkAssistanceInformationForInactivePresent = 1

                            pDUSessionResourceSetupListCxtReqPresent = 0

                            traceActivationPresent = 1   ......

                            nAS_PDUPresent = 1        ......

                        aMF_UE_NGAP_ID = 446628041

                        rAN_UE_NGAP_ID = 98956

                        coreNetworkAssistanceInformationForInactive

                            tOptFlags   ......

                            uEIdentityIndexValue

                                t = indexLength10                         

                                        numbits = 10

                                        data = 10110110 00(BIT)

                            periodicRegistrationUpdateTimer

                                numbits = 8

                                data = 05(HEX)

                            tAIListForInactive

                                n = 1

                                elem[0]

                                    tOptFlags

                                        iE_ExtensionsPresent = 0

                                    tAI

                                        tOptFlags

                                            iE_ExtensionsPresent = 0

                                        pLMNIdentity

                                            nocts = 3

                                            data = 64 f0 00(HEX)

                                        tAC

                                            nocts = 3

                                            data = 12 70 c0(HEX)

                        gUAMI

                            tOptFlags

                                iE_ExtensionsPresent = 0

                            pLMNIdentity

                                nocts = 3

                                data = 64 f0 00(HEX)

                            aMFRegionID

                                numbits = 8

                                data = 08(HEX)

                            aMFSetID

                                numbits = 10

                                data = 00000000 00(BIT)

                            aMFPointer

                                numbits = 6

                                data = 001000(BIT)

                        allowedNSSAI

                            n = 1

                            elem[0]

                                tOptFlags

                                    iE_ExtensionsPresent = 0

                                s_NSSAI

                                    tOptFlags

                                        sDPresent = 0

                                        iE_ExtensionsPresent = 0

                                    sST

                                        nocts = 1

                                        data = 01(HEX)

                        uESecurityCapabilities

                            tOptFlags

                                iE_ExtensionsPresent = 0

                            nRencryptionAlgorithms

                                numbits = 16

                                data = e0 00(HEX)

                            nRintegrityProtectionAlgorithms

                                numbits = 16

                                data = e0 00(HEX)

                            eUTRAencryptionAlgorithms

                                numbits = 16

                                data = e0 00(HEX)

                            eUTRAintegrityProtectionAlgorithms

                                numbits = 16

                                data = e0 00(HEX)

                        securityKey

                            numbits = 256

                            data = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff(HEX)

                        traceActivation

                            tOptFlags

                                iE_ExtensionsPresent = 0

                            nGRANTraceID

                                nocts = 8

                                data = 64 f0 00 76 08 64 00 00(HEX)

                            interfacesToTrace

                                numbits = 8

                                data = f8(HEX)

                            traceDepth = 0 : Ngap_TraceDepth_Root_minimum

                            traceCollectionEntityIPAddress

                                numbits = 32

                                data = 00 00 00 00(HEX)

                        nAS_PDU

                            nocts = 50

                            data = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff(HEX)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章