USB分析仪USB3.2日志分析
1.简介
USB2.0总线采用轮询模式,即总线事务开始时,都要先发送IN或者OUT令牌包,以通知端点或者查询端点是否准备好。而USB3.2采用了异步通知模式,若端点没有准备好,则主机无需轮询,端点准备好后会通知主机,而对于OUT端点,主机会直接发送DP数据包,相当于将USB2.0中的OUT和DATA报文合二为一。USB3.2的报文格式可以参考 USB3.2报文格式解析。下面借助USB分析仪,抓取USB主机和U盘之间的日志,分析USB3.2事务。
2.枚举
USB3.2设备枚举涉及到设置地址、获取设备描述符、获取配置描述符、获取字符串描述符、设置配置等,使用控制传输。
2.1.SET_ADDRESS
SET_ADDRESS传输分为两个事务。第一个事务是SETUP事务,HOST使用DP数据包传输标准控制请求(数据长度为8字节),表示SET_ADDRESS,设备使用ACK响应DP。第二个是STATUS事务,表示SET_ADDRESS传输结束。USB3.2使用TP报文控制数据流和管理点对点的连接,并没有定义SETUP事务包,分析仪这里显示为SETUP,只是为了兼容USB2.0控制传输。TP的SeqN表示下一步预期接收DP数据包的序列号,而DP的SeqN表示此数据包的序列号。Dir表示端点的方向,控制传输不使用该字段。
2.2.GET_DESCRIPTOR(DEVICE)
GET_DESCRIPTOR(DEVICE)传输分为四个事务。第一个事务是SETUP事务,HOST使用DP数据包传输标准控制请求,表示GET_DESCRIPTOR(DEVICE),设备使用ACK响应DP,而此ACK报文中NumP为0,表示端点没有空闲的缓冲区,进入了流控状态,无法传输后续事务。第二个事务,设备使用ERDY事务包通知主机,端点已经准备好了,可以传输事务。第三个事务,主机使用ACK事务包通知设备将描述符发送给主机,设备使用DP数据发送设备描述符,主机使用ACK响应设备。第四个是STATUS事务,表示GET_DESCRIPTOR(DEVICE)传输结束。
2.3.GET_DESCRIPTOR(CONFIGURATION)
GET_DESCRIPTOR(CONFIGURATION)传输和GET_DESCRIPTOR(DEVICE)传输类似。
2.4.SET_CONFIGURATION
SET_CONFIGURATION传输和GET_DESCRIPTOR(DEVICE)传输类似。
3.BULK传输
U盘采用BULK传输,下面分析一下IN和OUT端点的事务。对于非控制传输,端点的方向由Dir字段决定。
3.1.IN
主机的ACK报文发送到设备的EP1_IN端点,表示主机正在向设备请求数据。设备使用DP报文向主机发送13字节数据。主机使用ACK报文响应设备。后续的传输类似。从下面的三个传输可以看出,DP的序列号SeqN按顺序增大。
3.2.OUT
主机的DP报文发送到设备的EP2_OUT端点,表示主机正在向设备发送数据,数据长度为31字节。设备使用ACK报文响应,后续的传输类似。从下面的三个传输可以看出,DP的序列号SeqN按顺序增大。
USB分析仪USB3.2日志分析的更多相关文章
- 【转】gc日志分析工具
性能测试排查定位问题,分析调优过程中,会遇到要分析gc日志,人肉分析gc日志有时比较困难,相关图形化或命令行工具可以有效地帮助辅助分析. Gc日志参数 通过在tomcat启动脚本中添加相关参数生成gc ...
- 海量日志分析方案--logstash+kibnana+kafka
下图为唯品会在qcon上面公开的日志处理平台架构图.听后觉得有些意思,好像也可以很容易的copy一个,就动手尝试了一下. 目前只对flume===>kafka===>elacsticSea ...
- ELK+Kafka集群日志分析系统
ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...
- Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍
网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例 ...
- Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...
- Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析
网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...
- MyCAT日志分析
MyCAT日志对于了解MyCAT的运行信息不可获取,譬如MyCAT是否采用读写分离,对于一个查询语句,MyCAT是怎样执行的,每个分片会分发到哪个节点上等等. 默认是info级别,通过log4j.xm ...
- ELK+redis搭建nginx日志分析平台
ELK+redis搭建nginx日志分析平台发表于 2015-08-19 | 分类于 Linux/Unix | ELK简介ELKStack即Elasticsearch + Logstas ...
- Mysql慢查询和慢查询日志分析
Mysql慢查询和慢查询日志分析 众所周知,大访问量的情况下,可添加节点或改变架构可有效的缓解数据库压力,不过一切的原点,都是从单台mysql开始的.下面总结一些使用过或者研究过的经验,从配置以 ...
- 通过grep来进行日志分析,grep -C和配合awk实际对catalina.out使用案例
本文介绍通过grep来进行日志分析,主要介绍grep -C和配合awk实际对catalina.out使用案例 grep可以对日志文件进行筛选,统计,查询,快速定位bug. 首先,你的日志需要比较规范, ...
随机推荐
- Windows下搭建Vue脚手架CLI
Vue CLI的使用依赖Node.js,先按照Node.js环境. //安装环境C:\Users\16779>npm install --global vue-cli npm WARN depr ...
- layui下拉框的数据如何直接从数据库提取(动态赋值)
代码说明部分 第一步:先把layui官方给的模板粘到自己的前端注:下面的代码是我直接从layui官网粘过来的 <div class="layui-form-item"> ...
- 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
问题背景 公司配发的电脑是 macOS,日常开发需要访问 Linux 虚拟机,出于安全方面的考虑,只能通过跳板机登录.这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的 V ...
- 【RabbitMQ】08 深入部分P1 可靠性投递
1.消息投递确认 这里的代码延用了06的东西: https://www.cnblogs.com/mindzone/p/15374684.html 删除之前的整合案例,重新写了一份案例的队列和交换机配置 ...
- 【H5】11 表格
概述: 在HTML中一个很普通的任务是构建表格数据,有大量的元素和属性是来满足这种需求的. 只需要一点儿的CSS来设定风格,HTML让在web上显示表格数据变的很容易,例如你的学校的教学计划,你当地的 ...
- 【Docker】07 部署挂载本地目录的Tomcat
1.拉取Tomcat镜像: docker pull tomcat:9.0.37 2.创建并运行Tomcat容器: 挂载容器的webapps目录到本机(宿主机)自己设置的目录 docker run -d ...
- 特朗普开始在YouTube上打竞选广告了 —— 美国总统的竞选广告已经开始媒体投放了
相关: 拜登开始在YouTube上打竞选广告了 -- 美国总统的竞选广告已经开始媒体投放了 PS. 又多了一个猴上台,哈哈哈. 特朗普的竞选资金筹集网站:
- 【转载】 图解协程调度模型-GMP模型
原文地址: https://www.cnblogs.com/codexiaoyi/p/14975236.html =========================================== ...
- 【转载】 机器学习数据可视化 (t-SNE 使用指南)—— Why You Are Using t-SNE Wrong
原文地址: https://towardsdatascience.com/why-you-are-using-t-sne-wrong-502412aab0c0 ==================== ...
- 2021 CCPC 哈尔滨
gym 开场 zsy 签了 J,gjk 签了 B,我读错了 E 的题意,gjk 读对后过了 zsy 读了 K 给我,我记得是模拟赛原题,跟欧拉定理有关,但很难.他俩过了 D I,我大概会了 G 但不会 ...