首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏FreeBuf

    深入浅出低功耗蓝牙(BLE协议

    BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么? 1. 协议栈框架 一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。 标签: ATT, GAP, Link layer, GATT, L2CAP, BLE stack, 广播, 连接, BLE协议栈, 链路层 3. (3)通信信道 BLE 工作在 ISM 频带,定义了两个频段,2.4GHz 频段和 896/915MHz 频带。 BLE 工作在 2.4GHz 频段,仅适用 3 个广播通道,适用所有蓝牙规范版本通用的自适应调频技术。

    6K43发布于 2020-12-08
  • 来自专栏车联网/IoT安全

    BLE (低功耗蓝牙)协议入门-01-整体介绍

    本章介绍蓝牙协议(重点介绍:BLE)的基本特点、版本演进、协议的构成、等基础知识,本章重在了解,目的是对BLE协议有个大概的认知,即了解BLE协议栈的全貌。 我们常说的蓝牙4.0不等同于BLEBLE只是蓝牙4.0的子集;蓝牙4.0是一个综合性协议规范。 BLE采用40个信道,每个信道间隔为2MHz,分为数据信道和广播信道;广播信道占用3个,用于发现设备、建立连接、广播数据;数据信道占用37个,用于已建立连接设备间的数据通信。 图片 03-链路层(LL) 低功耗蓝牙参考 《Core_v5.3.pdf》中 Part B: Link Layer Specification 章节部分,LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点 没有GATT,BLE协议栈也能跑,但互联互通就会出问题。

    12.1K60编辑于 2023-10-13
  • 来自专栏蓝牙Ble/Mesh

    BLE安全之配对流程剖析(3)

    BLE安全之配对流程剖析(3)   上一章介绍了配对流程的第二阶段,剖析了配对第二阶段的配对算法的选择和鉴权方式的选择。 接下来就进入了ble配对的阶段三,在该阶段双方会根据生成的STK或LTK来生成其他的密钥,就是配对的密钥分配阶段。 1. 通过这个可以将BLE配对产生的配对密钥转化成经典蓝牙的密钥。 link key = h6(ILK, “lebr”) 如果两端的CT2都设置为1,则: ILK = h7(SALT, LTK) BR/EDR link key = h6(ILK, “lebr”) 3.

    2.8K20编辑于 2023-02-28
  • 来自专栏嵌入式智能硬件

    蓝牙BLE技术

    蓝牙BLE组成 BLE由三个主要构建模块组成:应用程序、主机和控制器。顾名思义,应用程序块是与蓝牙协议栈交互的用户应用程序。主机覆盖蓝牙协议栈的上层。控制器覆盖下层。 让我们再来看看BLE设备的3个构建模块:应用程序、主机和控制器: 应用程序是最高级别的,它负责包含与应用程序实现的实际用例相关的所有逻辑、用户界面和数据处理。 现在我们可以转到BLE设备的主机部分。 逻辑链路控制和适配协议(L2CAP) L2CAP负责两项任务:1、它需要来自上层的多个协议,并将它们封装成标准的BLE数据包格式(反之亦然)。 层负责或路由两个主要协议:属性协议(ATT)和安全管理器协议(SMP)。 属性协议(ATT) 属性协议(ATT)是基于设备呈现的属性的简单客户端/服务器协议。客户端从服务器请求数据,然后服务器将数据发送给它的客户端。

    3.2K20发布于 2020-08-31
  • 来自专栏FreeBuf

    深入浅出低功耗蓝牙(BLE)协议栈(实战篇)

    环境搭建 上面介绍了数据包和各层协议,接下来我们将使用Ubertooth One来捕获通信过程中的蓝牙数据包。 ? libbtbb-2015-09-R2.tar.gz cd libbtbb-2015-09-R2 mkdir build cd build cmake .. make sudo make install (3) (3)gatttool root@0xroot:~# gatttool -h Usage: gatttool [OPTION...] capture occurs. ubertooth-btle -f -ctest.pcap抓包&保存到本地 使用这条命令我们可以把设备捕获到的数据包保存到本地,完成后可导入wireshark进行数据包、协议分析 j2abro.blogspot.com.au/2014/06/analyzing-bluetooth-advertising-with.html http://cerescontrols.com/tutorials-3/

    3.9K20发布于 2020-12-09
  • 来自专栏我杨某人的青春满是悔恨

    RxSwift 与 BLE 实战——VisualBlue

    对 RxSwift 及 BLE 感兴趣的同学可以看看,或有所得。

    1.4K20发布于 2018-09-10
  • 蓝牙BREDR 和BLE综述

    特点:数据传输速度比蓝牙BR快2-3倍(最高2-3 Mbps)。 1.2. 应用场景 音频设备:蓝牙耳机、蓝牙音箱,提供稳定高质量的音频传输。 简化的协议栈:降低了开发成本和复杂性,提高了设备的兼容性和互操作性。 BLE技术的起源与基础版本 BLE技术起源于蓝牙4.0版本,该版本首次引入了低功耗蓝牙协议栈,旨在降低蓝牙设备的功耗,延长电池寿命。 特点:BLE以其低功耗著称,适用于不需要高数据传输速率但对功耗有严格要求的应用场景,如健康监测设备、智能家居控制等。BLE技术还具备快速连接与断开、短距离通信以及简化的协议栈等优势。 3.2. 传输速率 BR/EDR:最高传输速率可达3Mbps(EDR模式下),但在实际应用中可能因设备限制而有所降低。

    62310编辑于 2026-01-20
  • 来自专栏iOSDevLog

    Android 原生 BLE 开发

    Attribute Protocol(ATT)— GATT 在 ATT 协议基础上建立,也被称为 GATT/ATT。ATT 对在 BLE 设备上运行进行了优化,为此,它使用了尽可能少的字节。 // 使用此检查确定 BLE 是否支持在设备上,然后你可以有选择性禁用 BLE 相关的功能 if (! ---- 你的 app 能与 BLE 通信之前,你需要确认设备是否支持 BLE,如果支持,确认已经启用。 如果不支持BLE,那么你应该适当地禁用部分BLE功能。如果支持BLE但被禁用,你可以无需离开应用程序而要求用户启动蓝牙。使用BluetoothAdapter两步完成该设置。 连接到GATT服务端 ---- 与一个BLE设备交互的第一步就是连接它——更具体的,连接到BLE设备上的GATT服务端。

    5.2K20发布于 2018-07-04
  • 来自专栏写代码和思考

    低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端

    低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端 Android对外模模式(peripheral)的支持 从Android5.0开始才支持 关键术语和概念 以下是关键BLE术语和概念的摘要 属性协议(ATT) -GATT建立在属性协议(ATT)之上。 这也称为GATT / ATT。 ATT经过优化,可在BLE设备上运行。 为此,它使用尽可能少的字节。 角色和职责 以下是Android设备与BLE设备互动时适用的角色和职责: 中央与外围。 这适用于BLE连接本身。 处于中心角色的设备扫描,寻找广告,并且外围角色中的设备进行广告。 初始化BLE蓝牙广播(广告) (1)广播的设置 (2)设置广播的数据 (3)设置响应的数据 (4)设置连接回调 private void initGATTServer() { onCharacteristicWriteRequest:device name = null, address = 74:32:DE:49:3C:28 3.onCharacteristicWriteRequest

    2.5K00发布于 2020-03-16
  • 来自专栏orientlu

    BLE 广播格式定义

    BLE 考虑功耗, 使用了3个广播信道,顺序广播。 两个蓝牙设备想要建立连接, 第一步是 从机(server) 向外广播, 主机(client) 搜索到后发起请求。

    4.5K20发布于 2018-09-13
  • 来自专栏嵌入式智能硬件

    蓝牙---BLE GATT介绍

    characteristic的发现、读、写、通知(Notifing)、指示(Indicating) 及配置characteristic的广播 GATT可以被Application或其他Profile使用 其协议栈如下图 Characteristic由Characteristic Definition定义, 包含一个Characteristic声明、Characteristic属性、值、值的描述(Optional) 3 高层协议也可以定义协议相关的Characteristic Descriptors Characteristic Descriptors在服务端上是无序的,Client不应该理所当然 Characteristic Descriptors Declarations Permissions由高层协议定义或协议相关的 Client不应该理所当然地认为是可读的 Characteristic Descriptor Declarations Primary Service Discovery 3. Relationship Discovery 4. Characteristic Discovery 5.

    4.2K20发布于 2020-08-31
  • 来自专栏陈冠男的游戏人生

    BLE中继攻击的探索

    最早了解 BLE 中继攻击是在 2022 年 3 月份,在网上搜了一堆关于 BLE 攻击方法的介绍,但当时并不知道无钥匙进入系统这么个东西,所以没感觉到中继攻击有什么大用途,当时接触的是些手环、灯泡这类的物联网设备 后来在 5 月份的时候 NCC 发布了 BLE 链路层中继解锁特斯拉的视频(https://youtu.be/5mdU4ksOc2w),发现原来 BLE 中继还挺有用的,就回头看了看之前搜集的资料,尝试搭建了 btlejuice 这个用来 BLE 中继攻击的工具(再吐槽一次 npm 安装东西太难了叭) 先把 btlejuice 以及 gattacker 这些中继攻击思路简单描述一下: 用两台带有蓝牙适配器的电脑 钥匙就无能为力了,与 NCC 发的视频实现的效果差距太大,便没有深入研究了 后来在网上冲浪的时候发现 NCC 在 hardware.io 分享了他们对 BLE 进行链路层中继的实现思路(https:/ 不会嵌入式开发,告辞 后来看到了小米的师傅们要在 KCon 分享他们实现的 BLE 链路层中继,斥巨资买了张门票(真就为了这个议题去的哈哈哈)然后心满意足的听了小米的师傅们对 BLE 攻击的分享(还说工具要在

    2.2K40编辑于 2023-10-07
  • 来自专栏全栈程序员必看

    什么是igmp协议_igmpv3协议

    文章目录 IGMP协议 定义 功能 IGMPv1 主机加入 主机离开 查询器选举 成员报告抑制机制 IGMPv2 主机加入 主机离开 查询器选举 成员报告抑制机制 IGMPv3 主机上维护的组播信息 路由器维护的组播信息 IRF形成的必要条件 配置步骤 相关命令 IGMP协议 定义 组播组管理协议 功能 管理主机加入和离开组播组 维护本地组播组信息表 IGMPv1 主机加入 路由器向开启了IGMP的端口发送查询报文,询问该接口下有没有组播接收者 ]igmp //进入IGMP视图 [h3c]igmp version 'version' //配置IGMP版本 [h3c-GigabitEthernet0/0]igmp enable / 堆叠组内的所有交换机会自动同步配置文件,但是成员交换机允许过程中产生缓存表项并不包含在配置文件中 热备份机制会自动吧运行过程中的缓存表项进行同步,比如邻居表、协议路由表、ARP表等。 [h3c]irf member 'member-id' renumber 'new-member-id'//更改IRF设备ID [h3c]irf-port-configuration active

    1.5K40编辑于 2022-10-05
  • 来自专栏全栈程序员必看

    IGMP协议_igmp协议常用3种报文

    三、IGMP的版本 到目前为止,IGMP 有三个版本:IGMPv1、IGMPv2、IGMPv3 IGMPv1 :主机可以加入组播组。没有离开信息(leave messages)。 IGMPv3 :与以上两种协议相比,该协议的主要改动为:允许主机指定它要接收通信流量的主机对象。来自网络中其它主机的流量是被隔离的。 IGMPv3 也支持主机阻止那些来自于非要求的主机发送的网络数据包。 所有版本的IGMP 都支持ASM(Any-Source Multicast,任意信源组播)模型;IGMPv3 可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型 在交换机上部署了组播VLAN功能后,上游路由器不必在每个用户VLAN(VLAN2和VLAN3)内都复制一份组播流,而是数据流在组播VLAN(VLAN4)内复制一份后发送给二层设备。

    3.6K20编辑于 2022-10-05
  • 来自专栏云深之无迹

    索尼相机BLE控制接口

    索尼相机现在支持基于蓝牙低功耗 (BLE) 的控制协议。该接口允许客户端控制以及从支持 BLE 的遥控器获取状态。 遙控器 对于启用了索尼 BLE 的相机,发现过程相当简单。 例如 ILCE-7C 有8E3F7E15-AF80-1567-D946-A9190C2Cf98A 服务 支持的摄像机有多种操作模式,可确定哪些服务可操作。 相机控制服务目前正被索尼应用程序用于 BLE 到 Wifi 切换。它的许多特征似乎是为了支持FTP 服务器,但这并没有得到证实。 命令 回应 如果存在协议错误,IRC 将返回 0x0185 GATT 状态。如果拍摄照片或开始录制等过程,将发送各种通知。 原生的遥控器260元,有了协议,几十块钱就可以做一个,而且功能可以做的更多。 至于实现,我应该是写过。大家感兴趣的去翻翻。

    1.1K20编辑于 2022-09-06
  • 来自专栏物联网思考

    几款常用的ble调试app(nRF Connect、BLE调试助手、LightBlue)

    ,这里以“BLE-UART”这个设备为例,连接之后可以看到从设备支持4个服务,其中前面0x1800、0x1801、0x180A是蓝牙联盟定义的,后面的是自定义的,显示Unknown Service。 (5)特征读写 ble是通过特征传输数据的,特征又有不同的属性,ff05这个特征只支持写。 (6)修改MTU 通过Request MTU可以修改MTU,提高数据的传输量。 2、BLE调试助手 这个是南京沁恒开发的app,调试起来也比较方便,支持从机模式,用法和nRF Connect差不多。 (1)从机模式切换,默认是主机模式 (2)扫描从机 (3)连接从机 (4)查看服务与特征 (5)特征读写 (6)修改MTU 3、LightBlue 在ios上一般使用这个调试 (3)特征读写 (4)修改MTU 上面3ble调试app,都可以使用,个人推荐nRF Connect和BLE调试助手。

    14K30发布于 2021-11-04
  • 来自专栏物联网思考

    ble 40个射频通道

    射频通道,编号0-39,每个2M,分为广播通道和数据通道,广播通道是37,38,39,其余都是数据通道。

    69820发布于 2021-10-09
  • 来自专栏后端码事

    proto3 协议指引

    二、下面以一个简单地示例开始: proto3 文件:.proto syntax = "proto3"; message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3; } 第一行声明当前使用的proto3版本协议语法(proto编译器默认使用proto2版本协议语法),声明必须为文件的第一行 2、字段约束 singular:更直观的可以用optional来释义,可选字段,0个或1个,proto3中未默认约束。 repeated:列表集合字段类型,可以包含 >=0 个字段元素。 3、int32, uint32, int64, uint64及bool是相互兼容的,只不过转换过程会产生值域变更。 4、sint32 和 sint64 是相互兼容的。 5、byte3存储值为有效UTF-8编码内容时与string相互兼容。 七、未知字段 未能对应解析的字段会存储于未知字段中。此机制在proto3中最初抛弃,v3.5版本重新引入。

    2.5K10发布于 2021-02-25
  • 来自专栏非著名程序员

    Android BLE 基础框架全新改版

    Android BLE基础操作框架,基于回调,操作简单。包含扫描、多连接、广播包解析、服务读写及通知等功能。 该库是 BLE 操作的基础框架,只处理 BLE 设备通信逻辑,不包含具体的数据处理,如数据的分包与组包等。 //设置连接失败重试次数 .setConnectRetryInterval(1000)//设置连接失败重试间隔时间 .setOperateRetryCount(3)//设置数据操作失败重试次数 .setOperateRetryInterval(1000)//设置数据操作失败重试间隔时间 .setMaxConnectCount(3);//设置最大连接设备数量// 更多关于广播包解析可以参考Android BLE学习笔记中数据解析部分。

    2.5K70发布于 2018-02-02
  • 来自专栏陈冠男的游戏人生

    BLE空口抓包方案对比

    本文根据实际使用经验,介绍了每种抓包方案的环境配置与抓包方法,对比分析目前几种 BLE 的空口抓包方案(只讨论普通人用得起的,ellisys 这类神器摸都没摸过 Orz) PART1 方案一 ubertooth numpy python3-qtpy python3-distutils python3-setuptools 2、安装 libbtbb wget https://github.com/greatscottgadgets CC2540 是 TI(德州仪器)的一款芯片,优点是价格便宜,淘宝购买大概40,缺点同样是只能同时抓一个信道 TI 有配套的官方软件:Packet Sniffer,直接安装就行,安装好之后接上 CC2540 协议类型选择蓝牙就可以抓包了 方案三 Hollong + wireshark 纬图出品的 BLE 抓包工具,配合 wireshark 抓包操作简单,优点是同时抓三个广播信道,不会出现概率问题,价格大概在 800 左右 提供官方软件 找到Global Extcap path 里面的路径 把刚才的 extcap 文件夹里的内容拷贝过去 运行这条命令,若如下图所示这样就是成功了,Linux 下用 .sh nrf_sniffer_ble.bat

    3.8K31编辑于 2022-11-11
领券