一分钟读懂低功耗蓝牙(BLE)MTU交换数据包

VT****物联 UID.2978442
2018-09-30 发表

[font=Tahoma, Helvetica, SimSun, sans-serif]1.[/font][font=Tahoma, Helvetica, SimSun, sans-serif]概述[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] * MTU: 最大传输单元(MAXIMUM TRANSMISSION UNIT) , 指在一个PDU (Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数[/font]

[font=Tahoma, Helvetica, SimSun, sans-serif]据)能够传输的最大数据量(多少字节可以一次性传输到对方)。[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] * MTU 交换是为了在主从双方设置一个PDU中最大能够交换的数据量,通过MTU的交换和双方确认(注意这个MTU是不可以协商的,只是通知对方,双方在知道对方的极限后会选择一个较小的值作为以后的MTU,比如说,主设备发出一个150个字节的MTU请求,但是从设备回应MTU是23字节,那么今后双方要以较小的值23字节作为以后的MTU),主从双方约定每次在做数据传输时不超过这个最大数据单元[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] MTU交换通常发生在主从双方建立连接关系后(参见"一分钟读懂低功耗蓝牙连接数据包"[/font][font=Tahoma, Helvetica, SimSun, sans-serif])[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 做个对比就可以知道BLE MTU 比较小(不过新的BLE 标准MTU 已经大幅提升,详见即将发表在VIEWTOOL BBS上的后续文章)。[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ****************************************************************“************************* [/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 以太网:1500[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] IEEE 802.3/802.2: 1492[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] X.25: 576[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] BLE: 23 => 这就是为什么WIFI 可以用于传输视频,传统蓝牙(BT)可以传输音频,而低功耗蓝牙(BTLE 或者BLE)只能够传输控制数据的原因了。[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ******************************************************************************************[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] * MTU 交换命令:属于ATT 命令[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] * MTU 交换过程:如下图[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***
[font=Tahoma, Helvetica, SimSun, sans-serif] * MTU 两个命令(“MTU 请求”及“MTU 响应”)详解如下(见“4”)[/font]

[font=Tahoma, Helvetica, SimSun, sans-serif]2.[/font][font=Tahoma, Helvetica, SimSun, sans-serif]关键字[/font][font=Tahoma, Helvetica, SimSun, sans-serif]:Hollong BLE 侦听仪,低功耗蓝牙嗅探器, BLE 分析仪,BLE 数据抓取[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture[/font]

[font=Tahoma, Helvetica, SimSun, sans-serif]3.[/font][font=Tahoma, Helvetica, SimSun, sans-serif]抓取数据包的准备工作[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] * 硬件:一个BLE设备(从设备)及对应的主设备(如智能手机里面的相关应用程序,或者通用BLE 工具软件);[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 一台HOLLONG BLE SNIFFER (Hollong BLE 侦听仪)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] * 软件:Hollong 蓝牙4.0/4.1 BLE协议监控分析仪 软件, 使用本软件可以打开本文中的数据包附件,进而可以更加方便及更加全面地了解更多细节(包括最全面的数据及数据解析)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 下载链接:[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] http://www.viewtool.com/index.php/22-2016-07-29-02-11-32/205-hollong-4-0-4-1-ble[/font]

[font=Tahoma, Helvetica, SimSun, sans-serif]4. [/font][font=Tahoma, Helvetica, SimSun, sans-serif]MTU 请求(REQEUST)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 完整数据(以下关注蓝色标注部分)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***
[font=Tahoma, Helvetica, SimSun, sans-serif] 1) 存取地址[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Access Address: 0xaf9a8c69[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)[/font]

[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 2) 头信息[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Data Header: 0x0706 000. .... = RFU: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ...0 .... = More Data: False[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .... 0... = Sequence Number: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .... .1.. = Next Expected Sequence Number: 1[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 000. .... = RFU: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ...0 0111 = Length: 7[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 3) L2CAP 长度[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 在BLE中,GAP,GATT,SMP 都使用L2CAP 通道将命令及数据打包送到链路层(LINK LAYER),L2CAP 打包过程中需要指定L2CAP的长度及通道号。[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Length: 3[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 4) L2CAP 通道号(CID):channel ID[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] CID: Attribute Protocol (0x0004)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析*** [font=Tahoma, Helvetica, SimSun, sans-serif] [/font]

[font=Tahoma, Helvetica, SimSun, sans-serif] 5) ATT 命令[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 标准发下:[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析*** [font=Tahoma, Helvetica, SimSun, sans-serif] [/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 实际数据包:[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Opcode: Exchange MTU Request (0x02)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 0... .... = Authentication Signature: False[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .0.. .... = Command: False[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ..00 0010 = Method: Exchange MTU Request (0x02)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析*** [font=Tahoma, Helvetica, SimSun, sans-serif] [/font]


[font=Tahoma, Helvetica, SimSun, sans-serif] 6) MTU 值 (请求的值)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Client Rx MTU: 185[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 7) CRC [/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif]4. [/font][font=Tahoma, Helvetica, SimSun, sans-serif]MTU 响应(RESPONSE)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 完整数据包:[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***
[font=Tahoma, Helvetica, SimSun, sans-serif] 1) 存取地址[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Access Address: 0xaf9a8c69[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 2. 头信息[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Data Header: 0x0712 000. .... = RFU: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ...1 .... = More Data: True[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .... 0... = Sequence Number: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .... .0.. = Next Expected Sequence Number: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 000. .... = RFU: 0[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ...0 0111 = Length: 7[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 3. L2CAP 长度[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 解释同(请求包)。[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Length: 3[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 4. L2CAP 通道号[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 解释同(请求包)。[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] CID: Attribute Protocol (0x0004)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 5. ATT 命令[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] 标准:[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 实例:[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Opcode: Exchange MTU Response (0x03) 0... .... = Authentication Signature: False[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] .0.. .... = Command: False[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] ..00 0011 = Method: Exchange MTU Response (0x03)[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 6) MTU 值[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] Server Rx MTU: 23[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析***

[font=Tahoma, Helvetica, SimSun, sans-serif] 7)CRC[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] CRC: 0xf4767e[/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [Expert Info (Note/Checksum): CRC unchecked, not all data available][/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]***图片停止解析*** [font=Tahoma, Helvetica, SimSun, sans-serif] [/font]
[font=Tahoma, Helvetica, SimSun, sans-serif] [/font]

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报