找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4176|回复: 1
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
1.概述         
  * MTU: 最大传输单元(MAXIMUMTRANSMISSION UNIT 指在一个PDU ProtocolData Unit协议数据单元,在一个传输单元中的有效传输数

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

2.关键字:Hollong BLE 侦听仪,低功耗蓝牙嗅探器,BLE 分析仪,BLE 数据抓取
Keyword: Hollong BLE Sniffer, BLE Data AnalyzerBLE Capture

3.抓取数据包的准备工作
  * 硬件:一个BLE设备(从设备)及对应的主设备(如智能手机里面的相关应用程序,或者通用BLE 工具软件);
          一台HOLLONG BLE SNIFFER Hollong BLE 侦听仪)
  * 软件:Hollong 蓝牙4.0/4.1 BLE协议监控分析仪 软件, 使用本软件可以打开本文中的数据包附件,进而可以更加方便及更加全面地了解更多细节(包括最全面的数据及数据解析)



4. MTU 请求(REQEUST
   完整数据(以下关注蓝色标注部分)
    MTU request complete.png
   1)  存取地址
   Access Address: 0xaf9a8c69
    固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)

    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 messagewith no fragmentation (0x2)
   000. .... = RFU: 0
   ...0 0111 = Length: 7
    MTU req header info.png

 3) L2CAP 长度
    BLE中,GAP,GATT,SMP都使用L2CAP 通道将命令及数据打包送到链路层(LINK LAYER)L2CAP 打包过程中需要指定L2CAP的长度及通道号。
   Length: 3
    MTU req l2cap size .png

   4)L2CAP 通道号(CID)channel ID
  CID: Attribute Protocol (0x0004)
    MTU req l2cap channel ID.png   

   5) ATT 命令
     标准发下:
      MTU REQUEST ATT FORMAT.png      
     实际数据包:
   Opcode: Exchange MTU Request (0x02)
   0... .... = Authentication Signature: False
   .0.. .... = Command: False
   ..00 0010 = Method: Exchange MTU Request (0x02)
      MTU req l2cap opcode.png     


   6)MTU (请求的值)
   Client Rx MTU: 185
    MTU req l2cap MTU value.png

   7)CRC
    MTU req CRC.png

4. MTU 响应(RESPONSE
    完整数据包:
    mtu rsp complete.png
    1 存取地址
   Access Address: 0xaf9a8c69
    固定为4个字节,其值由连接请求数据包指定(详见“一分钟读懂低功耗蓝牙连接数据包”)
    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 messagewith no fragmentation (0x2)
   000. .... = RFU: 0
   ...0 0111 = Length: 7
    mtu rsp header info.png

   3. L2CAP 长度
       解释同(请求包)。
       Length: 3
       mtu rsp l2cap size.png

   4. L2CAP 通道号
       解释同(请求包)。
      CID: Attribute Protocol (0x0004)
       mtu rsp l2cap channel ID.png

   5. ATT 命令
      标准:
       MTU Response ATT FORMAT.png

      实例:
      Opcode: Exchange MTU Response (0x03)   0... .... = Authentication Signature: False
   .0.. .... = Command: False
   ..00 0011 = Method: Exchange MTU Response (0x03)
       mtu rsp opcode.png

    6 MTU
     Server Rx MTU: 23
       mtu rsp mtu value.png

     7CRC
      CRC: 0xf4767e
   [Expert Info (Note/Checksum): CRC unchecked, not all data available]
       mtu rsp crc.png
1 小时前 上传下载附件 (114.56 KB)




      下载完整抓取到的数据包:   em9304 fineme 071117.zip


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:443573 发表于 2020-2-29 11:01 | 只看该作者
下载看下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表