各种无线传输协议汇总一蓝牙

文章目录

一、蓝牙(一)蓝牙分类

在这里插入图片描述

从左到右:经典蓝牙(BR/EDR)、双模蓝牙(同时支持 BR/EDR/LE)和低功耗蓝牙(BLE)。 其中,经典蓝牙和低功耗蓝牙互不兼容。

事实上,从结构上我们可以看出,双模蓝牙是经典蓝牙和低功耗蓝牙的结合。

(二)蓝牙原理及应用 1、工作方式 蓝牙技术拓扑

基本速率 BR(Basic Rate)/增强数据速率 EDR(Enhanced Data Rate)

1:1

低能耗LE(低能耗)

1:1 1:nn:n

在这里插入图片描述

2. 申请

涵盖的领域包括汽车、消费电子、家庭自动化、医疗保健、手机、电脑及周边设备、可穿戴设备、运动健身、零售和基于位置的服务等。

(三)发展历程

在这里插入图片描述

(4)蓝牙协议栈

蓝牙协议栈按照功能可以分为四层:

1.核心协议层(HCI、LMP、L2CAP、SDP)

协议全名翻译

末次月经

链路管理器协议

链路管理协议

用于建立设备之间的连接,负责链路的建立、认证和配置

人机交互

主机控制器接口

主机控制器接口

为控制器和链路管理器提供命令接口,允许访问硬件状态和控制寄存器

社会发展计划

服务发现协议

服务发现协议

允许设备发现其他设备提供的服务及其相关参数

L2CAP

逻辑链路控制和适配协议

逻辑链路控制和适配协议

用于在使用不同高级协议的两个设备之间进行多路复用的多个逻辑连接。 提供无线数据包分段和重组。

关于L2CAP协议的一些协议:

协议全名翻译

ERTM

增强型重传模式

增强重传模式(附加L2CAP模式)

提供可靠的L2CAP通道

SM

流模式

流模式(附加L2CAP模式)

无重传和流量控制,提供不可靠的L2CAP通道

AVCTP

音频/视频控制传输协议

音频/视频控制传输协议(通过L2CAP传输AV/C命令)

AV/C命令由远程控制规范通过L2CAP通道发送

AVDTP

音频/视频分发传输协议

音频/视频分发传输协议(通过L2CAP将音乐文件传输到立体声耳机)

通过高级音频分配规范通过 L2CAP 通道将音乐传输到立体声耳机

2.电缆替代协议层(RFCOMM)

协议全名翻译

射频通信

射频通讯

串行线性仿真协议

生成虚拟串行数据流(常用于RS-232)

3.电话传输控制协议(TCS-BIN)

协议全名翻译

TCS-BIN

电话控制规范-二进制

电话控制协议

定义用于在蓝牙设备之间建立语音和数据呼叫的呼叫控制信令

4. 选择协议层(PPP、TCP/IP、UDP、OBEX、WAE/WAP、IrMC、BNEP)

协议全名翻译

购买力平价

点对点协议

点对点通信协议

用于通过点对点链路传输 IP 数据报的互联网标准协议

TCP/IP/UDP

传输控制协议/互联网协议/用户数据报协议

传输控制协议/互联网协议/用户数据报协议

TCP/IP协议族的基本协议

OBEX

对象交换

对象交换协议

用于对象交换的会话层协议,提供对象和操作表示的模型

WAE/WAP

无线应用环境/无线应用协议

无线应用环境/无线应用协议

WAE 指定了无线设备的应用程序框架,而 WAP 是一个开放标准,为移动用户提供电话和消息服务的访问。

ikB

红外移动通讯

红外移动通信协议

定义移动通信终端的交换对象函数

BNEP

蓝牙网络封装协议

蓝牙网络封装协议

在个域网配置文件中传输 IP 数据包

在这里插入图片描述

或者

在这里插入图片描述

(五)协议规范

蓝牙配置文件是指蓝牙通信为此目的应使用的通信协议和相关规范。 蓝牙 1.1 定义了 13 个配置文件。 SIG(特别兴趣小组)认为蓝牙设备有四个基本配置文件:

规范全名翻译的作用

差距

通用访问配置文件

通用访问规范

确保不同的蓝牙产品能够互相发现并建立连接

可持续发展计划

服务发现应用程序配置文件

服务发现应用规范

描述应用程序如何使用 SDP 发现远程设备上的服务

SPP

串口配置文件

串口规格

定义如何设置虚拟串口并连接两个蓝牙设备

GOEP

通用对象交换配置文件

通用对象交换规范

可用于将对象从一台设备传输到另一台设备

(6)基带纠错

根据消息的类型,各个消息可以通过纠错来保护,例如1/3速率前向纠错(FEC)或2/3速率前向纠错(FEC)。 此外,带有 CRC 的数据包将被重新传输,直到被自动重复请求确认为止。

(7) 建立连接

任何处于可发现模式的蓝牙设备都需要发送以下信息:

任何设备都可以执行查询来查找要连接的其他设备,并且任何设备都可以配置为响应此类查询。 但是,如果尝试连接的设备知道设备的地址,它将始终响应直接连接的请求,并根据请求发送上面列表中显示的信息。 使用设备的服务可能需要其所有者进行配对或接收,但连接本身可以由任何设备发起并维持,直到超出范围。 某些设备一次只能连接到一台设备,保持连接以防它们连接到其他设备并出现在查询中,直到它们从一台设备转到另一台设备。

每个设备都有一个唯一的 48 位地址。 然而,这些地址通常不会在查询中显示。 相反,请使用友好的蓝牙名称,该名称可由用户设置。 当其他用户扫描设备和配对设备列表时,会出现此名称。 默认情况下,大多数手机都将蓝牙名称设置为手机的品牌和型号。 大多数手机和笔记本电脑仅显示蓝牙名称,并且需要特殊程序才能获取有关远程设备的更多信息。 (以上是我翻译的,如果看不懂,可以阅读原文,链接在底部,抱歉。^^)

(八)配对与绑定 1.动机

通过蓝牙提供的许多服务可以公开私人数据或让连接方控制蓝牙设备。 出于安全原因,有必要识别特定设备,从而控制哪些设备可以连接到给定的蓝牙设备。 同时,如果蓝牙设备能够在不需要用户干预的情况下建立连接(例如,只要在范围内),这将非常有用。

为了解决此冲突,蓝牙使用称为绑定的过程,并通过称为配对的过程生成绑定。 配对过程通过触发特定请求(例如用户明确请求添加蓝牙设备)从用户生成密钥,或者触发时自动连接到服务,需要(首次)识别设备出于安全目的。 这两种情况分别称为专用绑定和通用绑定。

匹配通常涉及一定程度的用户交互。 此用户交互确认设备的身份。 当配对成功完成后,两个设备之间就会形成一个密钥,允许两个设备将来相互连接,而无需重复配对过程来确认设备身份。 如果需要,用户可以删除该绑定关系。

2. 实现

在配对过程中,两个设备通过创建称为链接密钥的共享密钥来建立关系。 如果两个设备存储相同的链接密钥,则称它们已配对或绑定。

只想与绑定设备通信的设备可以对另一个设备进行加密身份验证,以确保它与之前配对的设备是同一台设备。 一旦生成链路密钥,设备之间经过验证的异步无连接(ACL)链路就可以被加密,以保护交换的数据免遭窃听。 用户可以从任一设备中删除链接关键字,这将删除设备之间的连接,因此一个设备可以为不再与其配对的设备存储链接关键字。

蓝牙服务通常需要加密或身份验证,因此在允许远程设备连接之前需要进行配对。 某些服务(例如对象推送配置文件)选择不明确要求身份验证或加密,以便配对不会干扰与服务用例相关的用户体验。

3. 配对机制

蓝牙v2.1引入了安全、简单的配对机制,极大地改变了配对机制。 配对机制总结如下:

(1)、传统配对

仅适用于蓝牙v2.0及更早版本。 每台设备都必须输入PIN码(个人识别码),只有双方输入的PIN码相同才能配对成功。 任何 16 字节的 UTF-8 字符串都可以用作 PIN 码。 但是,并非所有设备都可以输入所有可能的 PIN 码。

(2) 安全简单配对 (SSP)

这是蓝牙 v2.1 所要求的,尽管蓝牙 v2.1 设备只能与使用传统配对的 v2.0 或更早版本的设备进行互操作。 安全简单配对使用公钥加密的一种形式,某些类型可以帮助抵御中间人或中间人攻击(HITM 攻击、中间人攻击)。 SSP 具有以下身份验证机制:

SSP 被认为很简单,原因如下: 在大多数情况下,它不需要用户生成密钥。 对于不需要 MITM 保护的用例,可以消除用户交互。 对于数值比较,用户可以通过简单的相等比较来实现MITM保护。 将 OOB 与 NFC 结合使用,可以在设备靠近时进行配对,而无需漫长的发现过程。

中间人攻击(MITM)是一种由来已久的网络入侵方法,至今仍有广阔的发展空间。 SMB 会话劫持、DNS 欺骗等攻击是典型的 MITM 攻击。 简而言之,所谓的MITM攻击是在双方不知情的情况下拦截正常的网络通信数据并进行数据篡改和嗅探。

随着计算机通信网络技术的不断发展,MITM攻击也变得越来越多样化。 最初,攻击者只需将网卡设置为混杂模式,并伪装成代理服务器监听特定流量即可实施攻击。 这是因为很多通信协议都是以明文方式传输的,比如HTTP、FTP、Telnet等。后来随着交换机取代了集线器,简单的嗅探攻击已经无法成功,只能先进行ARP欺骗。 如今,越来越多的服务提供商(网上银行、电子邮件登录)开始采用加密通信。 SSL(安全套接字层)是一种广泛使用的技术,HTTPS、FTPS等都是基于它的。 。

(9) 关键术语和概念 1. 蓝牙 profile 框架

每个特征属性都由一个UUID(Universally Unique IDentifier,通用唯一标识符)唯一标识。 UUID是标准128位格式的ID,用于唯一标识信息。 属性通过ATT(属性配置文件)格式化为特征和服务进行传输。 (服务和功能由UUID唯一标识)

在这里插入图片描述

如图所示:一个蓝牙设备包含多个Profile,一个Profile有多个服务,一个服务有多个特征,一个特征包含一个值和多个描述符。

下图更形象地描述了协议栈:

在这里插入图片描述

参考:

百度百科

了解蓝牙核心技术

蓝牙 BLE 开发指南示例

蓝牙芯片相关知识及原厂信息汇总

了解蓝牙核心技术(蓝牙协议、架构、软硬件笔记)