当前位置:网站首页>BLE抓包调试信息分析
BLE抓包调试信息分析
2022-06-26 14:51:00 【jim0506】
1、l2cap fragment start;l2cap fragment
分割与重组(Fragmentation and Recombination)
一些控制器的传输能力可能有限,并且可能需要与 L2CAP 分段创建的片段大小不同的片段大小。因此,L2CAP 下的层可能会进一步对 L2CAP PDU 进行片段化和重组,以创建适合每一层能力的片段。在传输 L2CAP PDU 期间,两个对等设备中可能会发生许多不同级别的分段和重组。
HCI 驱动程序或控制器可以对 L2CAP PDU 进行分段,以遵守主机控制器接口传输方案的数据包大小限制。这导致 HCI 数据包有效载荷携带 L2CAP PDU 的开始和继续片段。 类似地,控制器可以将 L2CAP PDU 分段以将它们映射到控制器数据包中。 这可能导致控制器数据包负载携带 L2CAP PDU 的开始和继续片段。
协议栈的每一层可能会传递不同大小的L2CAP PDU分片,并且每一层创建的分片大小在每个对等设备中可能不同。 然而,PDU 在堆栈内被分段,接收 L2CAP 实体仍然重新组合这些分段以获得原始 L2CAP PDU。
2、SERVER CONFIGURATION
这个功能是client用来设置ATT的,只有一个设置MTU size的程序:Exchange MTU
当client的ATT_MTU大于default ATT_MTU时,client就会调用Exchange MTU程序配置ATT_MTU,这个程序只有在连接过程中执行一次(连接中其实也可以用,Android原生的CTS测试中就有连接中更改ATT_MTU的操作)。在BR/EDR physical link不执行Exchange MTU,MTU的交互是L2CAP做的
过程:
(1)client发送ATT的Exchange MTU Request给server,参数Client Rx MTU设置为自己可以接收的最大MTU size
(2)Server有两种可能的回复,一种是Exchange MTU Response和Error Response,正常情况下回复Exchange MTU Response,参数Server Rx MTU为server端可以接收的最大MTU size,然后client和server都会取Client Rx MTU和Server Rx MTU中最小的值作为ATT_MTU。异常时回复Error Response,error code会设置失败的原因,如果Error Code为Request Not Supported,则client和server都会使用default MTU
如下图所示:

Client发送Exchange MTU Request,设置Client Rx MTU=0x0200,Server回复Exchange MTU Response,设置Server Rx MTU=0x0032,server和client都会设置ATT_MTU=0x0032
边栏推荐
- Understand the difference and use between jsonarray and jsonobject
- Login authentication service
- View touch analysis
- The JVM outputs GC logs, causing the JVM to get stuck. I am stupid
- R语言使用ggplot2可视化泊松回归模型(Poisson Regression)的结果、可视化不同参量组合下的计数结果
- 国信证券的排名如何?办理股票开户安全吗?
- Detailed explanation of C language programming problem: can any three sides form a triangle, output the area of the triangle and judge its type
- Declaration and assignment of go variables
- TCP congestion control details | 1 summary
- Practical website recommendations worth collecting for College Students
猜你喜欢

Halcon C# 设置窗体字体,自适应显示图片

Unity uses skybox panoramic shader to make panorama preview. There is a gap. Solution

Notes on writing questions in C language -- table tennis competition

Minister of investment of Indonesia: Hon Hai is considering establishing electric bus system and urban Internet of things in its new capital

The engine "node" is inconsistent with this module

程序分析与优化 - 8 寄存器分配

人的顶级能量从哪里获取?

Where do people get their top energy?

乐鑫 AWS IoT ExpressLink 模组达到通用可用性

这才是优美的文件系统挂载方式,亲测有效
随机推荐
R语言使用ggplot2可视化泊松回归模型(Poisson Regression)的结果、可视化不同参量组合下的计数结果
Numpy basic use
Execution of commands in the cluster
子查询的使用
MHA high availability coordination and failover
Attention meets geometry: geometry guided spatiotemporal attention consistency self supervised monocular depth estimation
Solution to the upper limit of TeamViewer display devices
A remove the underline from the label
【 Native cloud】 Éditeur ivx Programmable par tout le monde
R language uses the aggregate function of epidisplay package to split numerical variables into different subsets based on factor variables, calculate the summary statistics of each subset, and use agg
Is the account opening link given by the broker manager safe? Who can I open an account with?
R语言使用epiDisplay包的aggregate函数将数值变量基于因子变量拆分为不同的子集,计算每个子集的汇总统计信息、使用aggregate.data.frame函数计算分组汇总统计信息
View触摸分析
SAP 销售数据 实际发货数据导出 销量
The heavyweight white paper was released. Huawei continues to lead the new model of smart park construction in the future
Sectigo的IP证书申请流程
Excel-vba quick start (II. Condition judgment and circulation)
券商经理给的开户二维码安全吗?找谁可以开户啊?
VMware partial settings
Understand the difference and use between jsonarray and jsonobject