1.简介

软件工具:wireshark

硬件抓包工具:nrf52840 dongle

2.数据包分析

使用wireshark抓到的数据包分为两个部分,一部分是软件自己添加的内容,另一部分才是广播出来的数据

2.1软件添加部分

软件添加的大部分内容可以不关注。这里需要关注的内容如下:

         这里主要关注信道时间戳

还记得在上一章的内容吗?蓝牙总共有40个信道,而广播是在373839三个信道依次发送。且广播间隔不超过10ms。不记得得话,可以回去复习一下。蓝牙学习四(广播)_t_guest的博客-CSDN博客

这里我们截取三个相邻的广播包来分析一下:

上边截取了相邻的三个广播数据包。可以看到1号的信道为37,开始到结束时间为296us。2号的信道为38,开始到结束时间为296us。3号的信道为39,开始到结束时间为296us。1号到2号的间隔为1000us左右,2号到3号的间隔为1000us左右。

可以看到,此时广播是从37信道开始依次为37、38、39信道。当在39信道广播数据后,收到了SCAN_RSP。此时则停止广播。下次再进行广播的话,又从37信道开始

如果说在一次广播事件中,没有广播到39信道就收到SCAN_RSP会如何呢?上一章我们也说过,就算收到了SCAN_RSP,依旧会继续广播。见下图:

从上图可以看到,1号广播是37信道,并且在37信道接收到了SCAN_RSP。而此时广播事件并没有停止,而是继续在38、39信道进行广播。这也与上一章我们介绍的相同。

2.2 广播数据内容

2.2.1 非定向可连接广播事件(ADV_IND)

蓝色数据部分就是真是广播的内容。这里进行拆分。总共分为6部分。

Access Address(目标地址):

4字节,小端。上图的值为 0x8e89bed6。所以BLE设备的广播帧都是使用这个地址。

PDU Header(PDU 包头)

PDU Header 虽然只有2字节。但是包含了很多内容。

PDU Header拆分如下:

PDU type为广播类型:

ADV_IND:非定向可连接广播,即通用广播

ADV_DIRECT_IND:定向可连接广播,即快速广播

ADV_NONCONN_IND:非定向必可连接广播,即不能建立连接的广播

ADV_SCAN_IND扫描帧,是由scanner(手机、平板、PC)发出的。主动扫描时使用。

SCAN_REQ扫描请求帧,是由scanner(手机、平板、PC)发出的。只在scanner想从advertiser获取更多的广播数据的时候才由scanner发出。

SCAN_RSP:当advertiser收到SCAN_REQ时的回应

CONNECT_REQ(CONNECT_IND):scanner(手机、平板、PC)向advertiser发送的连接请求

本次抓的数据,使用的就是ADV_IND。

 Advertising Address (广播设备MAC地址)

Advertising Data (广播包数据)

广播包数据都是以 长度+内容来表示的。比如这里我们抓的数据。

02 01 06为一组,11-00为一组。

长度为02,01表示指令类型, 表示当前设备不支持经典蓝牙,是通用可发现模式。

长度为0x11(17),0x16表示为服务数据。后续内容为在程序中组包的内容。

CRC(CRC校验值)

广播数据内容的校验值

2.2.2扫描应答(SCAN_RSP)

数据结构与ADV_IND是相同的,这里不再重复介绍。直说关键点。

PUD type:显示为0100,即为SCAN_RSP

与ADV_IND不同的是,SCAN_RSP中的advertising data变成了Scan Response Data

因为SCAN_RSP是对SCAN_REQ的回应,所以其中会包含一些其他的信息。这些信息是程序中自己设置的。此次抓的包中内容为外貌设备名称。scanner也就是获得了这些内容,才知道扫描到的设备是什么类型,叫什么名字。

2.2.3连接请求(CONNECT_REQ/CONNECT_IND)

连接请求包的格式是固定的:

通过wireshark抓取到的连接请求包如下图:

Access Address:还是我们的老熟人,固定广播地址

Packet Header:包含了PUD类型为连接请求包(Connect_ind),发送地址接收地址类型。

Initiator Address:初始地址,也就是主机的地址

Advertising Address:广播者地址,也就是设备的MAC地址

Link Layer Data:负载信息,可以展开介绍。

 Access Address:接入地址

CRC Init:CRC校验

Window Size:传输窗口大小,2.5ms

Window Offset:传输窗口偏移,2.5ms

Interval:连接间隔30ms

Latency:潜伏周期0

Timeout:连接最大超时时间5000ms

Channel Map:信道映射,可用的信道为1,不可用的为0.

 Hop:调频增加(跳频算法使用)

Sleep Clock Accuracy:主机睡眠时间精度

Connect_IND数据包中的一些信息,在Nrf connect中也是可以看到的。

蓝牙学习五(广播包分析wireshark)相关推荐

  1. DHCP数据抓包分析--wireshark

    DHCP数据抓包分析–wireshark DHCP-(Dynamic Host Configuration Procotol,动态主机配置协议),是一个局域网的网络协议,主要用于给内部网络或网络服务供 ...

  2. ICMP协议抓包分析-wireshark

    ICMP协议抓包分析-wireshark ICMP- (Internet Control Message Protocol,网际报文协议)是Internet协议族的核心协议之一,也可称为是网际控制报文 ...

  3. ARP协议抓包分析 -- wireshark

    ARP协议抓包分析 – wireshark ARP- Address Resolution Protocol协议,即地址解析协议.该协议功能就是将IP地址解析成MAC地址. 在发送数据的时候,只知道目 ...

  4. 视频教程-2019版抓包分析-Wireshark从入门到精通【进阶篇】-其他

    2019版抓包分析-Wireshark从入门到精通[进阶篇] G-LAB IT实验室创始人.知名讲师.同时拿到路由交换.网络安全.数据中心3个方向的CCIE专家级别认证.教学风趣幽默,广受学员好评 郭 ...

  5. DNS抓包分析--wireshark

    DNS抓包分析–wireshark DNS-(Domain Name System,域名系统),是因特网上作为余名和IP地址相互映射的一个分布式数据库,能够使用户更加方便地访问互联网,而不是去记住能够 ...

  6. TCP协议抓包分析 -- wireshark

    TCP协议抓包分析 – wireshark TCP- (Transmission Control Protocol,传输控制协议)是一种面向连接的.可靠的.基于IP的传输层协议.它的主要目的就是为数据 ...

  7. UDP协议抓包分析 -- wireshark

    UDP协议抓包分析 – wireshark UDP是User Datagram Protocol用户数据报协议的简称.他是OSI七层模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务 ...

  8. 互联网协议IP抓包分析 -- wireshark

    互联网协议IP抓包分析 – wireshark 互联网协议IP是Internet Protocol的缩写,中文缩写是网协 互联网协议也就是为计算机相互连接进行通信而设计的协议. IP地址协议报文首部 ...

  9. 网络学习利器--网络分析包工具--wireshark和科莱

    网络分析包工具(第二受欢迎黑客工具) 代表 英文推荐:wireshark,中文推荐:科来网络分析. WireShark是非常流行的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息.常用于 ...

最新文章

  1. Linux系统中创建大文件,并作为文件系统使用
  2. HTML的标签描述17
  3. 小憩,味一二 ——08年3月编程手札
  4. boost::hana::int_c用法的测试程序
  5. protobuf入门教程(三):常用序列化/反序列化接口
  6. SAP Fiori Elements - bindComponent - binding property in XML view will trigger odata request
  7. java中异常与return
  8. torchvision.datasets.ImageFolder使用详解
  9. C#传递参数调用exe程序
  10. 小伙工资单被同事看到后遭开除!网友炸锅了 最新后续来了...
  11. Linux内存管理:反向映射机制(匿名页,文件页和ksm页)
  12. Yosemite上手动增加基于POP3协议的QQ邮箱账记
  13. PCIE设备与HOST之间的地址转换
  14. SSM第一篇 最简单的SSM框架搭建过程--SSM简单整合
  15. c语言c9考试软件下载,二级c语言考试系统-无忧考吧二级c语言考试系统下载 v2018.09官方版--pc6下载站...
  16. java mov 转 mp4 视频格式
  17. Moveit报错:Unable to identify any set of controllers that can actuate the specified joints
  18. 【长篇博文】Docker学习笔记与深度学习环境的搭建和部署(二)
  19. 对m720蓝牙优联已配对设备进行更换
  20. WebView网页视频统一全屏播放及横竖屏切换

热门文章

  1. 如何构建供应链服务平台?
  2. 物料帐配置之 重估消耗
  3. 世界上最伟大的推销员-羊皮卷之八
  4. Unity游戏教程初步(八):Animator的使用
  5. [监督学习]GDA 高斯判别分析
  6. A股上市公司裁判文书数据
  7. C语言——矩阵的上三角化
  8. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定
  9. CT影像与超声影像的融合(fusion)的原理是什么
  10. No.053<软考>《(高项)备考大全》【冲刺7】《软考之 119个工具 (5)》