一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
来源:互联网 发布:centos7修改远程端口 编辑:程序博客网 时间:2024/04/30 14:07
1.概述
* MTU: 最大传输单元(MAXIMUM TRANSMISSION UNIT) , 指在一个PDU (Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数
据)能够传输的最大数据量(多少字节可以一次性传输到对方)。
* MTU 交换是为了在主从双方设置一个PDU中最大能够交换的数据量,通过MTU的交换和双方确认(注意这个MTU是不可以协商的,只是通知对方,双方在知道对方的极限后会选择一个较小的值作为以后的MTU,比如说,主设备发出一个150个字节的MTU请求,但是从设备回应MTU是23字节,那么今后双方要以较小的值23字节作为以后的MTU),主从双方约定每次在做数据传输时不超过这个最大数据单元
MTU交换通常发生在主从双方建立连接关系后(参见"一分钟读懂低功耗蓝牙连接数据包")
做个对比就可以知道BLE MTU 比较小(不过新的BLE 标准MTU 已经大幅提升,详见即将发表在VIEWTOOL BBS上的后续文章)。
****************************************************************“*************************
以太网:1500
IEEE 802.3/802.2: 1492
X.25: 576
BLE: 23 => 这就是为什么WIFI 可以用于传输视频,传统蓝牙(BT)可以传输音频,而低功耗蓝牙(BTLE 或者BLE)只能够传输控制数据的原因了。
******************************************************************************************
* MTU 交换命令:属于ATT 命令
* MTU 交换过程:如下图
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0916276km1tkm1w00r0kmk.png[/img]
MTU Exchange.png
* MTU 两个命令(“MTU 请求”及“MTU 响应”)详解如下(见“4”)
2.关键字:Hollong BLE 侦听仪,低功耗蓝牙嗅探器, BLE 分析仪,BLE 数据抓取
Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture
3.抓取数据包的准备工作
* 硬件:一个BLE设备(从设备)及对应的主设备(如智能手机里面的相关应用程序,或者通用BLE 工具软件);
一台HOLLONG BLE SNIFFER (Hollong BLE 侦听仪)
* 软件:Hollong 蓝牙4.0/4.1 BLE协议监控分析仪 软件, 使用本软件可以打开本文中的数据包附件,进而可以更加方便及更加全面地了解更多细节(包括最全面的数据及数据解析)
下载链接:
http://www.viewtool.com/index.ph ... hollong-4-0-4-1-ble
4. MTU 请求(REQEUST)
完整数据(以下关注蓝色标注部分)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085943upjxphwzcevq5bcp.png[/img]
MTU request complete.png
1) 存取地址
Access Address: 0xaf9a8c69
固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0859268x1bd3zr5rk44fkf.png[/img]
MTU req access address.png
2) 头信息
Data Header: 0x0706 000. .... = RFU: 0
...0 .... = More Data: False
.... 0... = Sequence Number: 0
.... .1.. = Next Expected Sequence Number: 1
.... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
000. .... = RFU: 0
...0 0111 = Length: 7
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085930y4dovdt6ydfv7knp.png[/img]
MTU req header info.png
3) L2CAP 长度
在BLE中,GAP,GATT,SMP 都使用L2CAP 通道将命令及数据打包送到链路层(LINK LAYER),L2CAP 打包过程中需要指定L2CAP的长度及通道号。
Length: 3
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085939j8xi2u2f6ba3r4r3.png[/img]
MTU req l2cap size .png
4) L2CAP 通道号(CID):channel ID
CID: Attribute Protocol (0x0004)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085933ybrsz8sur8fyrfuh.png[/img]
MTU req l2cap channel ID.png
5) ATT 命令
标准发下:
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085941jzl7l0eb7jlltret.png[/img]
MTU REQUEST ATT FORMAT.png
实际数据包:
Opcode: Exchange MTU Request (0x02)
0... .... = Authentication Signature: False
.0.. .... = Command: False
..00 0010 = Method: Exchange MTU Request (0x02)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0859378sy5s01152s2x5f1.png[/img]
MTU req l2cap opcode.png
6) MTU 值 (请求的值)
Client Rx MTU: 185
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0859355rwsrrkyh3khnzwz.png[/img]
MTU req l2cap MTU value.png
7) CRC
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085928du5clfwwouwvy4un.png[/img]
MTU req CRC.png
4. MTU 响应(RESPONSE)
完整数据包:
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091631fx22okv22fq51mtv.png[/img]
mtu rsp complete.png
1) 存取地址
Access Address: 0xaf9a8c69
固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091630rlrzzlerzzmwrmom.png[/img]
mtu rsp access address.png
2. 头信息
Data Header: 0x0712 000. .... = RFU: 0
...1 .... = More Data: True
.... 0... = Sequence Number: 0
.... .0.. = Next Expected Sequence Number: 0
.... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
000. .... = RFU: 0
...0 0111 = Length: 7
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091634rxew0zgrvew1jjl3.png[/img]
mtu rsp header info.png
3. L2CAP 长度
解释同(请求包)。
Length: 3
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091637ntrpxtxrzzarrrzr.png[/img]
mtu rsp l2cap size.png
4. L2CAP 通道号
解释同(请求包)。
CID: Attribute Protocol (0x0004)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/09163527837jp5w43p4qq3.png[/img]
mtu rsp l2cap channel ID.png
5. ATT 命令
标准:
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091628m2g916durppp516p.png[/img]
MTU Response ATT FORMAT.png
实例:
Opcode: Exchange MTU Response (0x03) 0... .... = Authentication Signature: False
.0.. .... = Command: False
..00 0011 = Method: Exchange MTU Response (0x03)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091639cwzm4mkazwymdc7e.png[/img]
mtu rsp opcode.png
6) MTU 值
Server Rx MTU: 23
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0916388lp3ttc1qcipqptl.png[/img]
mtu rsp mtu value.png
7)CRC
CRC: 0xf4767e
[Expert Info (Note/Checksum): CRC unchecked, not all data available]
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091633o2ikkrwv3iggn6gi.png[/img]
mtu rsp crc.png
1 小时前 上传下载附件 (114.56 KB)
下载完整抓取到的数据包: em9304 fineme 071117.zip (19.05 KB, 下载次数: 0)
原文链接:
http://www.viewtool.com/bbs/forum.php?mod=viewthread&tid=63214
微信公众号: 纬图物联
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/093210s92bsceien2iz2bs.jpg[/img]
纬图物联微信公众号QR.jpg
* MTU: 最大传输单元(MAXIMUM TRANSMISSION UNIT) , 指在一个PDU (Protocol Data Unit: 协议数据单元,在一个传输单元中的有效传输数
据)能够传输的最大数据量(多少字节可以一次性传输到对方)。
* MTU 交换是为了在主从双方设置一个PDU中最大能够交换的数据量,通过MTU的交换和双方确认(注意这个MTU是不可以协商的,只是通知对方,双方在知道对方的极限后会选择一个较小的值作为以后的MTU,比如说,主设备发出一个150个字节的MTU请求,但是从设备回应MTU是23字节,那么今后双方要以较小的值23字节作为以后的MTU),主从双方约定每次在做数据传输时不超过这个最大数据单元
MTU交换通常发生在主从双方建立连接关系后(参见"一分钟读懂低功耗蓝牙连接数据包")
做个对比就可以知道BLE MTU 比较小(不过新的BLE 标准MTU 已经大幅提升,详见即将发表在VIEWTOOL BBS上的后续文章)。
****************************************************************“*************************
以太网:1500
IEEE 802.3/802.2: 1492
X.25: 576
BLE: 23 => 这就是为什么WIFI 可以用于传输视频,传统蓝牙(BT)可以传输音频,而低功耗蓝牙(BTLE 或者BLE)只能够传输控制数据的原因了。
******************************************************************************************
* MTU 交换命令:属于ATT 命令
* MTU 交换过程:如下图
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0916276km1tkm1w00r0kmk.png[/img]
MTU Exchange.png
* MTU 两个命令(“MTU 请求”及“MTU 响应”)详解如下(见“4”)
2.关键字:Hollong BLE 侦听仪,低功耗蓝牙嗅探器, BLE 分析仪,BLE 数据抓取
Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture
3.抓取数据包的准备工作
* 硬件:一个BLE设备(从设备)及对应的主设备(如智能手机里面的相关应用程序,或者通用BLE 工具软件);
一台HOLLONG BLE SNIFFER (Hollong BLE 侦听仪)
* 软件:Hollong 蓝牙4.0/4.1 BLE协议监控分析仪 软件, 使用本软件可以打开本文中的数据包附件,进而可以更加方便及更加全面地了解更多细节(包括最全面的数据及数据解析)
下载链接:
http://www.viewtool.com/index.ph ... hollong-4-0-4-1-ble
4. MTU 请求(REQEUST)
完整数据(以下关注蓝色标注部分)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085943upjxphwzcevq5bcp.png[/img]
MTU request complete.png
1) 存取地址
Access Address: 0xaf9a8c69
固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0859268x1bd3zr5rk44fkf.png[/img]
MTU req access address.png
2) 头信息
Data Header: 0x0706 000. .... = RFU: 0
...0 .... = More Data: False
.... 0... = Sequence Number: 0
.... .1.. = Next Expected Sequence Number: 1
.... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
000. .... = RFU: 0
...0 0111 = Length: 7
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085930y4dovdt6ydfv7knp.png[/img]
MTU req header info.png
3) L2CAP 长度
在BLE中,GAP,GATT,SMP 都使用L2CAP 通道将命令及数据打包送到链路层(LINK LAYER),L2CAP 打包过程中需要指定L2CAP的长度及通道号。
Length: 3
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085939j8xi2u2f6ba3r4r3.png[/img]
MTU req l2cap size .png
4) L2CAP 通道号(CID):channel ID
CID: Attribute Protocol (0x0004)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085933ybrsz8sur8fyrfuh.png[/img]
MTU req l2cap channel ID.png
5) ATT 命令
标准发下:
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085941jzl7l0eb7jlltret.png[/img]
MTU REQUEST ATT FORMAT.png
实际数据包:
Opcode: Exchange MTU Request (0x02)
0... .... = Authentication Signature: False
.0.. .... = Command: False
..00 0010 = Method: Exchange MTU Request (0x02)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0859378sy5s01152s2x5f1.png[/img]
MTU req l2cap opcode.png
6) MTU 值 (请求的值)
Client Rx MTU: 185
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0859355rwsrrkyh3khnzwz.png[/img]
MTU req l2cap MTU value.png
7) CRC
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/085928du5clfwwouwvy4un.png[/img]
MTU req CRC.png
4. MTU 响应(RESPONSE)
完整数据包:
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091631fx22okv22fq51mtv.png[/img]
mtu rsp complete.png
1) 存取地址
Access Address: 0xaf9a8c69
固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091630rlrzzlerzzmwrmom.png[/img]
mtu rsp access address.png
2. 头信息
Data Header: 0x0712 000. .... = RFU: 0
...1 .... = More Data: True
.... 0... = Sequence Number: 0
.... .0.. = Next Expected Sequence Number: 0
.... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
000. .... = RFU: 0
...0 0111 = Length: 7
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091634rxew0zgrvew1jjl3.png[/img]
mtu rsp header info.png
3. L2CAP 长度
解释同(请求包)。
Length: 3
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091637ntrpxtxrzzarrrzr.png[/img]
mtu rsp l2cap size.png
4. L2CAP 通道号
解释同(请求包)。
CID: Attribute Protocol (0x0004)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/09163527837jp5w43p4qq3.png[/img]
mtu rsp l2cap channel ID.png
5. ATT 命令
标准:
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091628m2g916durppp516p.png[/img]
MTU Response ATT FORMAT.png
实例:
Opcode: Exchange MTU Response (0x03) 0... .... = Authentication Signature: False
.0.. .... = Command: False
..00 0011 = Method: Exchange MTU Response (0x03)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091639cwzm4mkazwymdc7e.png[/img]
mtu rsp opcode.png
6) MTU 值
Server Rx MTU: 23
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/0916388lp3ttc1qcipqptl.png[/img]
mtu rsp mtu value.png
7)CRC
CRC: 0xf4767e
[Expert Info (Note/Checksum): CRC unchecked, not all data available]
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/091633o2ikkrwv3iggn6gi.png[/img]
mtu rsp crc.png
1 小时前 上传下载附件 (114.56 KB)
下载完整抓取到的数据包: em9304 fineme 071117.zip (19.05 KB, 下载次数: 0)
原文链接:
http://www.viewtool.com/bbs/forum.php?mod=viewthread&tid=63214
微信公众号: 纬图物联
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/093210s92bsceien2iz2bs.jpg[/img]
纬图物联微信公众号QR.jpg
阅读全文
0 0
- 一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
- 一分钟读懂低功耗蓝牙(BLE)广播数据包
- 一文读懂蓝牙低功耗BLE的应用市场
- 低功耗蓝牙BLE
- 蓝牙低功耗(BLE)
- 蓝牙低功耗(BLE)
- 【蓝牙低功耗BLE】引言
- 低功耗蓝牙(BLE)
- [BLE]低功耗蓝牙介绍
- 低功耗蓝牙(BLE)
- 低功耗蓝牙(BLE)
- 低功耗蓝牙(BLE)
- 低功耗蓝牙Ble外围设备
- 蓝牙低功耗数据包格式
- BLE 低功耗蓝牙开发 (一概述)
- android 蓝牙4.0 ble 低功耗蓝牙
- TI低功耗蓝牙(BLE)介绍
- TI ble低功耗蓝牙 bluetooth4.0
- AYIT2017暑假集训第三周周三赛 A
- SDNU 1519.lmh’s Function 找循环节
- 变量类型转换
- jvm类加载机制概述
- 【Java编程】面向对象基础
- 一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
- 20-service之$watch
- jQuery Mobile基础教程(一)
- 公安大数据应用之情报分析与关联挖掘
- C语言编译过程浅析
- iOS转前端之仿写宠物网(适配不同尺寸)
- 8月23号 jsp分页查询
- SQL server 2008 中 对象名无效的问题
- 使用xml去解析excel