协议分析仪支持多种高级触发选项,这些选项通过灵活组合协议字段、逻辑运算和时序控制,可实现复杂场景下的精准数据捕获,以下是具体分类与说明:
一、基于协议字段的高级触发
- 精确匹配触发
- 功能:对特定协议字段(如HTTP请求头、TCP端口号、I2C设备地址)进行精确值匹配。
- 示例:捕获所有访问
/admin
路径的HTTP POST请求,或监测I2C总线上地址为0x50
的设备通信。 - 优势:快速定位目标流量,避免手动筛选海量数据。
- 范围触发
- 功能:设置协议字段的数值范围(如数据包长度、时间间隔、寄存器值)。
- 示例:捕获长度超过1024字节的UDP数据包,或监测SPI总线中时钟频率在1MHz-10MHz之间的通信。
- 优势:检测异常参数或边界条件,适用于性能测试和故障排查。
- 掩码触发
- 功能:通过掩码提取协议字段的特定位进行匹配(如IP地址的某一段、CAN ID的优先级位)。
- 示例:捕获所有源IP地址为
192.168.1.x
的网络流量,或监测CAN总线中优先级为0x3
的报文。 - 优势:灵活处理二进制数据,适用于复杂协议解析。
二、基于逻辑运算的高级触发
- 多条件组合触发
- 功能:使用
AND
、OR
、NOT
等逻辑运算符组合多个触发条件。 - 示例:捕获同时满足以下条件的流量:
TCP端口 == 443
(HTTPS)HTTP方法 == POST
数据包长度 > 512字节
- 优势:实现复杂场景的精准捕获,如检测特定类型的攻击或异常行为。
- 序列触发
- 功能:监测协议交互的时序逻辑(如三次握手、TLS握手、I2C读写序列)。
- 示例:捕获以下序列的流量:
- 客户端发送
SYN
包 - 服务器响应
SYN-ACK
包 - 客户端发送
ACK
包且数据部分包含"GET /"
- 优势:分析协议流程是否符合预期,定位握手失败或状态机错误。
- 状态触发
- 功能:基于协议状态机的状态转移条件触发(如FTP登录成功后的数据传输)。
- 示例:捕获FTP协议中从
USER
命令成功响应后到PASV
命令之间的所有流量。 - 优势:跟踪协议状态变化,调试状态机逻辑错误。
三、基于时序控制的高级触发
- 延迟触发
- 功能:在满足触发条件后延迟一定时间或数据包数量再捕获。
- 示例:监测到TCP重传后,延迟100ms捕获后续流量,分析重传对应用性能的影响。
- 优势:捕获事件链中的后续影响,适用于性能分析和故障复现。
- 预触发捕获
- 功能:在触发条件满足前保留一定数量的历史数据(如触发前10个数据包)。
- 示例:捕获I2C总线中
START
条件出现前的时钟信号,分析总线竞争或噪声干扰。 - 优势:提供事件上下文,帮助定位问题根源。
- 循环触发
- 功能:每次满足触发条件时均捕获数据,适用于周期性事件的监测。
- 示例:循环捕获SPI总线中每次
CS
信号拉低后的通信,分析设备轮询行为。 - 优势:统计周期性事件的频率和模式,检测异常波动。
四、基于外部信号的高级触发(GPIO触发)
- 边沿触发
- 功能:通过外部GPIO信号的上升沿或下降沿触发捕获。
- 示例:将按键信号接入GPIO,捕获按键按下时的总线通信(如I2C设备配置)。
- 优势:同步硬件事件与协议数据,调试硬件-软件交互问题。
- 电平触发
- 功能:当GPIO信号保持特定电平(高/低)超过阈值时触发。
- 示例:监测电源管理信号(如
PWR_EN
),捕获设备上电过程中的协议初始化流程。 - 优势:检测硬件状态变化对协议行为的影响。
- 多GPIO组合触发
- 功能:通过逻辑运算组合多个GPIO信号作为触发条件。
- 示例:捕获同时满足以下条件的流量:
GPIO1 == 高电平
(设备就绪)GPIO2 == 下降沿
(中断触发)
- 优势:实现复杂硬件事件的精准捕获,适用于多传感器或多设备协同调试。
五、应用场景示例
- 调试I2C总线故障
- 触发条件:
SDA线在SCL高电平时产生下降沿
(I2C START条件)预触发捕获前10个时钟周期
- 效果:捕获START条件出现前的总线状态,分析噪声干扰或时钟拉伸问题。
- 检测HTTP DDoS攻击
- 触发条件:
TCP端口 == 80
HTTP方法 == GET
单位时间内请求数 > 1000/s
- 效果:实时捕获攻击流量,分析攻击源和请求模式。
- 验证SPI设备通信
- 触发条件:
CS信号拉低
(片选激活)延迟500ns后捕获数据
(匹配SPI时钟频率)
- 效果:捕获SPI通信的完整时序,验证时钟极性和相位配置。