第1章 LTE基础与抓包概述

各位好,我是老张。做无线通信协议分析这行,一晃十几年了。今天咱们开始聊LTE抓包,第一件事——你得先搞清楚你抓的是谁跟谁在说话,走的是什么路。

很多人一上来就装Wireshark、插USRP,结果抓了一堆数据包,完全看不懂。为什么?因为你不了解LTE的网络架构和协议栈。说白了,你连地图都没有,怎么知道自己在哪?

核心观点:抓包不是目的,理解信令交互才是。网络架构是你的地图,协议栈是你的语言,抓包工具是你的眼睛。三者缺一不可。

1.1 LTE网络架构:谁在跟谁说话?

LTE网络分三块:UE(你的手机)、eNodeB(基站)、EPC(核心网)。我习惯把它们比作「客人、前台、后台」。

  • UE(User Equipment):就是手机、CPE、数据卡。它负责发信号、传数据。
  • eNodeB(Evolved Node B):基站。它管无线资源调度、测量、切换。注意,LTE里eNodeB比3G的NodeB聪明得多,很多决策直接在基站做,不用每次都问核心网。
  • EPC(Evolved Packet Core):核心网。包括MME(移动性管理)、S-GW(服务网关)、P-GW(PDN网关)。MME管信令,S-GW/P-GW管数据。

我在项目里遇到过一种情况:某厂商基站上报的切换失败率特别高,抓包一看,UE发给eNodeB的测量报告没问题,但eNodeB发给MME的切换请求里,目标小区ID写错了。这就是典型的「前台传错话」,你不抓包根本发现不了。

LTE网络架构图 UE 用户设备 eNodeB 基站 EPC 核心网 MME 移动性管理 S-GW 服务网关 P-GW PDN网关 Uu接口 S1接口 💡 抓包位置:Uu口(空口)抓UE↔eNodeB;S1口抓eNodeB↔EPC。不同位置看到的信息完全不同。

1.2 LTE协议栈:数据是怎么包装的?

协议栈分控制面和用户面。控制面走信令,用户面走数据。我刚开始学的时候,总觉得层数太多记不住。后来想通了——每一层都是在给数据「加包装」,就像寄快递一样。

协议层 全称 主要作用 抓包能看到什么?
NAS 非接入层 UE与MME之间的信令(附着、TAU、承载建立) 附着请求/接受、身份验证、EPS承载上下文
RRC 无线资源控制 UE与eNodeB之间的信令(连接管理、测量、切换) RRC连接建立/重配/释放、测量报告
PDCP 分组数据汇聚协议 加密、完整性保护、头压缩 PDCP序号、加密后的数据(需解密)
RLC 无线链路控制 分段/重组、ARQ重传 RLC序号、分段信息、重传指示
MAC 媒体接入控制 调度、HARQ、随机接入 MAC CE(控制单元)、调度信息、随机接入响应
PHY 物理层 调制解调、编码、资源映射 通常不直接显示,需通过工具解析

我的经验:抓包初期,重点关注RRC和NAS两层。这两层是信令的「主干道」,大部分问题都能在这里找到线索。PDCP和RLC层的问题通常跟数据面性能相关,比如吞吐量上不去、时延大,这时候再往下挖。

举个例子,你手机连不上网,抓包一看:RRC连接建立成功了,但NAS层的附着请求发出去后,MME没回附着接受。那问题大概率在核心网侧,跟空口质量无关。这就是分层分析的价值。

1.3 抓包工具概览:用什么抓?

工具很多,但各有各的脾气。我列几个常用的,你根据场景选。

  • Wireshark:通用网络分析工具。抓S1口、SGi口的数据非常方便。支持LTE协议解析(需要装插件)。免费,社区活跃。
  • tcpdump:命令行抓包工具。适合在服务器上远程抓包,轻量级。我经常在核心网网关上用tcpdump抓S1-U口的数据,然后拉到本地用Wireshark分析。
  • QxDM / QCAT:高通芯片的抓包工具。QxDM抓实时log,QCAT离线分析。抓空口(Uu口)数据,尤其是UE侧的信令,这两个是神器。
工具 抓包位置 优点 缺点
Wireshark S1、SGi、S5/S8 界面友好、协议解析全 空口数据抓不了
tcpdump 任何IP可达的接口 轻量、远程抓包 命令行操作,学习曲线
QxDM UE空口(高通芯片) 空口信令详细、实时 只支持高通芯片、需授权
QCAT UE空口(离线分析) 分析功能强大、可导出 需配合QxDM使用

⚠️ 避坑提醒:我曾经在实验室用QxDM抓了一整天log,结果发现手机驱动没装对,log全是乱码。后来养成了习惯:抓包前先确认驱动版本、工具版本、手机芯片型号三者匹配。不匹配?别浪费时间,先搞定环境。

1.4 抓包环境搭建:别让工具卡住你

环境搭建是很多人翻车的地方。我按步骤说,你跟着做就行。

硬件准备

  • 电脑:建议Windows 10/11,内存至少8GB(16GB更稳)。Linux也行,但QxDM只支持Windows。
  • 手机/CPE:高通芯片的安卓手机(比如小米、一加、三星部分机型)。iPhone不行,别想了。
  • 数据线:质量好的USB线,别用那种充电线。我遇到过因为线材不好导致log频繁断连的情况。
  • 网卡(可选):抓S1口需要一台带双网卡的电脑,或者用交换机端口镜像。

软件安装

  1. Wireshark:官网下载,安装时勾选「安装USBPcap」和「安装Npcap」。这两个是抓包驱动。
  2. QxDM:需要高通授权。如果你没有正版,可以用QPST(高通工具包)里的替代功能,但功能有限。
  3. QCAT:同样需要授权。安装后记得配置log文件路径,默认路径在C盘,容易爆满。
  4. 手机驱动:安装高通USB驱动(QHSUSB_DLOAD或类似名称)。手机连电脑后,设备管理器里能看到「Qualcomm HS-USB Diagnostics」端口才算成功。

驱动配置(最容易出问题的一步)

手机连上电脑后,打开设备管理器。如果看到黄色感叹号,说明驱动没装好。我建议手动指定驱动路径到高通驱动文件夹。曾经有个学员搞了三天没搞定,最后发现是Windows自动更新把驱动覆盖了——关掉自动更新,手动装一次就好了。

快速验证环境:打开QxDM,选择正确的COM端口(就是设备管理器里那个Diagnostics端口),点击「Connect」。如果状态栏显示绿色,恭喜你,环境通了。如果显示红色,检查驱动和端口号。

嗯,到这里,LTE的基础框架和抓包环境你应该心里有数了。记住:网络架构是地图,协议栈是语言,工具是眼睛。地图看懂了,语言学会了,眼睛擦亮了,后面抓包分析才能事半功倍。