`
Josh_Persistence
  • 浏览: 1653554 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较

阅读更多

        一、先看下相关国外的专业数据对四大协议的比较:

 

Protocol CoAP XMPP RESTful HTTP MQTT
Transport UDP TCP TCP TCP
Messaging Request/Response Publish/Subscribe Request/Response Request/Response Publish/Subscribe Request/Response
2G, 3G, 4G Suitability (1000s nodes) Excellent Excellent Excellent Excellent
LLN Suitability (1000s nodes) Excellent Fair Fair Fair
Compute Resources 10Ks RAM/Flash 10Ks RAM/Flash 10Ks RAM/Flash 10Ks RAM/Flash
Success Storied Utility Field Area Networks Remote management of consumer white goods Smart Energy Profile 2 (premise energy management/home services) Extending enterprise messaging into IoT application

 

          XML的解析对于嵌入多设备来说是比较痛苦的 ,所以在嵌入设备上做开发的时候,最好不要选择基于XML的协议。

 

         二、四大协议的基本介绍

 

 

物联网协议XMPP
   XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个已经配置好XMPP协议的系统添加功能。

物联网协议MQTT

  

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议

 

 

物联网协议CoAP

CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在最近几年的时间中,专家们预测会有更多的设备相互连接,而这些设备的数量将远超人类的数量。在这种大背景下,物联网和M2M技术应运而生。虽然对人而言,连接入互联网显得方便容易,但是对于那些微型设备而言接入互联网非常困难。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常的小巧,最小的数据包仅为4字节。

 

 

 

物联网协议RESTful HTTP

 

 

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

   

Web 应用程序最重要的 REST 原则是,客户端和服务器之间的交互在请求之间是无状态的。从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能

 

       三、从现有的移动端(Android)消息推送方案中,也可以看出MQTT协议和XMPP协议的优缺点

 

方案1、 使用GCM服务(Google Cloud Messaging) 
简介:Google推出的云消息服务,即第二代的G2DM。 
优点:Google提供的服务、原生、简单,无需实现和部署服务端。 
缺点:Android版本限制(必须大于2.2版本),该服务在国内不够稳定、需要用户绑定Google帐号,受限于Google。 

方案2、 使用XMPP协议(Openfire + Spark + Smack) 
简介:基于XML协议的通讯协议,前身是Jabber,目前已由IETF国际标准化组织完成了标准化工作。 
优点:协议成熟、强大、可扩展性强、目前主要应用于许多聊天系统中,且已有开源的Java版的开发实例androidpn。 
缺点:协议较复杂、冗余(基于XML)、费流量、费电,部署硬件成本高。 

方案3、 使用MQTT协议(更多信息见: http://mqtt.org/  
简介:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。 
优点:协议简洁、小巧、可扩展性强、省流量、省电,目前已经应用到企业领域(参考: http://mqtt.org/software ),且已有C++版的服务端组件rsmb。 
缺点:不够成熟、实现较复杂、服务端组件rsmb不开源,部署硬件成本较高。 

方案4、 使用HTTP轮循方式 
简介:定时向HTTP服务端接口(Web Service API)获取最新消息。 
优点:实现简单、可控性强,部署硬件成本低。 
缺点:实时性差。 

对各个方案的优缺点的研究和对比,推荐使用MQTT协议的方案进行实现,主要原因是: MQTT最快速,也最省流量(固定头长度仅为2字节),且极易扩展,适合二次开发 。

 

 

总结来说:

如果我们对上面的结果进行一次PK,我想最后的结果就是MQTT vs CoAP。HTTP对于嵌入式设备来说太重了,也不灵活,XMPP就更不用说了,与MQTT还有一比的便是CoAP——一个还在草稿阶段的协议。

 

          

 

1
1
分享到:
评论

相关推荐

    MQTT和Coap和XMPP比较.docx

    MQTT和Coap和XMPP比较.docx

    MQTT和Coap和XMPP比较.pdf

    MQTT和Coap和XMPP比较.pdf

    mqtt--协议.ppt

    MQTT 协议与其他物联网协议的比较包括: * CoAP:Constrained Application Protocol,主要应用于受限环境 * XMPP:Extensible Messaging and Presence Protocol,主要应用于即时通讯 * RESTful ...

    物联网常用协议比较.docx

    在物联网中,RESTful HTTP允许设备通过HTTP协议进行数据交换,易于理解和实现,但可能不适合资源受限的设备,因为HTTP基于TCP,相比CoAP等协议,资源消耗更大。 总结来说,选择物联网通信协议时,需要考虑设备的...

    物联网通讯协议

    REST/HTTP(Representational State Transfer over HTTP)是一种基于HTTP协议的通信风格,适用于简化互联网中的系统架构。REST/HTTP的主要特点包括: - **无状态性**:客户端和服务器之间的交互在请求之间是无状态的...

    物联网四大协议.pdf

    本文主要探讨了物联网领域的四大协议——XMPP、MQTT、CoAP和RESTful HTTP,它们各自有着不同的特性和应用场景。 首先,XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的即时通讯协议。它的核心...

    基于多种底层承载协议的物联网应用层协议.pdf

    在物联网通信协议的选择上,CoAP协议主要用于资源受限的物联网设备,设计上参考了HTTP协议,运行于UDP之上,适用于局域网内部通信。MQTT协议基于客户端-服务器的消息发布/订阅传输模式,适用于存储资源和网络资源...

    MQTT(Message Queuing Telemetry Transport)

    物联网通讯是物联网的一个核心内容,目前物联网的通讯协议并没有一个统一的标准,比较常见的有MQTT、CoAP、DDS、XMPP 等,在这其中,MQTT(消息队列遥测传输协议)应该是应用最广泛的标准之一。目前,MQTT 已逐渐...

    物联网中的通信协议类型.docx

    7. REST/HTTP:RESTful web服务是物联网设备与云端交互的常见方式,它利用HTTP协议进行数据传输,简单易用且广泛支持。 8. SOAP(简单对象访问协议):SOAP是一种使用XML信息集的协议,常用于网络服务中的信息交换...

    物联网中的通信协议类型.pdf

    7. REST/HTTP:RESTful web服务是互联网上常见的互操作方式,基于HTTP协议,易于理解和实现,广泛应用于物联网中的数据交换和设备控制。 8. SOAP(Simple Object Access Protocol):SOAP是一种交换结构化信息的...

    物联网实战指南

    本书从探讨流行的HTTP、UPnP、CoAP、MQTT和XMPP等物联网协议开始,并从实战角度介绍了现有的协议、通信模式、构架以及物联网安全的重要性。本书适合那些对物联网感兴趣的开发者和工程师阅读。那些对电子学、树莓派...

    Learning Internet of Things PACKT 2015

    This book starts by exploring the popular HTTP, UPnP, CoAP, MQTT, and XMPP protocols. You will learn how protocols and patterns can put limitations on network topology and how they affect the ...

    awesome-iot-document, Awesome物文档[Deprecated] 网络文档文档.zip

    awesome-iot-document, Awesome物文档[Deprecated] 网络文档文档 已停止维护,请关注: Awesome相关:嵌入式工程师知识 ##IoT 协议协议 CoAP XMPP RESTful HTTP MQTT传输UDPTCPTCPTCP邮件请求/响应发布/订阅请求/...

    信息安全_数据安全_6.A.1.pdf

    物联网(IoT)的无线协议如IoT Radio Protocols和IoT Data Protocols(如HTTP/REST, MQTT, MQTT-SN, CoAP, XMPP和AMQP)在通信中起着关键作用。这些协议各有优缺点,例如HTTP/REST基于TCP/IP,适用于需要高服务质量...

    面向泛在电力物联网的下一代通信协同模型及应用研究.pdf

    首先,本文对几种常见的应用层协议进行了对比分析,包括CoAP、MQTT、DDS、AMQP、XMPP和JMS等。通过对这些协议的帧结构、抽象实体和编码方式进行比较,形成了一个交互架构模型。这有助于理解不同协议之间的异同,为...

    meshblu:Meshblu是跨协议的物联网机器对机器消息传递系统

    支持的协议: HTTP,Socket.io,Websocket,MQTT,CoAP,AMQP和XMPP。 版本2.0 我们已经将Meshblu完全重写为许多小型组件或微服务。 此Meshblu 1.0存储库正在保留以供历史参考。 所有新的Meshblu组件都以meshblu-...

Global site tag (gtag.js) - Google Analytics