首页 / 资讯中心 / 文章详情

4G信令全流程深度解析:从开机附着到上网的完整链路与排查指南

4G信令全流程深度解析:从开机附着到上网的完整链路与排查指南 ★ FEATURED ARTICLE
简介这份资料围绕LTE信令全流程展开面向通信工程专业学生、无线网络优化与核心网运维人员以及准备相关认证或面试的从业者帮助系统梳理4G网络中控制面与用户面的交互逻辑。内容从协议层与概念切入覆盖NAS、RRC、PDCP、RLC、MAC、PHY各层职责并延伸至空闲态与连接态、网络标识、承载概念等基础认知再进入开机附着、随机接入、Service Request、寻呼、切换及CSFB等主要信令流程目录结构按章节递进便于按模块查阅与对照学习。资源包为1个docx文档压缩后约1.83MB以文字讲解与流程说明为主适合作为案头速查与知识汇总材料。目前已有1934人学习下载可帮助读者建立从协议分层到典型流程的完整框架理解各接口信令的触发条件与先后关系为后续网优分析、故障排查或技术面试提供可复用的知识底稿。1. 4G信令全流程从开机到上网一条信令链路上到底跑了什么很多人做4G模块调试或核心网对接时遇到问题第一反应是“看日志”但日志里那一长串 NAS、RRC、S1AP、GTPv2 消息如果没有一条完整链路串起来基本等于看天书。4G信令的全流程解释及汇总要解决的就是这个问题把从终端开机、附着、鉴权、建立承载到真正跑起业务、再到释放的全过程按接口和协议栈拆开告诉你每条消息是谁发给谁、带什么参数、卡住时该看哪一段。它适合做物联网终端、CPE、车联网T-Box、4G仪表测试的工程师也适合刚接触核心网信令分析的新手。下面按真实抓包顺序把这条链路一层层剥开。2. 先分清接口和协议栈4G信令到底分几层跑2.1 从UE到EPC信令经过哪些接口4G信令不是一条线跑到底而是分段接力。终端侧先和基站eNodeB通过空口Uu接口交互这一段跑的是RRC和NAS基站再通过S1接口连到核心网MMES1接口上跑S1AP承载控制面信令MME和SGW之间用S11接口跑GTPv2-CSGW和PGW之间用S5/S8同样跑GTPv2-C。用户面数据走GTP-U和信令面分开。常见做法是抓包时在S1-MME口抓S1AP在S11口抓GTPv2-C在Uu口用终端侧QXDM或基站侧跟踪。三处时间戳对齐才能拼出完整流程。如果只抓一处很容易出现“消息对不上”的玄学问题。接口端点主要协议承载内容UuUE-eNodeBRRC / NAS空口信令、NAS消息透传S1-MMEeNodeB-MMES1AP / SCTP初始上下文、承载建立S11MME-SGWGTPv2-C / UDP会话创建、修改、删除S5/S8SGW-PGWGTPv2-C / UDP会话管理、IP分配S6aMME-HSSDiameter鉴权向量、签约数据这张表建议打印出来贴在工位。排查时先确认问题落在哪个接口再决定抓哪段包比盲目全抓效率高得多。2.2 NAS和RRC各管什么别混在一起看RRC管的是终端和基站之间的无线资源控制包括系统消息广播、RRC连接建立、无线承载配置、测量上报、切换。NAS管的是终端和核心网MME之间的移动性管理和会话管理包括附着、鉴权、安全模式、PDN连接建立、TAU、去附着。关键区别RRC消息在空口就终结基站解析后不会原样透传给核心网NAS消息对基站透明基站只负责在RRC消息里透传。所以你在S1AP里看到的NAS-PDU其实就是终端发出来的NAS消息被基站打包上来的。提示抓包时如果只看到RRC看不到NAS检查基站是否开启了NAS透传或者终端是否已经进入空闲态。3. 附着流程逐条拆从Attach Request到Attach Accept3.1 开机后第一条NAS消息Attach Request里有什么终端开机搜到小区先读SIB拿到PLMN和TAC然后发起RRC连接建立。RRC连接建好后终端在RRC Connection Setup Complete里携带第一条NAS消息Attach Request。这条消息里关键字段包括EPS Attach TypeEPS attach还是combined attach、EPS Mobile IdentityIMSI或GUTI、UE Network Capability支持的加密算法、PDN TypeIPv4/IPv6/IPv4v6、APN。如果终端之前有过附着会用GUTI而不是IMSI减少空口暴露。# 在S1-MME口用tcpdump抓S1AP过滤初始UE消息 tcpdump -i eth0 -s 0 -w s1ap_attach.pcap sctp port 36412 # 抓完后用Wireshark打开过滤表达式 # s1ap.procedureCode 12 (InitialUEMessage) # 再看里面的NAS-PDU过滤nas_eps.emm.message_type 0x41 (Attach Request)逻辑说明S1AP跑在SCTP上端口36412。InitialUEMessage是基站发给MME的第一条S1AP消息里面嵌了NAS-PDU。参数上-s 0表示抓完整包避免截断导致NAS解析失败。如果抓不到先确认SCTP端口是否被防火墙拦了。3.2 鉴权和安全模式MME和HSS怎么配合MME收到Attach Request后如果本地没有终端上下文会向HSS发Diameter AIRAuthentication-Information-RequestHSS返回AIA里面带鉴权向量RAND、AUTN、XRES、KASME。MME选一组向量通过Authentication Request发给终端。终端用USIM算RES回Authentication Response。MME比对RES和XRES一致则鉴权通过。接着MME发起Security Mode Command终端回Security Mode Complete。这一步之后NAS消息开始加密和完整性保护。很多“附着失败”卡在这里现象是终端反复发Attach Request但收不到Accept原因可能是USIM鉴权算法不匹配或者KASME推导出错。# 在S6a口抓Diameter过滤AIR/AIA tcpdump -i eth0 -s 0 -w s6a_auth.pcap tcp port 3868 # Wireshark过滤diameter.cmd.code 318 (AIR) || diameter.cmd.code 318 (AIA) # 看AIA里的Experimental-Result如果带5001错误码说明鉴权向量获取失败参数说明Diameter默认端口3868。AIR里的User-Name通常是IMSIVisited-PLMN-Id是当前TAC对应的PLMN。如果AIA返回结果码不是2001优先查HSS里该IMSI的签约数据是否存在。3.3 初始上下文建立S1AP和GTPv2的接力鉴权通过后MME发Initial Context Setup Request给基站里面带UE Aggregate Maximum Bit Rate、E-RAB to Be Setup List、NAS-PDUAttach Accept。基站收到后配置无线承载回Initial Context Setup Response里面带基站侧的TEID和传输层地址。同时MME向SGW发Create Session RequestGTPv2-CSGW再向PGW发同样消息。PGW分配UE IP地址返回Create Session Response。MME拿到SGW的TEID后通过Modify Bearer Request更新基站侧信息。这一串走完用户面通道才真正打通。# 在S11口抓GTPv2-C tcpdump -i eth0 -s 0 -w s11_create.pcap udp port 2123 # Wireshark过滤gtpv2.message_type 32 (Create Session Request) # 看IEIMSI、MSISDN、RAT Type、Serving Network、PDN Address Allocation逻辑说明GTPv2-C默认UDP端口2123。Create Session Request里的F-TEID字段决定用户面隧道端点。如果PGW返回的Cause值不是16Request accepted常见原因是APN配置错误或IP池耗尽。4. 业务跑起来之后TAU、切换和去附着怎么走4.1 TAU流程终端移动时信令怎么更新终端从一个TAI移动到另一个TAI会发起Tracking Area Update。流程和附着类似但少了鉴权如果GUTI有效多了TAU Request里的Old GUTI和TAI。MME如果发现MME变了会向旧MME要上下文再向HSS更新位置。TAU分两种周期性TAUT3412超时和移动性TAU。周期性TAU如果失败终端会重试重试次数超限后可能去附着。排查时看TAU Request里的EPS Update Type如果是“periodic updating”说明是定时器触发不是移动触发。# 过滤TAU消息 # Wireshark: nas_eps.emm.message_type 0x48 (TAU Request) # 看EPS update type value: 0TA updating, 1combined TA/LA, 2periodic4.2 S1切换和X2切换的信令差异X2切换是基站之间直接协商信令走X2口MME只做路径更新。S1切换是基站通过MME中转信令走S1口。X2切换快但要求两个基站之间有X2链路。S1切换慢但兼容性好。切换失败常见现象是终端在目标小区重建RRC但核心网侧没收到Path Switch Request。原因可能是目标基站没配邻区关系或者X2口SCTP偶联断了。抓包时在源基站、目标基站、MME三处同时抓对比Handover Request和Handover Request Acknowledge的时间差。4.3 去附着终端主动和网络侧发起的区别终端主动去附着发Detach RequestMME回Detach Accept然后MME向SGW/PGW发Delete Session Request。网络侧发起去附着时MME直接发Detach Request给终端终端回Detach Accept。如果是HSS发起Cancel LocationMME会触发去附着。去附着不干净会导致“幽灵会话”现象是PGW侧还有用户面隧道但终端已经重新附着。解决方法是MME定期审计会话或者PGW侧配 idle timeout。5. 避坑与排查4G信令分析里最容易翻车的5个点5.1 抓包时间不同步消息对不上现象S1AP里看到Attach Request但S11里找不到对应的Create Session Request。原因三台设备时钟没同步时间戳差几秒。解决所有抓包点开NTP或者用同一台机器做端口镜像保证时间基准一致。5.2 NAS消息加密后看不懂现象Wireshark里NAS-PDU显示为Encrypted NAS Message。原因Security Mode Complete之后NAS加密没有密钥解不开。解决在MME侧抓包时导出KASME或者用终端侧QXDM抓空口空口有明文NAS。如果都没有只能看消息类型和长度做推断。5.3 GTPv2 Cause值误读现象Create Session Response里Cause16以为失败。原因GTPv2里16是“Request accepted”不是错误码。解决对照GTPv2规范Cause值0-15是错误16-31是成功和接受类。常见错误64Context Not Found72Preferred PDN Type Not Supported。5.4 S1AP Initial Context Setup失败但无明确原因现象基站回Initial Context Setup FailureCause是“Radio Network Layer”但没具体原因。原因空口资源不足或者UE Capability不匹配。解决看基站侧小区级PRB利用率同时对比UE Capability Information里支持的频段和基站配置。5.5 终端反复TAU但每次都被拒现象TAU Request后跟TAU RejectCause是“EPS services not allowed”。原因HSS里该IMSI的签约数据被删了或者MME的TAI List和终端不匹配。解决查HSS签约确认MME的TAI List包含终端当前TAC。6. 用Wireshark做一条完整信令链的过滤与验证6.1 把S1AP、GTPv2、Diameter拼成时间线Wireshark支持多文件合并。把S1-MME、S11、S6a三个抓包文件用Merge打开按时间排序然后加过滤表达式# 合并后过滤关键信令 (s1ap || gtpv2 || diameter) !(gtpv2.message_type 255) # 排除GTP-U的echo只看控制面 # 再按IMSI过滤diameter.User_Name contains 310150123456789逻辑说明合并后时间线能看到MME在收到Attach Request后多久发AIRHSS多久回AIA再多久发Initial Context Setup。如果AIR和AIA之间超过500ms说明HSS响应慢可能是签约数据查询走了慢路径。6.2 用tshark批量提取关键字段做统计# 提取所有Attach Request的IMSI和时间 tshark -r merged.pcap -Y nas_eps.emm.message_type 0x41 \ -T fields -e frame.time -e nas_eps.emm.imsi -e nas_eps.emm.attach_type # 输出示例 # 2025-01-15 10:23:45.123 310150123456789 1 # 2025-01-15 10:24:12.456 310150987654321 1参数说明-Y是显示过滤器-T fields指定输出字段。attach_type1表示EPS attach2表示combined attach。如果大量终端attach_type2但网络不支持CS Fallback会看到Attach Reject。6.3 验证方法用已知正常终端做基线对比我一般会先抓一个已知正常的终端做基线记录从Attach Request到Attach Accept的时间、经过的接口、每条消息的Cause值。然后抓故障终端逐条对比。差异点就是问题点。这个方法比盲查规范快得多也是我踩过多次坑后养成的习惯。注意基线抓包要在同一基站、同一MME、同一时间段做否则负载不同会导致时间差异误判为故障。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站