物联⽹协议对⽐Http,socket,XMPP,COAP,MQTT,DDS
HTTP:
典型的c/s通讯模式,最早适⽤web浏览器。不适合物联⽹场景,主要三⼤弊端。
1。必须由设备主动向服务器发送数据,难以主动向设备推送数据。
不适合数据采集,实时性,频繁操控场景
2。安全性不⾼。web不安全,HTTP是明⽂协议,
不适合⾼安全性的物联⽹⾏业
3。资源消耗。
开源mqtt服务器*tcp三次握⼿,四次回收消耗cpu
*HTTP消息头⼤量的数据
*基于xml和json的数据格式解析。
Socket
基于HTTP协议架构物联⽹系统:主要解决数据推送实时性。
核⼼问题:⽐如让单⽚机实现HTTP+WebSocket的⽅式,协议开发代价太⼤
XMPP
互联⽹常⽤的通讯协议。基于xml的协议,由于开放性和易⽤性⼴泛使⽤
安全性和资源消耗硬伤⽆法解决。⽐如tcl洗⾐机的⿊客破解
COAP
设计⽬标:在低功耗低速率设备实现物联⽹通信。COAP和HTTP协议⼀样,采⽤URL标识需要发送的数据,在协议格式上基本参考HTTP 协议。COAP协议像⼀个针对物联⽹场景的http移植品。保留http的影⼦,拥有web背景很容易上⼿
优点:
1。采⽤UDP⽽不是TCP,省去了tcp建⽴连接的成本和协议栈的开销
2。将数据包头都采⽤⼆进制压缩,减少数据量以适应低⽹络速率场景。
3。发送和接受数据可以异步执⾏,提升设备响应速度
缺点:
*很多物联⽹设备隐藏在局域⽹内部。coap设备作为服务器⽆法被外部设备寻址,ipv6没有普及之前,coap只能适⽤局域⽹内部⽐如wifi通信,限制了其发展
MQTT
MQTT协议由IBM开发的及时通讯协议,很好解决了coap寻址问题。MQTT协议才⽤发布订阅模式,所有物联⽹终端采⽤tcp连接到云端,云端通过主题的⽅式管理各个设备的通讯内容,负责设备之间数据转发
优点:
1。性能⾼效:⼩型传输,开销很⼩(固定长度的头部式2字节),协议交换最⼩化,降低⽹路流量。使⽤lastwill和Testament特性通知有关各⽅客户端异常终端机制
2。安全性好:运⾏再tcp协议上,同时⽀持TLS(TCP+SSL)协议
DDS
DDS(Data Distribution Service for Real-Time Systems),⾯向实时系统的数据分布服务,OMG组织提出的协议,其权威性证明改协议的应⽤前景
特点:
*以数据为中⼼
*使⽤⽆代理的发布/订阅模式,点对点,点对多,多对多
* 提供21种Qos服务质量策略
协议主要实现:
*OpenDDS是⼀个开源的C++实现
*OpenSplice DDS
DDS很好的⽀持设备分发和设备控制,设备和云端数据传输,同时DDS的数据分发的实时效率⾮常⾼,能做到秒级内同时分发百万条消息到众多设备。DDS在服务质量(Qos)赏提供很多保障途径,
这也是它适⽤于国防军事,⼯业控制等⾼可靠性,安全性领域的原因。⽬前在有限⽹络,在⽆线⽹络,特别资源受限的情况下没有实际案例