博客
关于我
一分钟读懂低功耗蓝牙(BLE)MTU交换数据包
阅读量:253 次
发布时间:2019-02-28

本文共 1088 字,大约阅读时间需要 3 分钟。

MTU交换在蓝牙低能耗(BLE)协议中扮演着重要角色,用于建立数据传输的最大传输单元(MTU)。MTU是指在一个PDU(协议数据单元)中能够一次性传输的最大数据量。MTU交换的核心目的是确保主从双方在数据传输过程中不会因数据过大而导致传输失败。这种机制通过协商双方能够处理的最大数据包大小,确保通信效率。

在BLE协议中,MTU交换通常会在连接建立后进行。例如,传统的BLE MTU值较小(如23字节),这与其他网络如以太网(1500字节)、IEEE 802.3/802.2(1492字节)等形成鲜明对比。这些差异解释了为什么不同网络适用于不同的应用场景:如WIFI适合视频传输,传统蓝牙(BT)适合音频传输,而低功耗蓝牙(如BTLE或BLE)则主要用于控制数据传输。

MTU交换在BLE协议中主要通过ATT命令来实现。具体来说,MTU交换包括两个命令:MTU请求(MTU Request,0x02)和MTU响应(MTU Response,0x03)。以下是MTU请求和响应的详细结构:

MTU请求(MTU Request)

  • 存取地址:固定为4个字节,由连接请求数据包指定。
  • 头信息:包括序列号、下一个预期序列号、LLID(L2CAP消息或无片段L2CAP消息标识)、数据包长度等。
  • L2CAP长度:指定L2CAP包的长度,通常为3字节。
  • L2CAP通道ID:用于指定使用的L2CAP通道,通常为0x0004。
  • ATT命令:包含请求类型(如Exchange MTU Request)和相关参数。
  • MTU值:由发送方指定的接收方MTU值,例如客户端MTU为185。
  • CRC:用于数据包错误检测。
  • MTU响应(MTU Response)

  • 存取地址:与MTU请求相同。
  • 头信息:包括序列号、下一个预期序列号、LLID、数据包长度等。
  • L2CAP长度:与MTU请求相同。
  • L2CAP通道ID:与MTU请求相同。
  • ATT命令:包含响应类型(如Exchange MTU Response)和相关参数。
  • MTU值:由接收方指定的发送方MTU值,例如服务器MTU为23。
  • CRC:用于数据包错误检测。
  • MTU交换的成功不仅依赖于协议规范,还依赖于正确的硬件和软件配置。对于捕获BLE数据包的准备工作,通常需要硬件支持(如Hollong BLE侦听仪)和软件工具(如Hollong BLE协议监控分析仪)。这些工具能够帮助用户解析复杂的数据包结构,深入理解BLE通信过程。

    通过MTU交换机制,BLE协议能够在不同设备之间建立高效的通信桥梁。这一机制的理解对于优化蓝牙低能耗应用的性能至关重要。

    转载地址:http://enkp.baihongyu.com/

    你可能感兴趣的文章
    postgres10配置huge_pages
    查看>>
    PostgreSQL 10.0 preview sharding增强 - pushdown 增强
    查看>>
    PostgreSQL 10.0 preview 变化 - pg_xlog,pg_clog,pg_log目录更名为pg_wal,pg_xact,log
    查看>>
    PostgreSQL 10.1 手册_部分 II. SQL 语言_第 15章 并行查询_15.2. 何时会用到并行查询?...
    查看>>
    PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.23. 行和数组比较
    查看>>
    PostgreSQL 10.1 手册_部分 III. 服务器管理_第 21 章 数据库角色
    查看>>
    Qt开发——网络编程UDP网络广播软件之服务器端
    查看>>
    Postgresql 12.9如何配置允许远程连接
    查看>>
    PostgreSQL 9.6 同步多副本 与 remote_apply事务同步级别 应用场景分析
    查看>>
    Postgresql CopyManager 流式批量数据入库
    查看>>
    PostgreSQL cube 插件 - 多维空间对象
    查看>>
    PostgreSQL Daily Maintenance - cluster table
    查看>>
    PostgreSQL on Linux 最佳部署手册
    查看>>
    PostgreSQL Oracle 兼容性之 - pipelined
    查看>>
    PostgreSQL Point-In-Time Recovery (Incremental Backup)
    查看>>
    postgresql Streaming Replication监控与注意事项
    查看>>
    postgresql 不需要付费_使用数据传输在PostgreSQL执行 外部连接运算符
    查看>>
    postgresql 主从配置_生产环境postgresql主从环境配置
    查看>>
    postgresql 函数&存储过程 ; 递归查询
    查看>>
    PostgreSQL 分组聚合查询中 filter 子句替换 case when
    查看>>