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

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

    BLE协议栈为什么要分层?怎么理解BLE“连接”?如果BLE协议只有ATT层没有GATT层会发生什么? 1. 协议栈框架 一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提。 在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。 ? 这里还有一个问题,设备B怎么知道这个数据包是发给自己的还是其他人的,为此BLE引入access address概念,用来指明接收者身份,其中,0x8E89BED6这个access address比较特殊 广播状态下设备A的LL层API将变成send_LL(0x53,2402M, 0x8E89BED6)。

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

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

    本章介绍蓝牙协议(重点介绍:BLE)的基本特点、版本演进、协议的构成、等基础知识,本章重在了解,目的是对BLE协议有个大概的认知,即了解BLE协议栈的全貌。 我们常说的蓝牙4.0不等同于BLEBLE只是蓝牙4.0的子集;蓝牙4.0是一个综合性协议规范。 BLE协议栈的实现方式采用分层的思想: 控制器部分包括:物理层(PHY)、链路层(LL)、控制接口层(HCI) 主机部分包括:裸机链路控制及自适应协议层(L2CAP)、安全管理层(SMP)、属性协议层( 图片 03-链路层(LL) 低功耗蓝牙参考 《Core_v5.3.pdf》中 Part B: Link Layer Specification 章节部分,LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点 没有GATT,BLE协议栈也能跑,但互联互通就会出问题。

    12.1K60编辑于 2023-10-13
  • 来自专栏飞鸟的专栏

    8、VTP协议

    交换机的默认模式,提供VTP消息:包括VLAN ID 和名字信息,学习相同域名的VTP消息,转发相同相同的域名VTP信息,可以添加、删除和更改VLAN。可以有多个Server但是最少有一个。

    83440编辑于 2022-01-05
  • 来自专栏嵌入式智能硬件

    蓝牙BLE技术

    蓝牙BLE组成 BLE由三个主要构建模块组成:应用程序、主机和控制器。顾名思义,应用程序块是与蓝牙协议栈交互的用户应用程序。主机覆盖蓝牙协议栈的上层。控制器覆盖下层。 主机包含以下层: l 通用访问配置文件(GAP) l 通用属性配置文件(GATT) l 逻辑链路控制和适配协议(L2CAP) l 属性协议(ATT) l 安全经理(SM) l 主机控制器接口 现在我们可以转到BLE设备的主机部分。 逻辑链路控制和适配协议(L2CAP) L2CAP负责两项任务:1、它需要来自上层的多个协议,并将它们封装成标准的BLE数据包格式(反之亦然)。 层负责或路由两个主要协议:属性协议(ATT)和安全管理器协议(SMP)。 属性协议(ATT) 属性协议(ATT)是基于设备呈现的属性的简单客户端/服务器协议。客户端从服务器请求数据,然后服务器将数据发送给它的客户端。

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

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

    环境搭建 上面介绍了数据包和各层协议,接下来我们将使用Ubertooth One来捕获通信过程中的蓝牙数据包。 ? /configure make && make plugins sudo make suidinstall sudo make plugins-install (6)安装BLE解密工具crackle crackle connections -p promiscuous: sniff active connections -a[address] get/set access address (example: -a8e89bed6 capture occurs. ubertooth-btle -f -ctest.pcap抓包&保存到本地 使用这条命令我们可以把设备捕获到的数据包保存到本地,完成后可导入wireshark进行数据包、协议分析 使用规则过滤数据包:参考Capturing BLE in Wireshark btle.data_header.length > 0 || btle.advertising_header.pdu_type

    3.9K20发布于 2020-12-09
  • 来自专栏架构专题

    WebSocket协议 8

    WebSocket是个不太干净协议。 ---- 本文包括以下内容: 一、WebSocket协议只能浏览器发起么? 二、WebSocket和HTTP什么关系? ---- 一、WebSocket协议只能浏览器发起么? 不是。目前此协议的受众的也不仅仅是web开发者。 WebSocket只是一种协议,它和http协议一样,使用类似okhttp的组件,可以在任何地方进行调用,甚至可以借助WebSocket实现RPC框架。 ? 如果服务端支持的话,就可以切换到WebSocket协议。简单点讲:连接已经在那了,通过握手切换成ws协议,就是切换了连接的一个状态而已。 如此操作,可以尽量避免普通 HTTP 请求被误认为 WebSocket 协议。 其他的,像Sec-WebSocket*字样的头信息,表明了客户端支持的子协议以及其他信息。

    1.1K20发布于 2019-09-24
  • 来自专栏我杨某人的青春满是悔恨

    RxSwift 与 BLE 实战——VisualBlue

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

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

    数据包格式 BLE的数据包格式确保了数据传输的完整性和可靠性,其基本结构包括前导序列、访问地址、PDU(Protocol Data Unit,协议数据单元)报头、PDU长度、PDU数据和CRC(Cyclic 简化的协议栈:降低了开发成本和复杂性,提高了设备的兼容性和互操作性。 BLE技术的起源与基础版本 BLE技术起源于蓝牙4.0版本,该版本首次引入了低功耗蓝牙协议栈,旨在降低蓝牙设备的功耗,延长电池寿命。 BR采用高斯频移键控(GFSK)调制技术,而EDR引入了差分正交相移键控(QDPSK)和差分8级相移键控(8DPSK)调制技术以提高数据传输速率。 特点:BLE以其低功耗著称,适用于不需要高数据传输速率但对功耗有严格要求的应用场景,如健康监测设备、智能家居控制等。BLE技术还具备快速连接与断开、短距离通信以及简化的协议栈等优势。 3.2.

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

    Android 原生 BLE 开发

    Attribute Protocol(ATT)— GATT 在 ATT 协议基础上建立,也被称为 GATT/ATT。ATT 对在 BLE 设备上运行进行了优化,为此,它使用了尽可能少的字节。 // 使用此检查确定 BLE 是否支持在设备上,然后你可以有选择性禁用 BLE 相关的功能 if (! 如果不支持BLE,那么你应该适当地禁用部分BLE功能。如果支持BLE但被禁用,你可以无需离开应用程序而要求用户启动蓝牙。使用BluetoothAdapter两步完成该设置。 rate format UINT16."); } else { format = BluetoothGattCharacteristic.FORMAT_UINT8; Log.d(TAG, "Heart rate format UINT8."); } final int heartRate = characteristic.getIntValue

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

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

    低功耗蓝牙BLE外围模式(peripheral)-使用BLE作为服务端 Android对外模模式(peripheral)的支持 从Android5.0开始才支持 关键术语和概念 以下是关键BLE术语和概念的摘要 : 通用属性简档(GATT) - GATT简档是用于通过BLE链路发送和接收称为“属性”的短数据块的一般规范。 属性协议(ATT) -GATT建立在属性协议(ATT)之上。 这也称为GATT / ATT。 ATT经过优化,可在BLE设备上运行。 为此,它使用尽可能少的字节。 角色和职责 以下是Android设备与BLE设备互动时适用的角色和职责: 中央与外围。 这适用于BLE连接本身。 处于中心角色的设备扫描,寻找广告,并且外围角色中的设备进行广告。 然后在运行时,您可以通过使用PackageManager.hasSystemFeature()确定BLE可用性: // Use this check to determine whether BLE

    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使用 其协议栈如下图 判读一个服务是Primary or Secondary Service可通过高层协议强制规定 2.2.2 Included Service 一个Included Service是一种引用已存在服务的方法 高层协议也可以定义协议相关的Characteristic Descriptors Characteristic Descriptors在服务端上是无序的,Client不应该理所当然 Characteristic Descriptors Declarations Permissions由高层协议定义或协议相关的 Client不应该理所当然地认为是可读的 Characteristic Descriptor Declarations Writing a Characteristic Value 8. Notification of a Characteristic Value 9.

    4.2K20发布于 2020-08-31
  • 来自专栏PHPer 进击

    网络协议 8 - TCP协议(上):性恶就要套路深

    ----     上次说了“性本善”的 UDP 协议,这哥们秉承“网之初,性本善,不丢包,不乱序”的原则,徜徉在网络世界中。      根据上述对 TCP 头的分析,我们知道对于 TCP 协议要重点关注以下几个问题: 顺序问题,稳重不乱; 丢包问题,承诺靠谱; 连接伟豪,有始有终; 流量控制,把握分寸; 拥塞控制,知进知退。 因此,TCP 协议要求 A 最后要等待一段时间,这个等待时间是 TIME_WAIT,这个时间要足够长,长到如果 B 没收到 A 的回复,B 重发给 A,A 的回复要有足够时间到达 B。      协议规定 MSL 为 2 分钟,实际应用中常用的是 30 秒、1分钟和 2 分钟等。     还有一种异常情况,B 超过了 2MS 的时间,依然没有收到它发的 FIN 的 ACK。 参考: 百度百科-TCP 词条; 刘超-趣谈网络协议系列课;

    71320发布于 2019-04-11
  • 来自专栏陈冠男的游戏人生

    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
  • 来自专栏云深之无迹

    索尼相机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)

    打开手机app,扫描周围的设备(从机),支持过滤功能 (2)设备信号强度(RSSI)查看 可以很清晰的观察rssi的变化: (3)连接设备 点击“CONNECT”按钮,即可连接目标设备,这里以“BLE-UART (5)特征读写 ble是通过特征传输数据的,特征又有不同的属性,ff05这个特征只支持写。 (6)修改MTU 通过Request MTU可以修改MTU,提高数据的传输量。 2、BLE调试助手 这个是南京沁恒开发的app,调试起来也比较方便,支持从机模式,用法和nRF Connect差不多。 (3)特征读写 (4)修改MTU 上面3个ble调试app,都可以使用,个人推荐nRF Connect和BLE调试助手。

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

    ble 40个射频通道

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

    69820发布于 2021-10-09
  • 来自专栏蓝牙Ble/Mesh

    BLE安全之SM剖析(1)

    BLE 安全   蓝牙的安全管理分为control端也就是LL层的安全管理和host端的安全管理, LL层的安全机制主要包括白名单管理,私有可解析地址管理,以及SM管理中的链路加解密等。 - **KP**字段是keypress,仅在 Passkey Entry 协议中使用,在其他协议中被忽略。 Passkey Entry 协议是 Legacy Pairing 和 Secure Connection 的典型配对方法。 BLE的SM常用密钥介绍 常用的密钥定义简单介绍下,具体的使用会在后面章节详细介绍。 在选择好了合适的配对和鉴权方式后,接下来就是BLE配对的阶段二 ,在该阶段会通过配对流程生成STK或者LTK,该阶段不同的配对和鉴权方式导致情况较多,会专门在下章节详细介绍。

    3.1K20编辑于 2023-02-28
  • 来自专栏非著名程序员

    Android BLE 基础框架全新改版

    Android BLE基础操作框架,基于回调,操作简单。包含扫描、多连接、广播包解析、服务读写及通知等功能。 项目地址:https://github.com/xiaoyaoyou1212/BLE 项目依赖:compile 'com.vise.xiaoyaoyou:baseble:2.0.0' 功能 支持多设备连接管理 该库是 BLE 操作的基础框架,只处理 BLE 设备通信逻辑,不包含具体的数据处理,如数据的分包与组包等。 更多关于广播包解析可以参考Android BLE学习笔记中数据解析部分。

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

    BLE空口抓包方案对比

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

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