当前位置:网站首页>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
边栏推荐
- Oracle11g database import and export method tutorial [easy to understand]
- R language dplyr package bind_ The rows function merges the rows of the two dataframes vertically. The final number of rows is the sum of the rows of the original two dataframes (combine data frames)
- R language dplyr package summary_ The at function calculates the mean and median of multiple data columns (specified by vectors) in the dataframe data, and specifies na RM parameter configuration dele
- Minister of investment of Indonesia: Hon Hai is considering establishing electric bus system and urban Internet of things in its new capital
- Bank of Beijing x Huawei: network intelligent operation and maintenance tamps the base of digital transformation service
- The DOTPLOT function in the epidisplay package of R language visualizes the frequency of data points in different intervals in the form of point graphs, specifies the grouping parameters with the by p
- Principle of TCP reset attack
- R语言使用epiDisplay包的aggregate函数将数值变量基于因子变量拆分为不同的子集,计算每个子集的汇总统计信息、使用aggregate.data.frame函数计算分组汇总统计信息
- 挖财注册开户安全吗,有没有什么风险?
- Halcon C # sets the form font and adaptively displays pictures
猜你喜欢
随机推荐
R语言dplyr包intersect函数获取在两个dataframe中都存在的数据行、获取两个dataframe交叉的数据行
Use abp Zero builds a third-party login module (II): server development
kubernetes的Controller之deployment
TCP 复位攻击原理
备战数学建模30-回归分析2
R语言epiDisplay包的tableStack函数制作统计汇总表格(分组的描述性统计、假设检验等)、不设置by参数计算基础描述性统计信息、指定对于大多数样本负相关的变量进行反序
Is the account opening link given by the broker manager safe? Who can I open an account with?
Login authentication service
Attention meets geometry: geometry guided spatiotemporal attention consistency self supervised monocular depth estimation
赠书 | 《认知控制》:我们的大脑如何完成任务?
北京银行x华为:网络智能运维夯实数字化转型服务底座
券商经理给的开户链接办理股票开户安全吗?我想开个户
Go变量的声明与赋值
打新债注册开户安全吗,有没有什么风险?
详解C语言编程题:任意三条边能否构成三角形,输出该三角形面积并判断其类型
设计人员拿到的工程坐标系等高线CAD图如何加载进图新地球
Understand the difference and use between jsonarray and jsonobject
Detailed explanation of C language programming problem: can any three sides form a triangle, output the area of the triangle and judge its type
nvidia-smi 报错
R language dplyr package bind_ The rows function merges the rows of the two dataframes vertically. The final number of rows is the sum of the rows of the original two dataframes (combine data frames)








