- 密码学教程
- 密码学 - 首页
- 密码学 - 起源
- 密码学 - 历史
- 密码学 - 原理
- 密码学 - 应用
- 密码学 - 优缺点
- 密码学 - 现代
- 密码学 - 传统密码
- 密码学 - 加密需求
- 密码学 - 双重强度加密
- 密码系统
- 密码系统
- 密码系统 - 组成部分
- 密码系统攻击
- 密码系统 - 彩虹表攻击
- 密码系统 - 字典攻击
- 密码系统 - 暴力破解攻击
- 密码系统 - 密码分析技术
- 密码学类型
- 密码系统 - 类型
- 公钥加密
- 现代对称密钥加密
- 密码学散列函数
- 密钥管理
- 密码系统 - 密钥生成
- 密码系统 - 密钥存储
- 密码系统 - 密钥分发
- 密码系统 - 密钥吊销
- 分组密码
- 密码系统 - 流密码
- 密码学 - 分组密码
- 密码学 - Feistel 分组密码
- 分组密码操作模式
- 分组密码操作模式
- 电子密码本 (ECB) 模式
- 密码分组链接 (CBC) 模式
- 密码反馈 (CFB) 模式
- 输出反馈 (OFB) 模式
- 计数器 (CTR) 模式
- 经典密码
- 密码学 - 反向密码
- 密码学 - 凯撒密码
- 密码学 - ROT13 算法
- 密码学 - 换位密码
- 密码学 - 加密换位密码
- 密码学 - 解密换位密码
- 密码学 - 乘法密码
- 密码学 - 仿射密码
- 密码学 - 简单替换密码
- 密码学 - 简单替换密码加密
- 密码学 - 简单替换密码解密
- 密码学 - 维吉尼亚密码
- 密码学 - 维吉尼亚密码实现
- 现代密码
- Base64 编码和解码
- 密码学 - XOR 加密
- 替换技术
- 密码学 - 单字母替换密码
- 密码学 - 单字母替换密码破解
- 密码学 - 多字母替换密码
- 密码学 - Playfair 密码
- 密码学 - 希尔密码
- 多字母替换密码
- 密码学 - 一次性密码本密码
- 一次性密码本密码的实现
- 密码学 - 换位技术
- 密码学 - 栅栏密码
- 密码学 - 列置换密码
- 密码学 - 隐写术
- 对称算法
- 密码学 - 数据加密
- 密码学 - 加密算法
- 密码学 - 数据加密标准
- 密码学 - 三重DES
- 密码学 - 双重DES
- 高级加密标准
- 密码学 - AES 结构
- 密码学 - AES 变换函数
- 密码学 - 字节替换变换
- 密码学 - 行移位变换
- 密码学 - 列混合变换
- 密码学 - 轮密钥加变换
- 密码学 - AES 密钥扩展算法
- 密码学 - Blowfish 算法
- 密码学 - SHA 算法
- 密码学 - RC4 算法
- 密码学 - Camellia 加密算法
- 密码学 - ChaCha20 加密算法
- 密码学 - CAST5 加密算法
- 密码学 - SEED 加密算法
- 密码学 - SM4 加密算法
- IDEA - 国际数据加密算法
- 公钥(非对称)密码学算法
- 密码学 - RSA 算法
- 密码学 - RSA 加密
- 密码学 - RSA 解密
- 密码学 - 创建 RSA 密钥
- 密码学 - RSA 密码破解
- 密码学 - ECDSA 算法
- 密码学 - DSA 算法
- 密码学 - Diffie-Hellman 算法
- 密码学中的数据完整性
- 密码学中的数据完整性
- 消息认证
- 密码学数字签名
- 公钥基础设施
- 散列
- MD5(消息摘要算法 5)
- SHA-1(安全散列算法 1)
- SHA-256(安全散列算法 256 位)
- SHA-512(安全散列算法 512 位)
- SHA-3(安全散列算法 3)
- 散列密码
- Bcrypt 散列模块
- 现代密码学
- 量子密码学
- 后量子密码学
- 密码学协议
- 密码学 - SSL/TLS 协议
- 密码学 - SSH 协议
- 密码学 - IPsec 协议
- 密码学 - PGP 协议
- 图像和文件加密
- 密码学 - 图像
- 密码学 - 文件
- 隐写术 - 图像
- 文件加密和解密
- 密码学 - 文件加密
- 密码学 - 文件解密
- 物联网中的密码学
- 物联网安全挑战、威胁和攻击
- 物联网安全的加密技术
- 物联网设备通信协议
- 常用加密技术
- 自定义构建加密算法(混合加密)
- 云加密
- 量子密码学
- 密码学中的图像隐写术
- DNA 密码学
- 密码学中的一次性密码 (OTP) 算法
- 区别
- 密码学 - MD5 与 SHA1
- 密码学 - RSA 与 DSA
- 密码学 - RSA 与 Diffie-Hellman
- 密码学与密码学
- 密码学 - 密码学与密码分析
- 密码学 - 经典与量子
- 密码学与隐写术
- 密码学与加密
- 密码学与网络安全
- 密码学 - 流密码与分组密码
- 密码学 - AES 与 DES 密码
- 密码学 - 对称与非对称
- 密码学有用资源
- 密码学 - 快速指南
- 密码学 - 讨论
物联网设备通信协议
连接是物联网生态系统的支柱。通信协议使物联网设备能够相互连接并共享数据。
如果您想在您的组织中实施物联网系统,您需要了解主要的物联网协议以及它们的工作原理。本章将讨论顶级物联网通信协议及其特性。
物联网通信协议?
物联网设备通过无线网络和称为物联网通信协议(或简称物联网协议)的一组规则进行连接。物联网设备可以使用物联网协议相互通信。
选择物联网协议的因素
完美的物联网通信协议取决于特定设备的特殊要求和限制。以下因素决定了物联网协议的选择 -
- 地理位置是构成生态系统的两个或多个设备之间的物理距离。
- 功耗要求是指物联网设备持续运行的时间。
- 物理障碍是物联网生态系统内设备之间存在的障碍,例如墙壁、山脉、建筑物等。
物联网设备协议列表
物联网设备的通信协议就像用来相互通信的语言。以下是一些顶级协议 -
1. MQTT(消息队列遥测传输)
MQTT 是一种消息协议或用于机器对机器通信的规则集合,遵循预定义的标准。智能传感器、可穿戴设备和其他物联网 (IoT) 设备通常需要在资源有限的网络(带宽有限)上传输和接收数据。这些物联网设备使用 MQTT 进行数据传输,因为它易于设置并有效地传达物联网数据。MQTT 支持设备与云之间的消息传递。
MQTT 的重要性
由于 MQTT 协议能够提供以下优势,因此已成为物联网数据传输的行业标准 -
- 便携且高效 - MQTT 甚至可以在小型微控制器上实现,因为它在部署到物联网设备时使用的资源很少。例如,两个数据字节可以是 MQTT 控制消息的最小大小。此外,MQTT 消息头被减少以最大化网络带宽。
- 适应性强 - 实现 MQTT 需要少量代码,并且在运行时功耗非常低。协议的内置功能支持大量物联网设备连接。因此,您可以通过实现 MQTT 协议来连接数百万个此类设备。
- 可靠性 - 许多物联网设备连接到不可靠的蜂窝网络,这些网络的吞吐量低且延迟过高。由于 MQTT 中的内置功能,物联网设备可以更快地重新连接到云。为了为物联网用例提供可靠性,它还指定了三种不同的服务质量级别:最多一次 (0)、至少一次 (1) 和仅一次 (2)。
- 安全 - 开发人员可以通过使用 TLS1.3、OAuth、客户管理证书等现代身份验证协议,轻松加密通信并对用户和设备进行身份验证。
MQTT 组件
MQTT 通过以下方式配置客户端和代理来支持发布/订阅模型 -
- 客户端 - 从服务器到微控制器,任何运行 MQTT 库的设备都是 MQTT 客户端。客户端在发送和接收消息时分别扮演发布者和接收者的角色。简单来说,MQTT 客户端设备是任何使用 MQTT 进行基于网络通信的设备。
- 代理 - 后端系统,用于同步不同客户端之间传递的消息是 MQTT 代理。代理的职责包括接收和筛选消息、识别哪些客户端订阅了每个消息以及将消息转发给他们。它还负责其他职责,例如 -
- 验证和批准 MQTT 客户端。
- 将消息传输到其他系统以供分析。
- 处理客户端会话和丢失的消息。
- MQTT 连接。
- 连接 - MQTT 连接用于启动客户端与代理之间的通信。客户端向 MQTT 代理发送 CONNECT 消息以启动连接。代理通过发送 CONNACK 消息来确认已建立连接。MQTT 客户端和代理需要 TCP/IP 堆栈才能进行通信。客户端仅与代理通信,并相互连接。
2. HTTP(超文本传输协议)
HTTP(超文本传输协议)是一种用于互连、协作、超媒体信息系统的应用层协议。自1990年以来,它一直是万维网(互联网)数据通信的基础。HTTP 是一种通用的、无状态的协议,可以通过操作其报头、错误代码和请求方法来扩展以用于其他用途。
简单来说,HTTP 是一种基于 TCP/IP 的通信协议,用于在万维网上发送数据,包括图片文件、HTML 文件和查询结果。默认端口为 TCP 80,但也可以使用其他端口。它提供了一种计算机之间进行通信的通用方法。HTTP 规范概述了客户端请求数据到服务器的格式和传输方法。
HTTP 的特性
三个基本特性使 HTTP 成为一个简单但有效的协议:
- 无连接协议 - 充当 HTTP 客户端的浏览器发出 HTTP 请求,然后等待响应。服务器响应请求并处理请求后,客户端断开连接。因此,只有在当前请求和响应期间,客户端和服务器才知道彼此的存在。当客户端和服务器第一次连接时,会发出更多请求。
- 媒体独立性 - 由于 HTTP 是媒体独立的,因此只要客户端和服务器都能够处理数据的內容,任何类型的数据都可以通过它发送。客户端和服务器都必须使用正确的 MIME 类型来指定内容类型。
- 无状态性 - 如前所述,HTTP 的无状态性直接导致了其无连接的特性。只有在当前请求期间,服务器和客户端才知道彼此的存在。此后,它们都会忘记对方。协议的特性阻止客户端和浏览器在不同网页上的请求之间存储数据。
3. CoAP(受限应用协议)
基于 Web 的应用层 CoAP 协议是为资源受限的设备(如传感器)而创建的。传感器的处理能力和内存都受到限制。超文本传输协议 (HTTP) 与 CoAP 协议类似。CoAP 利用了表述性状态转移 (REST) 架构。
CoAP 如何工作?
CoAP 充当资源受限设备的 HTTP,使传感器和执行器等设备能够通过物联网进行通信。这些传感器和执行器作为系统的一部分,通过传输数据进行管理和贡献。该协议的设计目标是降低功耗和网络开销,从而确保在带宽有限和拥塞严重的情况下具有弹性。在 TCP 协议(如 MQTT)由于高拥塞或连接不良而无法有效共享数据和交互的网络中,CoAP 可以正常工作。
此外,由于 CoAP 具有高效且传统的特性,因此在低信号质量下工作的设备可以持续地通信数据,并且轨道卫星可以成功地维持其远距离通信。此外,CoAP 支持数十亿节点的网络。默认使用的 DTLS 参数在安全性方面类似于 128 位 RSA 密钥。
UDP 是 COAP 使用的基本网络协议。简单来说,COAP 是一种类似于 HTTP 的客户端-服务器物联网协议,其中客户端发出请求,服务器发送响应。HTTP 和 COAP 都使用了相同的技术。
4. AMQP(高级消息队列协议)
高级消息队列协议被称为 AMQP。这个广泛使用的标准主要工作在应用层,主要用于在代理和客户端之间创建无与伦比的通信功能。
客户端负责收集和处理消息,而发布者负责创建消息。在整个过程中,RabbitMQ 等代理的功能是确保消息直接从发布者发送到客户端。
其最重要的组成部分包括排队、路由和面向消息。使用 AMQP 时,可以实现与不同基础设施配置的兼容性。它允许开发人员使用任何提供的客户端库和符合协议的代理。
AMQP 的组件
开发人员需要熟悉 AMQP 模型部署所需的一些特定组件:
- 交换机 - 交换机检索消息并将其小心地排列到相应的队列中。它有四种类型:直接、主题、头和扇出。更具体地说,它是代理的一个重要组成部分。
- 通道 - 通道是指在已存在的连接内建立的 AMQP 对等体之间的多路复用虚拟连接。
- 消息队列 - 它是帮助将通信连接到其源或资源的识别实体。
- 绑定 - 绑定是一组与交换机和队列相关的预定义规则。它负责消息的传递和传输。
- 虚拟主机 - 虚拟主机是一个平台,它为代理提供隔离功能。根据用户及其访问权限,可以同时运行多个虚拟主机。
5. 蓝牙和蓝牙低功耗 (BLE)
蓝牙
蓝牙是一种在有限范围内工作的局域网技术,用于连接小型设备和配件,实现它们之间的数据传输。它通常被称为经典蓝牙,允许连接的设备在 2.4 GHz ISM 无许可频段上进行通信。经典蓝牙版本提供了两种不同的数据速率类型:基本速率 (BR) 和增强数据速率 (EDR)。
蓝牙低功耗 (BLE)
蓝牙低功耗 (BLE) 与经典蓝牙类似。这种短距离无线局域网通信技术已由 IEEE 802.15 标准化。它也使用 2.4 GHz ISM 无许可频谱。BLE 的主要特点是其低功耗,在保持与经典蓝牙相同的通信范围的同时,实现了低功耗。BLE 于 2011 年首次投入商业使用。它常用于家庭自动化、安全、医疗保健和健身等节能产品中。
6. Zigbee
Zigbee 是一种低功耗无线网状网络标准,专为使用电池供电设备的无线控制和监控应用而设计。Zigbee 允许低延迟通信。Zigbee 芯片通常集成在微控制器和无线电中。
Zigbee 扩展了 IEEE 标准 802.15.4,该标准用于低速率无线个人区域网 (WPAN),定义了物理层和介质访问控制。规范的其他四个基本部分是网络层、应用层、Zigbee 设备对象 (ZDO) 和制造商定义的应用对象。ZDO 的职责包括设备发现、设备安全、设备角色跟踪和网络加入请求管理。
Zigbee 网络层自然支持通用网状网络以及星形和树形网络。每个网络必须有一个协调器设备。在星形网络中,协调器需要作为中心节点。Zigbee 路由器可用于通过树形和网状网络扩展网络范围内的通信。
用例
Zigbee 协议就像一种特殊的语言,用于需要节省电能且不需要快速发送大量数据的设备。这意味着设备可以在很长时间内无需更换电池,例如至少两年。
人们在很多不同的场景中使用 Zigbee,例如:
- 使家庭智能化和自动化。
- 建立无线传感器网络。
- 控制工厂中的机器和系统。
- 将传感器安装在恒温器或可穿戴健康设备等物品中。
- 收集患者的医疗信息。
- 使用火灾或入侵警报来保障建筑物的安全。
- 无需靠近麦克风即可更改其设置。
但是,Zigbee 不适合设备移动频繁的场景。因此,对于军事行动等需要快速数据传输和大量移动的场景,它并不是最佳选择。
7. LoRaWAN(远距离广域网)
LoRa 是一种无线调制技术,它使用线性调频扩频技术来操纵无线电波,以便以多符号的方式传递信息。术语“LoRa”也可能指 IoT 应用使用的通信网络,或支持这种调制技术的系统。
LoRa 的主要优势在于其低成本和远距离通信能力。LoRa 常用于智能城市,在这些城市中,廉价的低功耗 IoT 设备(通常是传感器或监控器)分布在广泛的区域中,定期将少量数据包传输到中央管理员。
LoRaWAN 是一种基于 LoRa 无线调制技术的低功耗广域网络协议。它控制端节点设备和网络网关之间的通信,以及将设备无线连接到互联网。由于 LoRaWAN 是一种低成本、双向、远距离通信协议,且功耗极低——设备可以在一块小电池上运行十年,因此其在商业环境和智能城市中的应用正在不断增长。它利用了未经许可的 ISM(工业、科学和医疗)无线电频率进行网络部署。
使用 LoRaWAN 的端设备可以通过两种方式连接到网络:
- 空中激活 (OTAA) - 为了连接到网络,设备需要建立应用程序会话密钥和网络密钥。
- 个性化激活 (ABP) - 使用个性化激活 (ABP),设备的网络通信密钥被硬编码,从而导致连接速度更快,但安全性较低。
8. DDS(数据分发服务)
DDS 使用类似于 MQTT 的发布-订阅模型;主要区别在于没有代理。这意味着每个发布者(如温度传感器)和每个订阅者(如手机)都连接到同一个网络。为了防止出现瓶颈,这个被称为全局数据空间 (GDS) 的网络将每个节点与其他所有节点互连。
通信中间件的标准和产品种类繁多。由于其独特的以数据为中心的特点,DDS非常适合工业物联网。大多数中间件通过在系统和应用程序之间传输数据来发挥作用。数据中心性确保所有通信都具备应用程序理解接收到的数据所需的背景知识。
数据中心性的基本特征是DDS了解其包含的数据并管理其分发。当使用传统的以消息为中心的中间件时,程序员必须开发消息发送代码。在编写代码时,程序员使用数据中心中间件来定义何时以及如何通信数据,以及直接共享数据值。DDS 直接为您提供受控、管理和安全的的数据共享,无需您在应用程序(您的)代码中处理所有这些复杂性。