从空中截获BLE数据包看蓝牙5协议流程【第四部分:Ellisys蓝牙5连接分析】
------------------------------------------------------------------------------------------------------------
文章版权归为微信公众号 Wireless Inside (前身 无线技术联盟),转载请注明出处.
XCODER.
技术博客:www.iotbzw.com
------------------------------------------------------------------------------------------------------------
从空中截获BLE数据包看蓝牙5协议流程前两系列已经讲过蓝牙5的广播与连接数据包分析,但所用的工具为BT4.2抓包工具,今天采用Ellisys抓包工具分析蓝牙5的连接,更新PHY几个关系的步骤,以图文为主,详细SPEC流程请参考从空中截获BLE数据包看蓝牙5协议LL层连接部分。需要原始完整抓包数据的同学,可以后台和我取得联系。
从空中截获BLE数据包看蓝牙5协议流程【第一部分:beacon广播】
从空中截获BLE数据包看蓝牙5协议流程【第二部分:蓝牙LL层连接】
使用的抓包工具:Ellisys
今天用的Ellisys的界面如下所示,可以分为三个部分, 左上为40个信道监视图,左下为某一个或者多个设备(MAC地址)的交互数据,我们只谈只谈BLE,所以其他wifi,zigbee等功能可以忽略。
蓝牙设备工作状态介绍:
1.从机设备广播状态:
Connectable LE Coded -> LE Coded
Connectable LE Coded -> 2M on aux
2.主机连接从机过程:
主机在2M PHY 下建立连接
2M PHY切换到1M PHY
1M PHY切换到编码Coded PHY
3.蓝牙MAC地址:
Slave: 0xF0F8F2D2BB7F
Master: F0:F8:F2:1F:57:1B
蓝牙连接
上一讲讲了蓝牙5广播数据分析,今天接着看连接过程,下图是一个请求连接全过程,总共分为6个阶段,1-4阶段为广播,5为请求连接,6为回应连接。
1-4阶段分析请参考上一篇文章:
5,6阶段发生在数据信道上,5为连接请求,因为是专属蓝牙5连接,可以看到其指令为AUX_CONNECT_REQ(主请求),AUX_CONNECT_REQ携带的参数和BT4.2并无太大差异,hopping channel,interval,latency等等。
在接收到信号之后从机会回应一帧AUX_CONNECT_REP。
PHY层更新
如上面所示,Sniffer是在2M PHY下建立的连接,整个抓包实验,我把蓝牙的PHY 从2M PHY更新到1M PHY,最后更新到Coded PHY,三个阶段,如下图所示。
2M -> 1M PHY更新和Coded PHY更新
从下图可以看到,更新PHY阶段有三个阶段,主机发送更新请求:LLCP_PHY_REQUEST,在下图右下可以看到,主机请求更新PHY 层到1M PHY, 从机接收到请求,并回复LLCP_PHY_RESPONSE,RSPONSE中回复主机可以用1M PHY,最后主机发送LLCP_PHY_UPDATE,进过几个数据包的调整之后方能更新到1M PHY上。
1M PHY -> Coded PHY更新
过程和上面一致,不过多赘述。
总结
用两张图来总结我觉得恰到好处,图1,蓝牙5连接过程,图2,蓝牙5 PHY更新流程。
需要原始完整抓包数据的同学,可以后台和我取得联系。
无线技术联盟微信公众号,提供有价值的市场信息和最新的技术分析,欢迎关注交流,转载请注明出处。
诚邀各大蓝牙芯片原厂入群!
诚邀各大蓝牙顶级代工厂、方案厂入群!
诚邀各大蓝牙品牌厂商产品经理入群!
还不快上车~
千呼万唤始出来,无线技术联盟终于准备把大家召集到一起,帮助有需要的人打通蓝牙无线相关的技术,市场,芯片渠道,商务对接,一群在手,蓝牙无忧。
「Wireless Inside 微信公众号 (原无线技术联盟微信公众号) 微信交流群」
助力IoT行业朋友打通短距离无线通信圈的行业小社区。
集高通,Broadcom,TI,Nordic,Dialog,ST,Silicon lab, NXP, AMBIQ等蓝牙芯片原厂技术,市场,销售
集华为,MTK,泰凌微,凌思微,盛源达,ASR,华普微,中颖电子,百瑞互联,Realtek 国产芯片原厂技术,市场,销售
集Arrow,北高智,迅通,世强,利尔达,科通,全科等一线原厂代理商技术,市场,销售
集小米,华米,绿米,涂鸦,雅观,百度,阿里,Oppo,Vivo,京东互联网公司,品牌客户,方案公司技术,市场,销售,创始人
集蓝牙认证机构,被动器件,射频公司,以及SIG大佬
申请流程:
① 因群人数已超过限制人,请先微信扫描以下微信二维码或添加Xcoder微信号(blecoder),添加微信时请将您的个人信息进行备注(名字 公司 职位),以便登记,同时也欢迎同行和我进行交流。
② 由于需要我逐个邀请入群,所以请大家耐心等待!谢谢理解与支持!
无线技术联盟微信公众号,提供有价值的市场信息和最新的技术分析,欢迎关注交流,转载请注明出处。
从空中截获BLE数据包看蓝牙5协议流程【第四部分:Ellisys蓝牙5连接分析】相关推荐
- 蓝牙BLE数据包格式汇总
蓝牙BLE数据包格式汇总 以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为 ...
- 【待补】Wireshark+BLE dongle: BLE数据包捕获以及分析
文章目录 前言 1. 捕获BLE数据包 2. 分析BLE数据包 2.1 过滤掉不感兴趣的BLE数据包 2.2 利用Wireshark内嵌工具生成图表 前言 硬件:Nordic 52840 dongle ...
- 数据包接收系列 — IP协议处理流程(一)
本文主要内容:在接收数据包时,IP协议的处理流程. 内核版本:2.6.37 Author:zhangskd @ csdn blog IP报头 IP报头: struct iphdr { #if defi ...
- 蓝牙广播数据包_蓝牙BLE数据包格式汇总
以蓝牙4.0为例说明: BLE包格式有:广播包.扫描包.初始化连接包.链路层控制包(LL层数据包).逻辑链路控制和自适应协议数据包(即L2CAP数据包)等: 其中广播包又分为:定向广播包和非定向广播包 ...
- 截获QQ数据包 截获QQ聊天记录
首先,你需要安装有VPC,这样你才能运行PC版的QQ.其次,你要有你机器root用户的权限. 然后,你启动VPC,注意先不要登录QQ. 打开终端窗口.输入su命令,在提示里面输入root用户密码,进入 ...
- linux网络包截获,用C实现截获网络数据包
现在进入第二步,捕获数据包.从第20行开始,我们进入了一个死循环,while(1),在第24行,recvfrom(sock, buffer, sizeof buffer, 0, (struct soc ...
- 修改数据包欺骗服务器,Fiddler协议捕获编辑工具与Session欺骗原理详解
今天Kitty主要与大家分享Fiddler抓包工具与协议捕获编辑工具来与大家讲解Session欺骗原理过程,咱们主要通过Fiddller协议捕获工具来对比HTTPWatch两款工具之间的差别,最主要的 ...
- HDMI原理详解以及时序流程(视频是三对差分信号,音频Audio是PCM级(无压缩)传输,包含在数据包内,依靠协议规定采样)HDMI可以传输RGB与YUV两种格式
资料来源:HDMI介绍与流程 - TaigaComplex - 博客园 最近要用ZYNQ开发版的HDMI做显示,看着硬件管脚和例程只能发呆,于是决心去弄清楚HDMI的工作原理,查找了很多资料,都是碎片 ...
- IP数据包格式(ICMP协议与ARP协议)
这里写目录标题 IP数据包格式 网络层的功能 IP数据包格式 ICMP协议 ping 广播域 ARP协议(地址解析协议) 无故ARP ARP工作原理: ARP报文 查看arp缓存表(静态arp和动态a ...
最新文章
- python模块之pickle
- 中国教育电视台的iEnglish英语风采秀 为我们揭示了“双减”的本质目标
- 使用 VideoToolbox 探索低延迟视频编码 | WWDC 演讲实录
- 计算机连接网络名称,更改Windows Server Core计算机名字 以及配置网络连接
- Java 读写 hdfs文件或者目录
- MapReduce的简单实例WordCount
- 开发---推荐16个国外的源码下载网站
- 数学趣题——寻找水仙花数
- 一个柱状图里两种数据_分享一些数据分析常用的统计图图表
- 关于http协议的理解
- flash动画制作成品_「咻动画」flash动画在制作方面有哪些优势?
- 问题 E: 货币兑换 山东科技大学OJ c 语言
- 前端传递数据超过2M不能传给后台
- 分布式存储中HDFS与Ceph两者的区别是什么,各有什么优势?
- es单条插入失败_Elasticsearch之es学习工作中遇到的坑(陆续更新)
- 学术墙报模板_【征集】|复旦大学2019博士生学术论坛之生命科学论坛墙报展
- php怎么用origin打开,[转载]origin 使用技巧 (4)
- 计算机网络技术发展四个阶段,计算机网络的发展分哪四个阶段,特点?
- SQL数据库的存错过程中output用法
- java-web6-Servlet知识