物联网协议

物联网是在互联网的基础上延伸和扩展的一种网络,其用户端延伸和扩展到了任何物品之间,彼此进行信息交换和通讯,目的是实现全部物品与网络的链接,从而方便识别、管理和控制。无线物联网的特色包括:全面感知、实时准确传递物品信息、利用智能计算技术对海量数据进行分析和处理,以实现智能化控制。因为物联网中的不少设备都是资源受限型的,即只有少许的内存空间和有限的计算能力,因此传统的HTTP协议应用在物联网上就显得过于庞大而不适用。
MQTT协议和CoAP协议都是物联网中比较流行的协议,都对传输量作了很大的精简,传输开销小,以适应物理网的网络环境。网络


 

CoAP(Constrained Application Protocol 受限应用协议)
CoAP是6LowPAN协议栈中的应用层协议。COAP协议网络传输层由TCP改成UDP。
COAP是二进制格式的,HTTP是文本格式的,COAP比HTTP更加紧凑。
轻量化,COAP最小长度仅仅4B,一个HTTP的头都几十个B了。
支持可靠传输,数据重传,块传输。 确保数据可靠到达。
支持IP多播, 便可以同时向多个设备发送请求。
非长链接通讯,适用于低功耗物联网场景。性能


 MQTT(Message Queuing Telemetry Transport 消息队列遥测传输)ui

为硬件性能低下的远程设备以及网络情况糟糕的状况下而设计的发布/订阅型消息协议。轻量、简单、开放和易于实现。
1.使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合
2.使用 TCP/IP 提供网络链接
3.小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以下降网络流量

这些特色使它适用于受限环境。例如,但不只限于此:
· 特别适合于网络代价昂贵,带宽低、不可靠的环境。
· 能在处理器和内存资源有限的嵌入式设备中运行。
· 使用发布/订阅消息模式,提供一对多的消息发布,从而解除应用程序耦合。
· 使用 TCP/IP 提供网络链接。
· 提供Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
加密


从应用场景要求的层面,分析该如何选择使用哪一种协议。设计

  一、服务端主动发送给客户端的数据(反控)的时效性(如经过APP控制硬件动做)
  因MQTT协议是保持链接的,因此及时性相对很好;CoAP协议是无链接响应式通信,所以不能主动推送,要等客户端访问才能够携带回去,及时性相对较差。blog

  二、设备环境对底层协议的要求或限制
  MQTT协议是创建在TCP协议基础之上的,所以他也具有TCP协议的优缺点;CoAP协议是创建在UDP协议基础之上的,所以他也具有UDP协议的优缺点。队列

  三、在NAT网络环境中是否须要调整
  因MQTT协议是保持长链接的,因此在NAT(Network Address Translation,网络地址转换)下没有问题;CoAP协议因是无链接方式,须要使用NAT穿透性手段。
  【备注:NAT NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机原本已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但如今又想和因特网上的主机通讯(并不须要加密)时,可以使用NAT方法。这种方法须要在专用网链接到因特网的路由器上安装NAT软件。装有NAT软件的路由器叫作NAT路由器,它至少有一个有效的外部全球IP地址。这样,全部使用本地地址的主机在和外界通讯时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网链接。】内存

  四、实现多对多的通讯仍是单对单通讯
  因MQTT协议的消息模型是发布/订阅式的,因此是能够多对多通讯的;CoAP协议的消息模型是请求/响应式的,因此是单对单通讯。资源

  五、服务质量等级及自动重连重发
  因MQTT协议有QoS配置,支持服务质量等级和自动重连重发机制;CoAP自己不具有,须要应用层本身来写这个逻辑。  路由

  六、对网络稳定性要求
  MQTT协议利用自动重连重发机制解决网络不稳定问题,断网就会触发重连;CoAP协议只有客户端发送的时候须要保证网络链接正常,其余时段无需链接。

  七、对硬件设备的功耗影响
  MQTT协议因有保持链接,因此功耗略高于CoAP协议。


 

 

 XMPP协议基于XML,对于嵌入式设备来讲,XML解析是超级困难的。

HTTP协议对于嵌入式设备来讲属于重量级,也不是很合适。由于目前物联网中的不少设备都是资源受限型的,因此只有少许的内存空间和有限的计算能力。

相关文章
相关标签/搜索