您还未登录! 登录 | 注册 | 帮助  

您的位置: 首页 > 软件开发专栏 > 网络/安全 > 正文

物联网架构各个层次通讯协议

发表于:2020-03-14 作者:物联网共享经济资讯 来源:今日头条

如上图所示,本文从以下几个维度对物联网常见的几种协议进行阐述。

一、按网络四层协议分类:

NB-IoT,LORA,WIFI,蓝牙,zigbee,4G都是需要硬件支撑的。

MQTT,COAP,HTTP都是应用层协议,需要连接服务器,现在有很多物联网平台,比如阿里云,腾讯云,华为云等等。

所以(MQTT,COAP,HTTP)是居于(NB-IoT,LORA,WIFI,蓝牙,zigbee,4G)的上层协议物理层中。

二、按需要网关来分类:

  • 不需要网关:NB-IoT,2G/4G/5G(芯片可以直接跟运营商:移动,联通,电信等运营商网络通信。)
  • 需要网关:LORA,WIFI,zigbee(不能直接连上电信运营商,需要通过一个网关中转才能连接网络。)

蓝牙设备之间可以通信。

三、NB-IoT,4G对比:

NB-IoT低功耗,传输小数据,传输速度底,芯片模组和套餐便宜。目前NB基站还较少,不过华为在大力推这个通信方式,相信以后会普及。

2G/4G/5G:传输速度快和可以传输大的数据,但是功耗高,价格贵

WIFI和zigbee对比:

  • wifi 功耗高,传输速率大11-54Mbps,功耗高10-50mA,距离短20-50m。一个路由只能加入较少设备。
  • zigbee功耗低,传输数据慢100Kbps,功耗20mA,可以中继,距离远几百到几千米。一个zigbee网关可以加入成千上万的zigbee设备。

物联网架构各个层次通讯协议

四、应用层协议:MQTT和COAP对比

1. MQTT

mqtt 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。

是非常轻量化的通信协议,开销很小(固定头部2字节),是订阅/发布通信方式,可以一对多,多对一。是TCP通信协议。有三种方式,至多一次:

  • 最多一次:保证尽力交付,
  • 至少一次:保证消息至少传送一次。但是消息也可以不止一次传递。
  • 只有一次:保证每个消息只被对方接收一次。

在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)、卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

2. coap

  • COAP协议网络传输层由TCP改为UDP。
  • 基于REST,server的资源地址和互联网一样也有类似url的格式,客户端同样有POST,GET,PUT,DELETE方法来访问server,对HTTP做了简化。
  • COAP是二进制格式的,HTTP是文本格式的,COAP比HTTP更加紧凑。
  • 轻量化,COAP最小长度仅仅4B,一个HTTP的头都几十个B了
  • 支持可靠传输,数据重传,块传输。 确保数据可靠到达。
  • 支持IP多播, 即可以同时向多个设备发送请求。
  • 非长连接通信,适用于低功耗物联网场景。

3. DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务

这是大名鼎鼎的OMG组织提出的协议,其权威性应该能证明该协议的未来应用前景。

适用范围:分布式高可靠性、实时传输设备数据通信。目前DDS已经广泛应用于国防、民航、工业控制等领域。

特点:

  • 以数据为中心
  • 使用无代理的发布/订阅消息模式,点对点、点对多、多对多
  • 提供多大21种QoS服务质量策略

协议主要实现:

  • OpenDDS 是一个开源的 C++ 实现
  • OpenSplice DDS

4. XMPP

XMPP是基于XML的协议,由于其开放性和易用性,在互联网及时通讯应用中运用广泛。相对HTTP,XMPP在通讯的业务流程上是更适合物联网系统的,开发者不用花太多心思去解决设备通讯时的业务通讯流程,相对开发成本会更低。但是HTTP协议中的安全性以及计算资源消耗的硬伤并没有得到本质的解决。在设计时都是根据互联网应用场景设计的,但是个协议的通病就是根本无法适用物联网设备的多样性,无法适用很多物联网设备对低功耗、低成本的需求,难以在极低资源的物联网设备中运用。

5. HTTP协议

HTTP协议是典型的CS通讯模式,由客户端主动发起连接,向服务器请求XML或JSON数据。该协议最早是为了适用web浏览器的上网浏览场景和设计的,目前在PC、手机、pad等终端上都应用广泛。

缺点是:

  • 开销大,消息头大
  • HTTP通信方式问题,HTTP的请求/应答方式的会话都是客户端发起的
  • 安全性差