逸珺 · 2020年10月20日

扒一扒IOT的协议,很多你可能不知道

首发:嵌入式客栈
作者:逸珺

导读

AIOT如火如荼的当下,今天自网络整理分享一下IOT常见/不常见的协议,以及简要介绍。

协议介绍

物联网涵盖了广泛的行业和用例,从单个受约束的设备到大规模的跨平台部署的嵌入式技术和实时连接的云系统,应有尽有。协议纷繁复杂,如用OSI模型进行对应,比较困难。本文按其作用大体分成几大类:

  • 基础架构(例如:6LowPAN,IPv4 / IPv6,RPL)
  • 标识(例如:EPC,uCode,IPv6,URI)
  • 通讯/传输(例如:Wifi,蓝牙,LPWAN)
  • 发现(例如:物理Web,mDNS,DNS-SD)
  • 数据协议(例如:MQTT,CoAP,AMQP,Websocket,Node)
  • 设备管理(例如:TR-069,OMA-DM)
  • 语义(例如:JSON-LD,Web Thing Model)
  • 多层框架(例如:Alljoyn,IoTivity,Weave,Homekit)

基础架构

  • IPv6:IPv6是一种Internet层协议,用于数据包交换的互联网络,并提供跨多个IP网络的端到端数据报传输。
  • 6LoWPAN:是IPv6在低功耗无线个人区域网络上首字母缩写。它是一个通过IEEE802.15.4链接的IPv6适配层。该协议仅在2.4 GHz频率范围内工作,传输速率为250kbps。
  • UDP(User Datagram Protocol) :(用户数据报协议:一个简单的OSI传输层协议,用于基于互联网协议(IP)的客户端/服务器网络应用程序。UDP是TCP的主要替代品,也是现存最古老的网络协议之一,于1980年引入。UDP通常用于专门针对实时性能进行调优的应用程序中。
  • QUIC(Quick UDP Internet Connections,读作Quick)通过用户数据报协议(User Datagram Protocol, UDP)支持两个端点之间的一组多路复用连接,旨在提供相当于TLS/SSL的安全保护,同时减少连接和传输延迟,并在每个方向估计带宽,以避免拥塞。
  • Aeron : 高效可靠的UDP单播,UDP多播,IPC消息传输。
  • uIP 是一个开源的TCP/IP协议栈,可以与8位和16位微控制器一起使用。它最初是由瑞典计算机科学研究所“网络嵌入式系统”小组的Adam Dunkels开发的,并获得了BSD风格许可证,随后由广泛的开发人员开发。
  • LwIP是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈
  • DTLS(Datagram Transport Layer)——DTLS协议为数据报协议提供通信隐私。该协议允许客户端/服务器应用程序以一种旨在防止窃听、篡改或伪造消息的方式进行通信。DTLS协议基于传输层安全(TLS)协议,提供了等价的安全保证。
  • ROLL / RPL(用于低功耗/有损网络的IPv6路由)
  • NanoIP是nano Internet协议的缩写,它是一个概念,用于将类似Internet的网络服务引入嵌入式和传感器设备,而不需要TCP/IP的开销。NanoIP的设计考虑到了最小的开销、无线网络和本地寻址。
  • CCN(Content-Centric Networking): 下一代网络架构可解决内容分发可扩展性,移动性和安全性方面的挑战。
  • 时间同步网格协议(TSMP): 一种用于无线设备的自组织网络的通信协议,称为motes。与其他时分复用系统类似,TSMP设备彼此保持同步,并在时隙中进行通信。

标识

  • mDNS(多播域名系统):在不包含本地域名服务器的小型网络中将主机名解析为IP地址。
  • 物理Web:物理Web使您能够通过蓝牙低能量(BLE)信标看到周围环境中的对象广播的url列表。
  • HyperCat:一种开放的、轻量级的、基于json的超媒体目录格式,用于公开uri集合。
  • UPnP (Universal Plug and Play):现在由开放连接基金会管理的是一套网络协议,它允许网络设备无缝地发现彼此在网络上的存在,并为数据共享、通信和娱乐建立功能网络服务。

数据协议

  • MQTT(Message Queuing Telemetry Transport):MQTT协议以一种非常轻量级的方式支持发布/订阅消息传递模型。它适用于需要少量代码占用和/或网络带宽昂贵的远程位置的连接。
  • MQTT-SN (MQTT For Sensor Networks):一个专门为机器对机器和移动应用程序设计的开放的轻量级发布/订阅协议
  • Mosquitto: 开源MQTT v3.1代理
  • CoAP (Constrained Application Protocol): CoAP是一种应用层协议,旨在用于资源受限的Internet设备(例如WSN节点)。CoAP旨在轻松转换为HTTP以简化与Web的集成,同时还满足诸如多播支持等特殊要求, CoRE小组为CoAP提出了以下功能:RESTful协议设计,最大程度地减少了HTTP映射的复杂性,低报头开销和解析复杂性,URI和内容类型支持,对资源发现的支持 已知的CoAP服务。简单的资源预订,以及由此产生的推送通知,简单的基于最大使用期限的缓存。
  • SMCP —基于C的CoAP堆栈,适用于嵌入式环境。功能包括:支持draft-ietf-core-coap-13,完全异步I/O,同时支持BSD套接字和UIP。
  • STOMP: 面向简单文本的消息协议
  • XMPP(Extensible Messaging and Presence Protocol): 一种用于实时通信的开放技术,可为广泛的应用程序提供支持,包括即时消息,状态,多方聊天,语音和视频通话,协作,轻量级中间件,内容联合以及XML数据的通用路由。
  • XMPP-IoT: 在与XMPP相同的方式下,创建了人与人之间的通信可互操作。目标是使人与人之间的通信以及机与机之间的通信互操作。
  • Mihini/M3DA: Mihini代理是一个软件组件,它充当M2M服务器和运行在嵌入式网关上的应用程序之间的中介。M3DA是一种为传输二进制M2M数据而优化的协议。可用在Mihini项目对设备管理的手段,通过宽松的操纵和同步设备的数据模型,对资产管理的手段,通过允许用户应用程序交换输入数据/命令M2M服务器,来回的方式优化带宽的使用
  • AMQP (Advanced Message Queuing Protocol):面向消息中间件的开放标准应用层协议。AMQP的定义特性是面向消息、排队、路由(包括点对点和发布-订阅)、可靠性和安全性。
  • DDS (Data-Distribution Service for Real-Time Systems): 第一个开放的国际中间件标准直接解决了实时和嵌入式系统的发布-订阅通信问题
  • LLAP (lightweight local automation protocol):LLAP是一个简单的短消息,它是用普通文本在智能对象之间发送的,它不像TCP/IP、蓝牙、zigbee、6lowpan、WiFi等低级别“如何”移动数据。这意味着LLAP可以在任何通信媒介上运行。LLAP的三个优点是,它可以运行在任何东西上,现在可以运行在任何东西上,将来也可以运行在任何东西上,而且人类很容易理解它。
  • LWM2M (Lightweight M2M): 轻量级M2M (LWM2M)是开放移动联盟中的一个系统标准。它包括DTLS、CoAP、Block、Observe、SenML和Resource目录,并将它们与对象结构一起编织成一个设备-服务器接口
  • SSI (Simple Sensor Interface):一种简单的通信协议,用于计算机或用户终端与智能传感器之间的数据传输
  • Reactive Streams:异步流处理和JVM上的非阻塞回压的标准
  • HTTP/2: 通过引入报头字段压缩和允许同一连接上的多个并发交换,可以更有效地使用网络资源和减少延迟感知。
  • SOAP(简单对象访问协议 (Simple Object Access Protocol),JSON/XML, WebHooks, Jelastic, MongoDB
  • WebSocket:作为HTML5的一部分开发——引入了WebSocket JavaScript接口,它定义了一个全双工的单套接字连接,客户端和服务器之间可以通过它发送消息。WebSocket标准简化了很多关于双向web通信和连接管理的复杂性。

通信/传输层

640.png

  • 以太网:是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最普遍的局域网技术,取代了其他局域网技术如令牌环、FDDI和ARCNET。
  • WirelessHART:技术为整个过程测量、控制和资产管理应用程序提供了健壮的无线协议
  • DigiMesh:是一种专用的点对点网络拓扑,用于无线端点连接解决方案。
  • ISA100.11a:是国际自动化学会(ISA)开发的无线网络技术标准。官方描述是“工业自动化的无线系统:过程控制和相关应用”
  • IEEE 802.15.4:是为低速率无线个人区域网络(lr - wpan)指定物理层和媒体访问控制的标准。它由IEEE 802.15工作组维护。它是ZigBee、ISA100.11a、WirelessHART和MiWi规范的基础,每一个规范都通过开发IEEE 802.15.4中没有定义的上层来进一步扩展标准。或者,它可以与6LoWPAN和标准Internet协议一起使用来构建无线嵌入式Internet。
  • ANT:是一种专有的无线传感器网络技术,无线通信协议栈,使半导体收音机操作在2.4 GHz的工业,科学和医学的RF频谱分配(“ISM乐队”)通过建立通信标准规则共处,数据表示,信号、身份验证和错误检测。
  • 蓝牙:工作在2.4 GHz的ISM频段,使用跳频。具有高达3mbps的数据速率和100m的最大范围。每个可以使用蓝牙的应用程序类型都有自己的配置文件。
  • Eddystone :一个协议规范,为接近信标消息定义了一个蓝牙低能量(BLE)消息格式。
  • ZigBee协议:使用802.15.4标准,在2.4 GHz频率范围内运行,速率为250kbps。网络中的最大节点数为1024,最大范围为200米。ZigBee可以使用128位AES加密。
  • EnOcean:是一种能量收集无线技术,其工作频率为欧洲的868 MHz和北美的315 MHz。在建筑物内发射距离可达30米,在室外可达300米。
  • Wi-Fi(发音:/ˈwaɪfaɪ/),在中文里又称作“行动热点”,是Wi-Fi联盟制造商的商标做为产品的品牌认证,是一个创建于IEEE 802.11标准的无线局域网技术。基于两套系统的密切相关,也常有人把Wi-Fi当做IEEE 802.11标准的同义术语。“Wi-Fi”常被写成“WiFi”或“Wifi”,但是它们并没有被Wi-Fi联盟认可。
  • WiMax是基于IEEE 802.16标准的,用于无线城域网。对于固定站点和移动设备来说,这一距离是不同的,前者最高可达50公里,而后者可达5至15公里。WiMAx的工作频率在2.5 GHz到5.8 GHz之间,传输速率为40mbps。
  • LPWAN(Low-Power Wide-Area Network,低功率广域网络) 也称为LPWA (Low-Power Wide-Area) 或 LPN(Low-Power Network,低功率网络),是一种用在物联网(例如以电池为电源的感测器),可以用低比特率进行长距离通讯的无线网络。低电量需求、低比特率与使用时机可以用来区分LPWAN与无线广域网络,无线广域网络被设计来连接企业或用户,可以传输更多资料但也更耗能。LPWAN每个频道的传输速率介于0.3 kbit/s 到 50 kbit/s之间。
  • Weightless:是一种被提议的专用开放无线技术标准,用于在基站和它周围的数千台机器之间交换数据(在未占用的电视传输通道中使用波长无线电传输),具有很高的安全性。
  • NB-IOT(Narrow-Band IoT):窄带物联网(窄带物联网)是由3GPP标准组织标准化的一种技术
  • LTE-MTC (LTE-Machine Type Communication) :基于标准的技术家族支持几个技术类别,如适用于物联网的Cat-1和CatM1。
  • EC-GSM-IoT (Extended Coverage-GSM-IoT):为现有的LPWA(低功耗广域)物联网应用提供新的蜂窝网络功能。EC-GSM-IoT可以通过部署在非常大的GSM网络上的新软件来激活,从而为物联网设备增加更多的覆盖范围。
  • LoRaWAN : 用于区域、国家或全球网络中无线电池操作事物的网络协议。
  • RPMA (随机相位多址):是一种采用直接序列扩频(DSSS)多址技术的通信系统。
  • 蜂窝移动通信技术:GPRS/2G/3G/4G/5G, 特别介绍一下5G。
  • 5G: 第五代移动通信技术(英语:5th generation mobile networks或5th generation wireless systems、5th-Generation,简称5G或5G技术)是最新一代蜂窝移动通信技术,也是继4G(LTE-A、WiMax)、3G(UMTS、LTE)和2G(GSM)系统之后的延伸。5G的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。Release-15中的5G规范的第一阶段是为了适应早期的商业部署。Release-16的第二阶段将于2020年4月完成,作为IMT-2020技术的候选提交给国际电信联盟(ITU) [1]  。ITU IMT-2020规范要求速度高达20 Gbit/s,可以实现宽信道带宽和大容量MIMO。

语义

  • IOTDB:描述物联网的JSON / Linked Data标准
  • SensorML:提供了用于描述传感器和测量过程的标准模型和XML编码
  • Semantic Sensor Net Ontology - W3C语义传感器网络本体-W3C,该本体描述传感器和观测值以及相关概念。它没有描述域的概念,时间,位置等。这些域旨在通过OWL导入而包含在其他本体中
  • Wolfram Language - Connected Devices:每个设备的符号表示,是一套标准的Wolfram语言函数,如DeviceRead、DeviceExecute、DeviceReadBuffer和DeviceReadTimeSeries,它们执行与设备相关的操作。
  • RAML (RESTful API建模语言): 简化了从设计到共享的整个API生命周期的管理。它很简洁——您只编写需要定义的内容——并且是可重用的。
  • SENML(用于传感器标记语言的媒体类型): 一个简单的传感器,例如温度传感器,可以在HTTP或CoAP等协议中使用这种媒体类型来传输传感器的测量值或对其进行配置。
  • LsDL (Lemonbeat智能设备语言): 面向服务设备的基于xml的设备语言

多层框架

  • Alljoyn: 一个开源的软件框架,使得设备和应用程序之间的发现和交流变得容易。
  • IoTivity: 是一个开源项目,由Linux基金会主办,OIC赞助。
  • IEEE P2413: 物联网架构框架标准
  • Thread: 以6LoWPAN为基础,基于开放标准和IPv6技术构建。
  • IPSO Application Framework (PDF):此设计定义了一组REST接口,智能对象可以使用它们来表示其可用资源,与其他智能对象和后端服务进行交互。该框架旨在补充现有的Web配置文件,包括SEP2和oBIX。
  • OMA LightweightM2M v1.0:LightweightM2M的背景是开发一个可快速部署的客户机-服务器规范来提供机器到机器的服务。LightweightM2M是一种设备管理协议,但它的设计应能满足应用的需要。LightweightM2M不局限于设备管理,它应该能够传输服务/应用数据。
  • Weave:物联网设备的通信平台,支持设备设置,电话到设备到云的通信以及来自移动设备和Web的用户交互。
  • Telehash-JSON + UDP + DHT:为应用程序和设备的分散式覆盖网络提供支持的安全有线协议

安全

  • 开放信任协议(OTrP):一种在受信任的执行环境(TEE)中安装,更新和删除应用程序以及管理安全配置的协议。
  • X.509:公共密钥基础结构(PKI)的标准,用于管理数字证书和公共密钥加密。传输层安全协议的关键部分,用于保护Web和电子邮件通信。

架构图

来自ARM的架构图

640-1.png

工业领域图

640-2.png

—_END_—

推荐阅读

推荐阅读
关注数
2891
内容数
284
分享一些在嵌入式应用开发方面的浅见,广交朋友
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息