5GC中PDU Session Establishment 流程(切合实际分析流程)
先附上23502中会话建立的流程图:
上面规范中列出的流程图,优点是
①大而全
但是还有很多的小遗憾,主要是
①没有结合具体的场景来分析
②没有加入协议的主要消息和参数说明
③隐藏了NRF网元选择的流程
④图中箭头上的文字其实不是消息的名称,例如第三步写的是Nsmf_PDUSession_CreateSMContext Request,但实际上真正的消息名称是HTTP2 POST:/nsmf-pdusession/v1/sm-contexts,这容易引起学习的困惑,故而对于新手不是很友好(当初我就是这么过来的,看完了协议发现结合wireshark抓包还是云里雾里)。
以下流程为结合实际情况,更贴近国内运营商实际网络(文章最后的链接也可以参考,很棒)
某广州5G用户到北京出差。早上7点起床后开机,在北京AMF服务区下完成注册。8点上了出租车,点击某APP刷新闻触发PDU会话建立流程。
该流程将通过拜访地北京的gNB接入、北京AMF完成会话管理消息透传、北京SMF完成会话管理控制、北京NRF完成网元选择、北京数据中心UPF完成将用户数据报文转发到北京Internet出口( 北京DN),并由归属地广州UDM下发UE会话管理相关的签约数据、广州PCF下发UE会话管理控制策略。
上图与下文并非一一对应,但流程都是相同的
① UE——>AMF NAS消息:PDU Session Establishment Request,参数包括:PDU Session ID,PDU Session type,SSC Mode,DNN,S-NSSAI等
②SMF Selection 在AMF上进行SMF的选择,主要是通过DNN,S-NSSAI来进行SMF的选择
2.1 AMF——>NRF HTTP2 GET /nnrf-disc/v1/nf-instances
2.2 NRF——>AMF HTTP2 200 OK,参数包括:SMF的IP,FQDN等
③AMF——>SMF CreateSMContext_Request
通过HTTP2 POST发送请求,包含参数:第①步中的NAS消息,SUPI,DNN,PDUSessionID,S-NSSAI,RequestType等
④SMF与UDM的交互
4.1 UDM的选择,与②步骤中SMF的选择相同,省略
4.2 通过子服务Nudm_RegistrationSMFRequest,在UDM中进行注册登记,注册成功会回复 201created
4.3 通过子服务Nudm_GetUESessionManagementSubscriptionDataRequset,在UDM中获取/下载用户签约数据,下载成功会回复 response
⑤可选的二次验证(void)如果在PDU会话期间,,提供了与DN特定身份相对应的身份验证信息,并且SM策略确定需要进行验证,那么就会把验证信息传给DN-AAA服务器进行二次验证,如果验证不通过则拒绝建立会话
⑥ PCF Selection(有条件的)如果request-type是existing PDU Session,那么就用不需要进行PCF的选择
附上NF的发现的原则:一句话概括就是,如果本地配置了服务地址,就按本地配置,否则就需要进行NRF的请求
⑦SMF——>NRF PCF的选择,省略
⑧SMF——>PCF SMPolicy Association Establishment信令,从PCF获取PDU Session的QoS策略
8.1 Npcf_SmPolicyControlCreateResquest 通过HTTP2 POST方法发送,包含JSON参数:SUPI,DNN,PDUSessionID,UE的IPV4地址等
8.2 Npcf_SmPolicyControlCreateResponse 回复201created,包好JSON参数
⑨ SMF与UPF的交互
9.1 UPF的选择,向NRF请求,省略
9.2 PFCP Session Establishment Request和PFCP Session Establishment Response,SMF向UPF发送PFCP会话建立请求,下发QoS参数,主要是UPF的转发规则,比如PDR(包检测规则)等,请求成功回复Accept
(在 UP 功能上建立 PFCP 会话之前,应在 CP 功能和 UP 功能之间建立 PFCP 关联。即使 CP 和/或 UP 功能暴露了多个 IP 地址,在给定的一对 CP 和 UP 功能之间也只能建立一个 PFCP 关联。一个 CP 功能和 UP 功能将由唯一的 Node ID 标识,Node ID 将被设置位 FQDN 或者 ID 地址)
⑩SMF——>AMF Namf_Communication_N1N2MessageTransfer,SMF向AMF传递消息,由AMF转发给UE
实际上这一步执行之前还有一步,是SMF向NRF请求一个AMF的comm服务,参数servicename:namf_comm,只有支持comm服务的AMF才能进行n1n2消息的转发
⒒AMF——>gNB N2PDUSessionRequest(PDUSession ResourceSetupRequest),AMF向RAN发送分配PDU会话资源的请求(N2消息给gNB建立用户面通道)
⒓gNB——>UE PDUSessionEstablishmentResponse NAS消息,是第一步的回复(N1消息给UE通知PDU会话建立成功及参数)
⒔gNB——>AMF PDUSession ResourceSetupResponse(UE开始发送第一个上行数据)
⒕ AMF——>SMF Nsmf_PDUSessionUpdateSMContextRequest AMF向SMF发起更新会话管理上下文的请求
⒖SMF——>UPF PFCPSessionModification
⒗ SMF——>AMF Nsmf_PDUSessionUpdateSMContextResponse(UPF开始发送第一个下行数据)
参考:51xuetongxin.com
PS:如有侵权,请联系删除
推荐一个大神的博客,我根据我抓的PDU session establishment的pcap包,和他的博客做对照,基本一模一样,可以说完全对的上(因为写的太详细,我一度以为是抄协议的,差点错过了)
5GC PDU Session Establishment PDU会话建立流程
本文地址:https://blog.csdn.net/weixin_45022086/article/details/108775093