IoT物联网常见通讯协议

物联网,是指在互联网中设备与设备的通讯,主要的通讯协议有:

HTTP / websocket / XMPP / COAP / MQTT / DDS

  • HTTP
    需要客户端不断的轮询服务器
  • websocket
    HTML5提出的基于TCP之上的可支持全双工通讯的协议标准,设计上基本遵循HTTP的思路。

HTTP+websocket的方式,协议开销代价太大。单片机性能不够。

  • XMPP
    基于XML的协议。

HTTP,websocket, XMPP 无法适用很多物联网设备对低功耗,低成本的需求。

  • COAP
    与HTTP协议一样,采用URL标示需要发送的数据,在协议格式上的设计上也基本是参考HTTP协议。但是做了以下几点优化:
    1. 采用UDP,省去了TCP建立连接的成本与协议栈的开销
    2. 将数据包头部都采用二进制压缩,减少数据量来适应低网络速率场景
    3. 发送和接收数据可以异步进行,提升了设备响应速度
      但是很多物联网设备隐藏在局域网内部,coap设备作为服务器无法被外部设备寻址。
  • MQTT
    解决了coap存在的问题,由IBM开发的即时通讯协议。采用发布/订阅模式。
  1. 提供一对多的消息发布,解除应用程序耦合
  2. 对负载内容屏蔽的消息传输
    3.使用TCP/IP提供网络连接
    4.有三种消息发布服务质量
  3. 小型传输,开销很小(固定长度的头部是2字节)
  4. 使用last Will和Testament特性通知有关各方客户端异常中断的机制
    (可以用在internet上,也可用在局域网中)
  • DDS
    面向实时系统的数据分布服务,已经广泛应用于国防,民航,工业控制的领域
  1. 以数据为中心
  2. 使用无代理的发布/订阅消息模式,点对点,点对多,多对多
  3. 提供Qos服务质量策略
    (主要应用在有线网络下, 只适合局域网内使用)