【物联网基础】物联网设备和应用程序涉及协议的概述
物联网设备和应用程序涉及协议的概述。帮助澄清IoT层技术栈和头对头比较。
物联网涵盖了广泛的行业和用例,从单一受限制的设备扩展到大量跨平台部署嵌入式技术和实时连接的云系统。
将它们捆绑在一起是许多传统和新兴的通信协议,允许设备和服务器以新的,更互联的方式相互通信。
同时,数十个联盟和联盟正在形成,希望能够统一断层和有机的物联网景观。
以下频道指南:
提供有助于IoT设备,应用程序和应用程序的热门协议和标准的概述列表
深入了解特定层次或行业特定协议
列出流行协议的头对头比较(即:mqtt vs xmpp)
协议
我们已经将协议分解成以下层,以提供一定程度的组织,而不是试图将所有的IoT协议都适合现有的体系结构模型(如OSI模型)
基础设施(例如:6LowPAN,IPv4 / IPv6,RPL)
识别(例如:EPC,uCode,IPv6,URI)
通讯/交通(例如:Wifi,蓝牙,LPWAN)
发现(例如:Physical Web,mDNS,DNS-SD)
数据协议(例如:MQTT,CoAP,AMQP,Websocket,Node)
设备管理(例如:TR-069,OMA-DM)
语义(例如:JSON-LD,Web Thing模型)
多层框架(例如:Alljoyn,IoTivity,Weave,Homekit)
安全
行业垂直(连接家庭,工业等)
基础设施
IPv6- “IPv6,是用于分组交换网络互联的互联网层协议,并提供跨多个IP网络的端到端数据报传输。
6LoWPAN - “6LoWPAN是IPv6低功耗无线个人区域网络的首字母缩略词,它是适用于IPv6 over IEEE802.15.4链路的适配层,该协议仅在2.4 GHz频率范围内运行,传输速率为250 kbps。
UDP(用户数据报协议) - 基于互联网协议(IP)的客户端/服务器网络应用程序的简单OSI传输层协议。UDP是TCP的主要替代品,并且是1980年引入的最早的网络协议之一。UDP经常用于专门用于实时性能的应用中。
- QUIC(快速UDP Internet连接,发音为quick)支持通过用户数据报协议(UDP)的两个端点之间的一组多路复用连接,旨在提供与TLS / SSL相当的安全保护以及减少的连接和传输延迟,以及带宽估计在每个方向避免拥塞。
- Aeron - 高效可靠的UDP单播,UDP组播和IPC消息传输。
uIP - uIP是一种可用于微型8位和16位微控制器的开源TCP / IP协议栈。它最初由瑞典计算机科学研究所“网络嵌入式系统”组织的Adam Dunkels开发,根据BSD样式许可证许可,并由广泛的开发人员进一步开发。
DTLS(数据报传输层) - “DTLS协议为数据报协议提供通信隐私协议允许客户端/服务器应用程序以防止窃听,篡改或消息伪造的方式进行通信,DTLS协议基于传输层安全(TLS)协议,并提供等效的安全保证。“
ROLL / RPL(低功耗/有损网络的IPv6路由)
NanoIP “NanoIP代表了”纳米互联网协议“,这个概念是为嵌入式和传感器设备提供类似互联网的服务,而无需TCP / IP的开销。NanoIP的设计是以最少的开销,无线网络和本地铭记在心“。
以内容为中心的网络(CCN) - 技术概述. “下一代网络架构解决了内容分发可扩展性,移动性和安全性方面的挑战。CCN直接在网络的数据包层级路由和传递命名的内容,从而在内存中自动进行应用中立的缓存,无论它位于网络中。结果?无论何时何地需要,内容的高效有效的传递。由于架构可以将这些缓存效应作为分组传送的自动副作用,因此可以使用内存,而无需构建昂贵的应用程序级缓存服务。
时间同步网格协议(TSMP)
一种用于自组织网络的通信协议,称为无线设备。TSMP设备保持彼此同步并在时隙中进行通信,与其他TDM(时分复用)系统类似。
发现
mDNS(组播域名系统) - 将主机名解析为不包含本地名称服务器的小型网络内的IP地址。
物理Web - 物理Web可以让您看到一个使用蓝牙低能耗(BLE)信标在您周围环境中的对象广播的URL列表。
HyperCat -一种开放,轻量级的基于JSON的超媒体目录格式,用于显示URI的集合。
UPnP(通用即插即用) - 现在由Open Connectivity Foundation管理的是一组网络协议,允许网络设备无缝地发现对方在网络上的存在,并建立用于数据共享,通信和娱乐的功能网络服务。
数据协议
MQTT(消息队列遥测传输)
“MQTT协议以非常轻便的方式实现发布/订阅消息传递模型,对于需要较小代码占用空间和/或网络带宽非常重要的远程位置的连接很有用。
- 其他资源
MQTT-SN(用于传感器网络的MQTT) - 专为机器到机器和移动应用设计的开放轻量级的发布/订阅协议
-Mosquitto:一个开源MQTT v3.1代理
- IBM MessageSight
CoAP(约束应用协议)
CoAP是一种应用层协议,旨在用于资源受限的互联网设备,如WSN节点,CoAP旨在轻松转换为HTTP,以简化与Web的集成,同时满足诸如组播支持等特殊要求低开销和简单性CoRE组为CoAP提出了以下功能:RESTful协议设计,最小化使用HTTP映射的复杂性,低标头开销和解析复杂性,URI和内容类型支持,支持发现由已知的CoAP服务。简单的资源订阅以及结果推送通知,基于最大时间的简单缓存。“
- 其他资源
- SMCP- 适用于嵌入式环境的基于C的CoAP堆栈。功能包括:支持draft-ietf-core-coap-13,完全异步I / O,支持BSD套接字和UIP。
STOMP - 简单文本定向消息协议XMPP(可扩展消息和存在协议)
“用于实时通信的开放技术,其功能包括即时消息,存在,多方聊天,语音和视频通话,协作,轻量级中间件,内容联合以及XML数据的广义路由等广泛应用。
- 其他资源
- XMPP-IoT
“在XMPP的同一个庄园里,默默地创造了人与人之间的通信互操作性,我们的目标是使通信机对人和机器进行机器互操作。
Mihini / M3DA
“Mihini代理是一个软件组件,作为M2M服务器和在嵌入式网关上运行的应用程序之间的中介者。M3DA是针对二进制M2M数据传输进行优化的协议,它在Mihini项目中可用于手段的设备管理,通过简化设备数据模型的操作和同步,以及通过允许用户应用程序与M2M服务器来回交换数据/命令的手段来进行资产管理,以优化带宽使用的方式“
AMQP(高级消息队列协议)
“面向消息的中间件的开放标准应用层协议AMQP的定义特征是消息导向,排队,路由(包括点对点和发布和订阅),可靠性和安全性。
- 其他资源
DDS(实时系统数据分发服务)
“第一个开放的国际中间件标准直接针对实时和嵌入式系统的发布订阅通信。
JMS(Java消息服务)
- 一种面向Java消息的中间件(MOM)API,用于在两个或多个客户端之间发送消息。
LLAP(轻量级本地自动化协议)
“LLAP是一个简单的短消息,它使用正常文本在智能对象之间发送,它不像TCP / IP,蓝牙,zigbee,6lowpan,WiFi等,它们在低级别实现”如何“移动数据,这意味着LLAP可以运行在任何通信媒介上,LLAP的三个优点是,它将在任何现在,任何未来的任何事情上运行,人类很容易理解。
LWM2M(轻量级M2M)
“轻量级M2M(LWM2M)是开放移动联盟的系统标准,包括DTLS,CoAP,Block,Observe,SenML和资源目录,并将其编入设备 - 服务器界面以及对象结构。
SSI(简单传感器接口)
“设计用于计算机或用户终端与智能传感器之间数据传输的简单通信协议”
反应流(Reactive Stream)
“用于JVM上非阻塞背压的异步流处理标准”。
ONS 2.0REST(表示状态转移) - RESTful HTTP
- 物联网上下文中的附加资源
HTTP / 2- 通过引入头字段压缩并允许在同一连接上进行多个并发交换,可以更有效地利用网络资源和减少对延迟的感知。SOAP(简单对象访问协议)
JSON / XML,WebHooks,Jelastic,MongoDB
Websocket
WebSocket规范 - 作为HTML5计划的一部分开发 - 引入了WebSocket JavaScript接口,该界面定义了一个全双工单一套接字连接,客户端和服务器之间可以发送消息。WebSocket标准简化了双向Web通信和连接管理的复杂性。
JavaScript / Node.jsIoT项目
可以在这里找到一个名为Contit,Riot OS等的IoT软件项目列表。