精华内容
下载资源
问答
  • 如何知道设备的通讯协议
    千次阅读
    2019-06-12 15:26:44

    谈脑壳里的问题

    先前写过一套串口通信协议(一直叫他传输层协议),后来糊里糊涂的把他套在了UDP通信过程上。其实脑袋一团浆糊,根本搞不明白我写的协议到底是传输层还是应用层协议,也搞不明白UDP/TCP代表的所谓传输层到底干了啥,哪些它干了不要应用层再处理?
    看到一篇文章,博主该是写C#的,其内容加剧了我对TCP的认知的乱,我原本还想着,我协议里做的事情(关于接收-提取完整数据的过程),TCP会替我干呢,现在晕了?

    • TCP通信中,数据以"流"的形式传输,每次发送的数据间没有明显的界限,也即:当你收到一部分数据后,你无法判断收到的数据的完整性或从哪里拆开数据?TCP协议作为传输层协议,不仅不负责“TCP沾包”问题的处理,反而就是问题本身!解决问题需要从其上层来制定一些“规则”(应用层协议)?
    • 也知道传输层、应用层的概念是网络模型的,串口通信可能并不适用,但是强迫症,无奈,总想给他们搞个对应关系,哈,也许这个想法的大有人在?

    应用层协议与传输层协议

    终于遇见你-传输层协议和应用层协议的关系!默默感谢博主songly_终于让我从原先“传输层协议-应用层协议-多帧数据传输”的坑中爬了出来(是因为写了个“串口通信传输层协议”掉进去的)!(另一篇不错的文章:TCP/UDP及其上层应用简析)!

    • 传输层主要功能端到端的通信,一段是服务器上的具体服务,另一端是客户端。TCP/UDP皆如此,只不过TCP对传输可靠性、顺序性提供了支持。
    • TCP协议头中的32位序号,是基于TCP字节流之字节号的,序号+确认号,其保证的是一次TCP通信过程

    个人理解,网络通信较串口通信的复杂度主要来自“网状”,而串口通信就是“点对点直连”嘛。网络模型中的传输层,其提供端到端的连接(即-用以主机的进程与进程之间的互通),而串口通信过程中没有服务器、客户端的概念,顾,其没有网络层与传输层?

    • 串口通信包含:物理层(TTL串口、RS232串口、RS485…),数据链路层(起始位、数据位、停止位)、应用层(应用数据的打包、拆包)

    应用层协议简析

    偶然的机会对FTP产生了些不知道对不对的认识,站在一个更高层去组装或拆分数据?我的消息队列+数据区不正是要干这个吗!FTP下数据在客户端与服务端的传递,本人很喜欢博主绘制的这些图,这是用例图吗?

    之所以跑到现有应用层协议的学习上来,是想从这两种应用层协议的实现原理上汲取点思路,好继续完成我的工作“同时适用串口/网络的自定义-应用层协议”。截止现在,我的问题是:怎么是一个合理的应用层协议-应答机制?

    查阅了基于UDP的简单文件传输协议FTP文件传输协议TFTP参考2,没有get到我想要的,还有个疑问:FTP是如何与TCP协同工作的,是存在两层ACK机制吗?
    为了解决上述疑问,继续查阅了 FTP主动模式与被动模式FTP 通信抓包,到这,我的PC上也是有Wireshark工具的,完全可以通过调试手段自己去验证!

    • FTP传输和控制采用独立的连接方式,于当前我的场景不太对应。
    • TPTP中,当发现某个数据包小于512个字节,说明传输终止。这点还是有参考价值的。

    查阅了HTTP请求/响应报文结构 ,但是没有发现我想要的信息,http请求与应答过程碰上较大的数据量,怎么处理呢会?

    • 比如我们登录一些大图片的网址,会发现有时候图片是一块一块加载的。这就是因为设置了http请求的长度,这样就可以分块的加载资源文件。在请求报文中使用Range属性,在响应报文中使用Content-Type属性都可以指定一定字节范围的http请求。

    自定义应用层协议

    看到了两篇文章,先记下来,慢慢学习

    协议中ACK机制的影响,博主认为,及时是基于TCP的应用层协议,也该有自己的ACK机制,可在发送端设置是否需要ACK确认,只对需要的数据进行ACK确认。

    如何自定义一个通信协议,博主写了很多也没写完,但是前边的知识点总结很多(发现有部分描述错误,如TCP序号),值得参考,博主不是要写自定义应用层协议,而是符合七层模型的完整的一套协议…

    实现自定义的应用层协议-1,这篇还没有细看,感觉上不错的样子!

    掉牙的网络七层模型

    开放式系统是在计算机体系结构、计算机系统、计算机软件和通信系统等领域广泛使用的一种术语。开放式(是指非垄断的)系统鼓励开发兼容的厂商产品。顾客可以从开放式系统中获益,这是因为他们可以在/很广范围的、可与系统一起工作的/产品中进行选择,更为重要的是,易于和其它厂商的产品互联。一个开放环境提供标准通信设施和协议,或提供一条使用不同协议的途径。计算机社会给要开放的厂商施加了更多的压力,这是因为他们在销售产品时必须公开承诺这些设备将能和现有的系统一起工作。如果理解不透彻,可以继续向下看看参考2中的OSI设计起因和目的…

    OSI-开放系统互联(Open System Interconnection)。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。这是一种事实上被TCP/IP 4层模型淘汰的协议。在当今世界上没有大规模使用。 七层结构的各层含义可参考1-网络七层协议-百科参考2-OSI-百科

    • 必须Get的概念,协议数据单元PDU,传输层及以下PDU特定的名称(数据段、数据包、数据帧、比特)、最大传输单元MTU,

    OSI七层模型与TCP/IP五层模型,图不错哦!

    QA:
    在参考1中,网络层功能描述中提到:为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。也就是说网络层、传输层、应用层均有“拆包”的概念 ? 那问题来了,都是为了啥?

    另外,包的概念、帧的概念,都是隶属不同层的,不可以随便用?

    掉牙的UDP/TCP比较

    TCP与UDP的通信特点及比较?
    主要分为三点:是否可靠、是否保证顺序、高低损耗。

    网络通信资料

    TCP-IP详解卷一、卷二、卷三基本介绍

    IP头,TCP头,UDP头,MAC帧头定义

    TCP报文段的头部结构详解

    TCP通信原理及封包问题,这是TCP-IP详解卷一的内容,那我是不是该买一本啊!

    TCP的ACK,并不是每包发送都会收到ACK–

    串口通信

    野火讲的串口通信 ,其中将串口通讯协议,分为物理层和协议层。而这篇文章中,其将协议分为底层通信协议和用户层协议。self理解中,底层通信协议指的就是链路层协议,用户层协议就是我们为了打包/拆包应用数据而制定的规则。

    其他疑问

    • 为什么网络通信比串口通信快这么多 ?是应该从硬件设备的分析起始吗 ?

    • 采用多线程实现,数据交互过程,是真的比单线程效率高吗 ?还是有什么特殊成立条件 ?
      先分析一点就是,当前项目用RS422串口通信,是全双工的,理论上,是能同时收发,同时操作接收缓冲与发送缓冲的。

    未整理资料

    基于DPI的应用层协议解析 https://wenku.baidu.com/view/eb71329fc281e53a5802ffa6.html

    CAN总线应用层协议
    https://wenku.baidu.com/view/5a143ec9f705cc17552709fe.html
    主要关注其中CAN-BUS通信的参考模型

    原本的基于对101等规约的一知半解,武断的去理解“业务约定”,将其对应到电表层,完全是胡乱猜测,这有必要研究下,不要让自己跑偏了-
    现在想“业务预定”-类型类别,如果属于应用协议层,而不是应用数据,那么电表也可能被理解为纯数据,在协议上层,电表只不过是确认了一个纯数据格式或对应关系。数据{点号+值}(int,double)而已,再回想下当年解析过的那些476报文(总召的时候,上来的就是一堆连续的(号+值)),终于有些feel啦。

    应用层协议详解:
    https://wenku.baidu.com/view/963cfa61783e0912a2162a1f.html

    关于通信和数据传输

    数据总线-百科总线(Bus)是指计算机组件间规范化的交换数据(data)的方式,即以一种通用的方式为各组件提供数据传送和控制逻辑。规范了一个大的集成应用系统中同构系统、异构系统等方面进行数据共享和交换实现方法,系统间数据交换标准。

    UART,是一种异步收发传输器,是电脑硬件的一部分。它是把并行输入信号转成串行输出信号的芯片,UART通常被集成于其他通讯接口的连结上。具体实物表现为独立的模块化芯片,或集成于微处理器。想搞明白UART是硬件还是软件协议,看看UART芯片资料可以。
    https://blog.csdn.net/zjy900507/article/details/79789671

    更多相关内容
  • 通信局(站)电源、空调及环境集中监控管理系统第 3 部分:前端智能设备协议
  • 而在通信中,通信协议尤其重要,是指双方实体完成通信或服务所必须遵循的规则和约定。那么物联网都有哪些通信协议?你都了解吗?通信对物联网来说十分常用且关键,无论是近距离无线传输技术还是移动通信技术,都影响...
  • WCS和物流设备通讯协议(TCP套接字通讯方式)
  • 机*智&云 - 设备串口通讯协议 (v4.0.8) 已经整理好标签,亲测可用。目前网上还没有这么全的文档哦。想要的尽快下载,时间长了怕会要求删除
  • Brother CNC兄弟设备通讯协议,可以读取CNC设备中加工件数,刀具信息等。。
  • 火灾报警控制器数据输出通信协议,协议为RS-485总线协议,协议规定数据结构,设备类型等,设备控制字等。
  • 从DCS控制系统的级成结构看可以分为三大部分:带I/O部件的控制器、通讯网络和人机接口。控制器I/O部件直接与生产过程相连,接收现场设备送来的信号;人机接口是操作人员与DCS相互交换信息的设备;通讯网络将控制器和...
  • 介绍了研究院常用设备的几种串口通信协议及其在软件设计中的应用。说明了各通信协议的协议内容、通信格式以及根据各通信协议所开发的 VB 程序。对几种串口通信协议在实际应用中遇到的问题进行了分析,并给出了解决...
  •  电力、电信、自动化设备通讯管理  安防、消防智能报警系统  系统架构  应用恒颐多串口通讯协议转换方案,只需通过简单的设计即可实现从RS232/485/422、CAN到TCP/IP通讯协议的转变,实现对工业现场设备的远程...
  • 1 “通信”与“通讯”傻傻分得清 传统意义上的“通讯”主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端。媒体讯息的内容主要是话音、文字、图片和视频图像。其...

    1  “通信”与“通讯”傻傻分得清

    传统意义上的“通讯”主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端。媒体讯息的内容主要是话音、文字、图片和视频图像。其网络的构成主要由电子设备系统和无线电系统构成,传输和处理的信号是模拟的。所以,“通讯”一词应特指采用电报、电话、网络等媒体传输系统实现上述媒体信息传输的过程。“通讯”重在内容形式,因此通讯协议主要集中在ISO七层协议中的应用层。

    “通信”仅指数据通信,即通过计算机网络系统和数据通信系统实现数据的端到端传输。通信的“信”指的是信息(Information),信息的载体是二进制的数据,数据则是可以用来表达传统媒体形式的信息,如声音、图像、动画等。“通信”重在传输手段或使用方式,从这个角度,“通信”的概念包括了信息“传输”。因此通信协议主要集中在ISO七层协议中的物理层、数据链路层、网络层和传输层。

    在物联网应用中,通信技术包括Wi-Fi、RFID、NFC、ZigBee、Bluetooth、LoRa、NB-IoT、GSM、GPRS、3/4/5G网络、Ethernet、RS232、RS485、USB等。

    相关的通信协议(协议栈、技术标准)包括Wi-Fi(IEEE 802.11b)、RFID、NFC、ZigBee、Bluetooth、LoRa、NB-IoT、CDMA/TDMA、TCP/IP、WCDMA、TD-SCDMA、TD-LTE、FDD-LTE、TCP/IP、HTTP等。注:3GPP将5G技术标准制定分为两个阶段,原计划中第一阶段的标准将在2018年底作为R15的一部分公布,将仅针对NR。第二阶段的标准将在2019年底作为R16的一部分,包括整个5G架构(包括核心网络)。

    物联网技术框架体系中所使用到的通讯协议主要有:AMQP、JMS、REST、HTTP/HTTPS、COAP、DDS 、MQTT等。

    2 通讯协议

    2.1  HTTP/HTTPS

    一、HTTP

    HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

    HTTP协议的主要特点可概括如下:

    (1)支持客户/服务器模式。

    (2)简单快速。客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

    (3)灵活。HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

    (4)无连接。无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

    (5)无状态。HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

    二、HTTPS

    HTTPS(Hypertext TransferProtocol over Secure Socket Layer,基于SSL的HTTP协议)使用了HTTP协议,但HTTPS使用不同于HTTP协议的默认端口及一个加密、身份验证层(HTTP与TCP之间)。这个协议的最初研发由网景公司进行,提供了身份验证与加密通信方法,现在它被广泛用于互联网上安全敏感的通信。

    客户端在使用HTTPS方式与Web服务器通信时有以下几个步骤,如图所示。

    (1)客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。

    (2)Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。

    (3)客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。

    (4)客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。

    (5)Web服务器利用自己的私钥解密出会话密钥。

    (6)Web服务器利用会话密钥加密与客户端之间的通信。

    2.2  WebService/REST

    首先说明下,WebService和REST都不是一种协议,他们是基于HTTP/HTTPS的一种技术方式或风格,之所以放在这里,是因为在物联网应用服务对外接口方式常采用WebService和RESTful API。

     

    一、WebService

    WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

    XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。

    (1)XML+XSD

    WebService采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。XML是WebService平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。无关性是比技术优越性更重要的:软件厂商是不会选择一个由竞争对手所发明的技术的。

    XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,64位?这些细节对实现互操作性很重要。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web service时,为了符合WebService标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。

    (2)SOAP

    WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。

    SOAP协议 = HTTP协议 + XML数据格式

    SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。

    (3)WSDL

    好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 WebService也一样,WebService客户端要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。

    WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是WebService客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。

    WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1.注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。

    二、REST

    REST (Representational State Transfer),表征状态转换,是基于HTTP 协议开发的一种通信风格,目前还不是标准。

    适用范围:REST/HTTP 主要为了简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。因此适合在物联网的应用层面,通过REST 开放物联网中资源,实现服务被其他应用所调用。它有以下特点:

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

    (2)客户端和服务器之间的交互在请求之间是无状态的;

    (3)在服务器端,应用程序状态和功能可以分为各种资源,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用URI (Universal Resource Identifier) 得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态;

    (4)使用的是标准的HTTP方法,比如GET、PUT、POST 和DELETE。

    REST是互联网中服务调用API 封装风格,物联网中数据采集到物联网应用系统中,在物联网应用系统中,可以通过开放RESTAPI的方式,把数据服务开放出去,被互联网中其他应用所调用。

    2.3  CoAP 协议

    CoAP (Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。

    适用范围:CoAP 是简化了HTTP 协议的RESTfulAPI,CoAP 是6LowPAN 协议栈中的应用层协议,它适用于在资源受限的通信的IP 网络。它有以下特点:

    (1)报头压缩。CoAP 包含一个紧凑的二进制报头和扩展报头。它只有短短的4B 的基本报头,基本报头后面跟扩展选项。一个典型的请求报头为10~20B。

    (2)方法和URIs。为了实现客户端访问服务器上的资源,CoAP 支持GET、PUT、POST 和DELETE 等方法。CoAP 还支持URIs,这是Web 架构的主要特点。

    (3)传输层使用UDP 协议。CoAP 协议是建立在UDP 协议之上,以减少开销和支持组播功能。它也支持一个简单的停止和等待的可靠性传输机制。

    (4)支持异步通信。HTTP 对M2M(Machine-to-Machine)通信不适用,这是由于事务总是由客户端发起。而CoAP 协议支持异步通信,这对M2M 通信应用来说是常见的休眠/唤醒机制。

    (5)支持资源发现。为了自主的发现和使用资源,它支持内置的资源发现格式,用于发现设备上的资源列表,或者用于设备向服务目录公告自己的资源。它支持RFC5785 中的格式,在CoRE 中用/.well—known/core 的路径表示资源描述。

    (6)支持缓存。CoAP 协议支持资源描述的缓存以优化其性能。

     

    CoAP协议主要实现:

    (1)libcoap(C 语言实现)

    (2)Californium(java 语言实现)

    另外,CoAP 和6LowPan,这分别是应用层协议和网络适配层协议,其目标是解决设备直接连接到IP 网络,也就是IP 技术应用到设备之间、互联网与设备之间的通信需求。因为IPV6 技术带来巨大寻址空间,不光解决了未来巨量设备和资源的标识问题,互联网上应用可以直接访问支持IPV6 的设备,而不需要额外的网关。

    2.4  MQTT 协议(低带宽)

    MQTT (Message Queuing Telemetry Transport ),消息队列遥测传输,由IBM 开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。MQTT 协议采用发布/订阅模式,所有的物联网终端都通过TCP 连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。

    MQTT 在协议设计时就考虑到不同设备的计算性能的差异,所以所有的协议都是采用二进制格式编解码,并且编解码格式都非常易于开发和实现。最小的数据包只有2个字节,对于低功耗低速网络也有很好的适应性。有非常完善的QOS 机制,根据业务场景可以选择最多一次、至少一次、刚好一次三种消息送达模式。运行在TCP 协议之上,同时支持TLS(TCP+SSL)协议,并且由于所有数据通信都经过云端,安全性得到了较好地保障。

    适用范围:在低带宽、不可靠的网络下提供基于云平台的远程设备的数据传输和监控。

    它具有以下特点:

    (1)使用基于代理的发布/订阅消息模式,提供一对多的消息发布;

    (2)使用TCP/IP 提供网络连接;

    (3)小型传输,开销很小(固定长度的头部是2 字节),协议交换最小化,以降低网络流量;

    (4)支持QoS,有三种消息发布服务质量:“至多一次”, “至少一次”, “只有一次”。

    协议主要实现和应用:

    (1)已经有PHP,JAVA,Python,C,C#等多个语言版本的协议框架;

    (2)IBM Bluemix 的一个重要部分是其IoTFoundation 服务,这是一项基于云的MQTT实例;

    (3)移动应用程序也早就开始使用MQTT,如Facebook Messenger 和com 等。

    另外,MQTT 协议一般适用于设备数据采集到端(Device→Server,Device→Gateway),集中星型网络架构(hub-and-spoke),不适用设备与设备之间通信,设备控制能力弱,另外实时性较差,一般都在秒级。

    2.5  DDS 协议(高可靠性、实时)

    DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务,这是大名鼎鼎的OMG 组织提出的协议,其权威性应该能证明该协议的未来应用前景。

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

    它具有以下特点:

    (1)以数据为中心;

    (2)使用无代理的发布/订阅消息模式,点对点、点对多、多对多;

    (3)提供多大21 种QoS服务质量策略。

    协议主要实现:

    (1)OpenDDS 是一个开源的C++ 实现;

    (2)OpenSplice DDS;

    另外,DDS很好地支持设备之间的数据分发和设备控制,设备和云端的数据传输,同时DDS的数据分发的实时效率非常高,能做到秒级内同时分发百万条消息到众多设备。DDS在服务质量(QoS)上提供非常多的保障途径,这也是它适用于国防军事、工业控制这些高可靠性、可安全性应用领域的原因。但这些应用都工作在有线网络下,在无线网络,特别是资源受限的情况下,没有见到过实施案例。

    2.6  AMQP 协议(互操作性)

    AMQP(Advanced Message Queuing Protocol),先进消息队列协议,这是OASIS 组织提出的,该组织曾提出OSLC(Open Source Lifecyle)标准,用于业务系统例如PLM,ERP,MES等进行数据交换。

    适用范围:最早应用于金融系统之间的交易消息传递,在物联网应用中,主要适用于移动手持设备与后台数据中心的通信和分析。

    它有以下特点:

    (1)Wire 级的协议,它描述了在网络上传输的数据的格式,以字节为流;

    (2)面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全;

    协议实现:

    (1)Erlang 中的实现有RabbitMQ

    (2)AMQP 的开源实现,用C 语言编写OpenAMQ

    (3)Apache Qpid

    (4)stormMQ

    2.7  XMPP 协议(即时通信)

    XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF 国际标准组织完成了标准化工作。

    适用范围:即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。

    它有以下特点:

    (1)客户机/服务器通信模式;

    (2)分布式网络;

    (3)简单的客户端,将大多数工作放在服务器端进行;

    (4)标准通用标记语言的子集XML的数据格式。

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

    2.8  JMS (JavaMessage Service)

    JMS (Java Message Service),JAVA 消息服务,这是JAVA 平台中著名的消息队列协议。

    Java 消息服务(Java Message Service)应用程序接口,是一个Java 平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的API,绝大多数MOM 提供商都对JMS 提供支持。

    JMS 是一种与厂商无关的API,用来访问消息收发系统消息,它类似于JDBC(Java DatabaseConnectivity)。这里,JDBC 是可以用来访问许多不同关系数据库的API,而JMS则提供同样与厂商无关的访问方法,以访问消息收发服务。许多厂商都支持JMS,包括IBM的MQSeries、BEA 的Weblogic JMS service 和Progress 的SonicMQ。JMS能够通过消息收发服务(有时称为消息中介程序或路由器)从一个JMS 客户机向另一个JMS 客户机发送消息。消息是JMS 中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,可以将消息分为几种类型,它们分别携带:简单文本(TextMessage)、可序列化的对象(ObjectMessage)、属性集合(MapMessage)、字节流(BytesMessage)、原始值流(StreamMessage),还有无有效负载的消息(Message)。

    2.9 通讯协议比较

     

    展开全文
  • 显控plc通信协议说明

    2020-10-12 14:32:13
    FGs系列PLC采用的是MODBUS通信协议。Modbus 协议是应用于控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它设备之间可以通信。通讯采用应答方式,由主机发起请求,从机执行请求并且应答。...
  • 实验报告 网络设备通信协议实验.pdf实验报告 网络设备通信协议实验.pdf实验报告 网络设备通信协议实验.pdf实验报告 网络设备通信协议实验.pdf实验报告 网络设备通信协议实验.pdf实验报告 网络设备通信...
  • 实验报告 网络设备通信协议实验.docx实验报告 网络设备通信协议实验.docx实验报告 网络设备通信协议实验.docx实验报告 网络设备通信协议实验.docx实验报告 网络设备通信协议实验.docx实验报告 网络设备与...
  • 众所周知通信协议就是一种数据传输的协议规范,从软硬件层面可以分为硬件层通信协议和软件层通信协议。为了更加形象的理解软硬件层面的通信协议,我们将通信比作交通,通信的硬件层协议比作各国的公路标准,各国的...
  • 电信设备-适用于多机可靠通信的通信协议、编解码方法及通讯设备.zip
  • Quantum系列引擎的诊断和串行通信技术包是为了帮助原始设备制造商将Quantum引擎集成到他们的设备中。此技术包包括Quantum引擎支持的诊断代码以及支持的J1587和J1939消息。
  • HTTP协议互联网中最常用的网络协议。当然还有其他协议,如收发电子邮件使用POP3、SMTP和IMAP协议,如区块链使用P2P协议。那么在物联网中设备与服务器通信使用什么协议呢?

    HTTP协议互联网中最常用的网络协议。当然还有其他协议,如收发电子邮件使用POP3、SMTP和IMAP协议,如区块链使用P2P协议。那么在物联网中设备与服务器通信使用什么协议呢?

    物联网通信的特点

    • 设备工作在不可靠、高延迟的网络环境

    比如共享单车,使用NB-IoT通信技术,介绍常用的无线通信技术
    这篇文章中介绍了NB-IoT的NB-IoT带宽180KHz,上行速率16.9Kbps,下行速率26Kbps,可见通信速率非常慢。如果单车被人停在了信号不好的地方,那么这辆车很有可能与服务器失联,这将给共享单车公司造成损失。

    • 物联网系统中,设备数量多,且交互复杂

    比如智能家居系统中,有灯、开关、插座、门锁、摄像头、人体感应器、声光报警器、背景音乐等,这么多设备怎么和服务器通信呢?如果每个设备都直接和服务器直接通信,那么每个设备都要编写和服务器通信的代码,且服务器要针对每个设备进行解析协议,可以想象下双方的耦合度多大啊,这样实现起来太麻烦了。

    所以在智能家居中,都有一个网关设备来作为中间角色,服务器和网关通信,网关和设备通信。这样大大降低了复杂度和耦合度。

    根据以上特点,我们可以首先排除HTTP协议,因为HTTP的包大,且单向同步,肯定不适合。

    发布订阅模式

    我们先来确定设备与服务器采用什么通信模式合适?再来分析基于这种通信模式的网络协议哪种合适。

    物联网系统中最简单的功能就是查看和控制设备了,一些复杂的交互是必不可少的。

    如场景(回家、离家、睡觉、起床等),对于场景的就需要涉及多个设备的联动控制。如在面板上按下回家按键,打开灯、打开窗帘、打开空调等;

    再比如人体感应器,当红外传感器检测到人体靠近时,执行摄像头拍照,且同时执行声光报警器报警,然后将消息推送到用户手机上。

    这些复杂的控制怎么实现呢?
    答:人体靠近人体感应器,人体感应器告诉网关有人靠近,然后网关告诉摄像头和声光报警器,进行拍照和报警。

    看到这个答案很容易想起一种设计模式,那就是发布订阅模式
    在这里插入图片描述
    从图中我们可以看出发布订阅模式的三种角色:发布者(Publisher)、订阅者(Subscriber)和经纪人(Broker)

    发布订阅模式的流程是这样的:

    1. 发布者只需告诉Broker,我要发的消息,topic是AAA;
    2. 订阅者只需告诉Broker,我要订阅topic是AAA的消息;
    3. 于是,当Broker收到发布者发过来消息,并且topic是AAA时,就会把消息推送给订阅了topic是AAA的订阅者。当然也有可能是订阅者自己过来拉取,看具体实现。

    也就是说,发布订阅模式里,发布者和订阅者,不是松耦合,而是完全解耦的,是没有关系的。
    物联网系统中如果使用这种模式,那么设备与设备之间就不会彼此影响工作。这些优势正好适合于物联网的通信特点。

    MQTT

    前面我们确定了设备和服务器通信模式,那么网络协议中哪些协议是用发布订阅通信模式的呢?

    我们比较熟悉的MQTT协议就是采用发布订阅通信模式。
    MQTT协议是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。

    MQTT(消息队列遥测传输)(英语:Message Queuing Telemetry Transport)
    是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。
    MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

    MQTT协议有如下特点:

    • 采用二进制的消息内容编码格式
    • 协议头很紧凑,协议交互简单,保证了网络传输流量小
    • 支持3中Qos(Quantity of Service,服务质量)级别,便于应用根据不同场景灵活选择

    Qos值得是消息传输的可靠程度。
    分如下几个级别:

    • Qos 0:消息只发送一次,消息可能会丢失
    • Qos 1:保证消息送达,但可能会重复接受到消息
    • Qos 2:通过发送方和接收方多次交互,但保证消息不会重复接受

    MQTT协议的这些特点使得它非常适合计算能力有限、网路带宽低、信号不稳定的远程设备,是物联网系统的网络协议标准。

    AMQP

    采用发布订阅模式的协议除了MQTT,还有AMQP协议

    AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。

    AMQP和MQTT都是基于TCP协议,拥有一样的特性。

    但是AMQP协议比较重,不适合计算资源有限、对功耗要求严苛的物联网设备,但是它可以满足后台系统对于可靠性和可扩展性的要求。
    因此,它在物联网平台系统中应用广泛。
    比如在分布式系统中广泛的RabbitMQ消息中间件软件,就是基于AMQP实现的。

    请求响应模式

    虽然物联网系统中通信适合用发布订阅模式,但是在某些场景下并不适合。
    比如小区里面的智能快递柜,当你输入取件码后,服务器会向对应的柜门发送开门指令。在发布订阅模式下,服务器知道了指令发送成功了,但是它无法知道柜门是否真的打开了。
    当然,你可以让服务器订阅一个“柜门开关”的主题消息,但是这样做就非常繁琐了、不够直接。

    在这种场景下,请求响应模式就比较适合了。
    请求响应模式很容易理解,看下图就知道了。
    在这里插入图片描述
    从上图我们可以看出请求响应模式有两个角色:客户端(Client)、服务器(Server)

    HTTP

    最常用的HTTP协议就是采用请求响应模式。
    HTTP/2协议还引入了异步请求响应模式,客户端可以对请求设置不同的优先级,服务器可以根据优先级决定先响应哪个请求。

    但是HTTP协议的报文格式非常重,光报文头就达到了KB大小,不太适合资源有限的嵌入式设备。
    但是,在一些计算资源和网络资源比较充足的物联网设备上,HTTP协议仍然是一个可选项。

    COAP

    那么有没有跟HTTP协议类似,但是设计轻量,适合资源受限的物联网设备的协议呢?

    有的,那就是 CoAP(Constrained Application Protocol)协议。

    • 它同样有GET、POST、PUT、DELETE等方法和响应状态码
    • 同样使用URI而不是Topic来标识资源
    • 采用二进制格式
    • 支持可确认消息和不可确认消息两种QoS级别
      可确认消息与MQTT协议的QoS1类似,不可确认消息与MQTT协议的QoS0类似
    • 它基于的传输层协议是UDP,而不是HTTP、MQTT协议使用的TCP协议
      所以对计算资源要求更低

    因为传感器设备一般只需要上传数据,不用随时接收服务器控制命令,所以COAP协议适合电池供电的传感器设备。

    LwM2M

    LwM2M 协议定义在 CoAP 协议之上,不过它在消息传输的基础上更进一步。因为它基于 IPSO (IP-base Smart Object)对设备模型进行了标准化,提供了一组轻量级设备管理和交互接口协议

    LwM2M 协议目前主要的实现是 C 语言的 Wakaama 和 Java 语言的 Leshan,相对来说应用还比较少。CoAP 协议的应用场景同样适合 LwM2M 协议,如果你希望在 CoAP 协议的基础上更方便地实现设备的管理,可以考虑 LwM2M 协议。

    通信模式共存

    很多时候我们不仅仅只用到发布订阅模式或请求响应模式,两种模式共存才能把物联网系统做好。

    那么有没有这样的网络协议呢?
    有的

    • MQTT 5.0中增加了请求响应模式
    • AMQP 1.0中也增加了请求响应模式
    • COAP最新的协议初稿中也增加了发布订阅模式

    怎么选择网络协议

    • 物联网设备通常需要运行在网络不太可靠的环境中,而且在功耗、体积和计算资源方面也有诸多限制,所以我们在设备的开发中可以考虑使用 MQTT 和 CoAP 协议。
    • 云平台各服务之间需要快速、可靠地进行消息转发,这种情况可以选择 AMQP 协议。
    • 一些应用需要兼容 Web 系统的 RESTful 架构,比如通过 REST 开放物联网中的资源能力,供其他应用调用,这时 HTTP 和 CoAP 协议是合适的选择。

    支持🤟

    🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟

    • 我会持续编写文章,保持每周至少一篇文章。💪
    • 有时候编写一篇文章需要大量时间。💪
    • 您只需一秒即可完成【点赞👍或关注❤️】。💪
    • 您的支持将给与我更大的动力。💪

    🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟🤟

    展开全文
  • USB通讯协议
  • 上位机通信方式和ModbusRTU通信协议 V1.2。适用于触摸屏等设备上下位机直接通讯,云平台与设备通讯
  • KELONGPowersoft交流电源监控管理系统前端智能设备通讯协议通讯协议内部标准,山特UPS串口通讯协议
  • 通讯协议大全

    千次阅读 2022-01-03 21:03:46
    (1)2G/3G/4G通信协议 (2)NB-IoT (3)5G 2、远距离非蜂窝通信 (1)WiFi (2)ZigBee (3)LoRa 3、近距离通信 (1)RFID (2)NFC (3)Bluetooth 4、有线通信 (1)USB (2)串口通信协议 (3)...

    目录

    一、物理层、数据链路层协议

    1、远距离蜂窝通信

    (1)2G/3G/4G通信协议

    (2)NB-IoT

    (3)5G

    2、远距离非蜂窝通信

    (1)WiFi

    (2)ZigBee

    (3)LoRa

    3、近距离通信

    (1)RFID

    (2)NFC

    (3)Bluetooth

    4、有线通信

    (1)USB

    (2)串口通信协议

    (3)以太网

    (4)MBus

    二、网络层、传输协议

    1、IPv 4

    2、IPv6

    3、TCP

    4、6LoWPAN

    三、应用层协议

    2、CoAP协议

    3、REST/HTTP协议

    4、DDS协议

    5、AMQP协议

    6、XMPP协议

    四、部分通信协议比较

    1、NB-IoT协议和LoRa协议比较

    2、蓝牙、WiFi、ZigBee协议比较

    3、MQTT协议和CoAP协议比较


    在通信中,通信协议尤其重要,是双方实体完成通信或服务所必须遵循的规则和约定。

    本文介绍了几个通信协议,它们具有不同的性能、数据速率、覆盖范围、功率和内存,而且每一种协议都有各自的优点和或多或少的缺点。其中一些通信协议只适合小型家用电器,而其他一些通信协议则可以用于大型智慧城市项目。通信协议分为两大类:

    • 一类是接入协议:一般负责子网内设备间的组网及通信

    • 一类是通讯协议:主要是运行在传统互联网TCP/IP协议之上的设备通讯协议,负责设备通过互联网进行数据交换及通信。

    一、物理层、数据链路层协议

    1、远距离蜂窝通信

    (1)2G/3G/4G通信协议,分别指第二、三、四代移动通信系统协议。

    (2)NB-IoT

    窄带物联网(Narrow Band Internet of Things, NB-IoT)成为万物互联网络的一个重要分支。NB-IoT构建于蜂窝网络,只消耗大约180kHz的带宽,可直接部署于GSM网络、UMTS网络或LTE网络,以降低部署成本、实现平滑升级。NB-IoT聚焦于低功耗广覆盖(LPWA)物联网(IoT)市场,是一种可在全球范围内广泛应用的新兴技术。具有覆盖广、连接多、速率快、成本低、功耗低、架构优等特点。

    应用场景:NB-IoT网络带来的场景应用包括智能停车、智能消防、智能水务、智能路灯、共享单车和智能家电等。

    (3)5G

    第五代移动通信技术,是最新一代蜂窝移动通信技术。5G的性能目标是高数据速率、减少延迟、节省能源、降低成本、提高系统容量和大规模设备连接。

    应用场景:AR/VR、车联网、智能制造、智慧能源、无线医疗、无线家庭娱乐、联网无人机、超高清/全景直播、个人AI辅助、智慧城市。

    2、远距离非蜂窝通信

    (1)WiFi

    由于前几年家用WiFi路由器以及智能手机的迅速普及,WiFi协议在智能家居领域也得到了广泛应用。WiFi协议最大的优势是可以直接接入互联网。相对于ZigBee,采用Wifi协议的智能家居方案省去了额外的网关,相对于蓝牙协议,省去了对手机等移动终端的依赖。

    商用WiFi在城市公共交通、商场等公共场所的覆盖,将商用WiFi的场景应用潜力表露无疑。

    (2)ZigBee

    ZigBee是一种低速短距离传输的无线通信协议,是一种高可靠的无线数传网络,主要特色有低速、低耗电、低成本、支持大量网上节点、支持多种网上拓扑、低复杂度、快速、可靠、安全。ZigBee技术是一种新型技术,它最近出现,主要是依靠无线网络进行传输,它能够近距离的进行无线连接,属于无线网络通讯技术。

    ZigBee技术的先天性优势,使得它在物联网行业逐渐成为一个主流技术,在工业、农业、智能 家居等领域得到大规模的应用。

    (3)LoRa

    LoRa™(LongRange,远距离)是一种调制技术,与同类技术相比,提供更远的通信距离。LoRa 网关、烟感、水监测、红外探测、定位、排插等广泛应用物联网产品。作为一种窄带无线技术,LoRa 是使用到达时间差来实现地理定位的。LoRa 定位的应用场景:智慧城市和交通监控、计量和物流、农业定位监控。

    3、近距离通信

    (1)RFID

    射频识别(RFID)是 Radio Frequency Identification 的缩写。其原理为阅读器与标签之间进行非接触式的数据通信,达到识别目标的目的。RFID 的应用非常广泛,典型应用有动物晶片、汽车晶片防盗器、门禁管制、停车场管制、生产线自动化、物料管理。完整的RFID系统由读写器(Reader)、电子标签(Tag)和数据管理系统三部分组成。

    (2)NFC

    NFC的中文全称为近场通信技术。NFC是在非接触式射频识别(RFID)技术的基础上,结合无线互连技术研发而成,它为我们日常生活中越来越普及的各种电子产品提供了一种十分安全快捷的通信方式。NFC中文名称中的“近场”是指临近电磁场的无线电波。

    应用场景:应用在门禁、考勤、访客、会议签到、巡更等领域。NFC具有人机交互、机器间交互等功能。

    (3)Bluetooth

    蓝牙技术是一种无线数据和语音通信开放的全球规范,它是基于低成本的近距离无线连接,为固定和移动设备建立通信环境的一种特殊的近距离无线技术连接。

    蓝牙能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。利用“蓝牙”技术,能够有效地简化移动通信终端设备之间的通信,也能够成功地简化设备与因特网Internet之间的通信,从而数据传输变得更加迅速高效,为无线通信拓宽道路。

    4、有线通信

    (1)USB

    USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。

    (2)串口通信协议

    串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。

    串口通信是指外设和计算机间,通过数据线按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。大多数计算机(不包括笔记本)都包含两个RS-232串口。串口通信也是仪表仪器设备常用的通信协议。

    (3)以太网

    以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。

    (4)MBus

    MBus 远程抄表系统(symphonic mbus),是欧洲标准的2线的二总线, 主要用于消耗测量仪器诸如热表和水表系列。

    二、网络层、传输协议

    1、IPv 4

    互联网通信协议第四版,是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署的版本。IPv4是互联网的核心,也是使用最广泛的网际协议版本

    2、IPv6

    互联网协议第6版,由于IPv4最大的问题在于网络地址资源有限,严重制约了互联网的应用和发展。IPv6的使用,不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍

    3、TCP

    传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。

    4、6LoWPAN

    6LoWPAN是一种基于IPv6的低速无线个域网标准,即IPv6 over IEEE 802.15.4。

    三、应用层协议

    1、MQTT协议

    MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发,属于物联网(Internet of Thing)的一个标准传输协议。

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

    2、CoAP协议

    CoAP(Constrained Application Protocol)是一种在物联网世界的类Web协议,适用于需要通过标准互联网网络进行远程控制或监控的小型低功率传感器,开关,阀门和类似的组件,服务器对不支持的类型可以不响应

    3、REST/HTTP协议

    RESTful是一种基于资源的软件架构风格。所谓资源,就是网络上的一个实体,或者说是网络上的一个具体信息。一张图片、一首歌曲都是一个资源。RESTful API是基于HTTP协议的一种实现。(HTTP是一个应用层的协议,特点是简捷 快速)。

    满足Rest规范的应用程序或设计就是RESTful,根据Rest规范设计的API,就叫做RESTful API

    4、DDS协议

    DDS(Data Distribution Service)分布式实时数据分发服务中间件协议,它是分布式实时网络里的“TCP/IP”,用来解决实时网络中的网络协议互联,其作用相当于“总线上的总线”。

    5、AMQP协议

    AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的实现有RabbitMQ等。

    6、XMPP协议

    XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。

    四、部分通信协议比较

    1、NB-IoT协议和LoRa协议比较

    第一,频段。LoRa工作在1GHz以下的非授权频段,在应用时不需要额外付费,NB-IoT和蜂窝通信使用1GHz以下的频段是2113授权的,是需要收费的。

    第二,电池供电寿命。LoRa模块在处理干扰、网络5261重迭、可伸缩性等方面具有独特的特性,但却不能提供像蜂窝协议一样的服务质量4102。NB-IoT出于对服务质量的考虑,不能提供类似LoRa一样的电池寿命。

    第三,设备成本。对终端节点来说,LoRa协议比NB-IoT更简单,更容易开发并且1653对于微处理器的适用和兼容性更好。同时低成本、技术相对成熟的LoRa模块已经可以在市场上找到了,并且还会有升级版本陆续出来。

    第四,网络覆盖和部署时间表。NB-IoT标准在2016年公布,除回网络部署之外,相应的商业化和产业链的建立还需要更长的时间和努力去探索。LoRa的整个产业链相对已经较为成熟了,产品也处于“蓄势待答发”的状态,同时全球很多国家正在进行或者已经完成了全国性的网络部署。

    2、蓝牙、WiFi、ZigBee协议比较

    目前来说,WiFi的优势是应用广泛,已经普及到千家万户;ZigBee的优势是低功耗和自组网;UWB无载波无线通信技术的优势是传输速率;蓝牙的优势组网简单。然而,这3种技术,也都有各自的不足,没有一种技术能完全满足智能家居的全部要求。

    蓝牙技术的出现使得短距离无线通信成为可能,但其协议较复杂、功耗高、成本高等特点不太适用于要求低成本、低功耗的工业控制和家庭网络。尤其蓝牙最大的障碍在于传输范围受限,一般有效的范围在10米左右,抗干扰能力不强、信息安全问题等问题也是制约其进一步发展和大规模应用的主要因素。

    WiFi也是是一种短距离无线传输技术,可以随时接入无线信号,移动性强,比较适合在办公室及家庭的环境下应用。当然WiFi也存在一个致命缺点。由于WiFi采用的是射频技术,通过空气发送和接收数据,使用无线电波传输数据信号,比较容易受到外界的干扰。

    ZigBee则是国际通行的无线通讯技术,它的每个网络端口可以最多接入6.5万多个端口,适合家居、工业、农业等多个领域使用,而蓝牙和WiFi网端只能接入10个端口,显然不能适应家庭需要。ZigBee还具有低功耗和低成本优势。

    3、MQTT协议和CoAP协议比较

    MQTT是多对多通讯协议用于在不同客户端之间通过中间代理传送消息,解耦生产者与消费者,通过使得客户端发布,让代理决定路由并且拷贝消息。虽然MQTT支持一些持久化,最好还是作为实时数据通讯总线。

    CoAP主要是一个点对点协议,用于在客户端与服务器之间传输状态信息。虽然支持观察资源,CoAP最好适合状态传输模型,不是完全基于事件。

    MQTT客户端建立长连接TCP,这通常表示没有问题,CoAP客户端与服务器都发送与接收UDP数据包,在NAT环境中,隧道或者端口转发可以用于允许CoAP,或者像LWM2M,设备也许会先初始化前端连接。

    MQTT不提供支持消息打类型标记或者其他元数据帮助客户端理解,MQTT消息可用于任何目的,但是所有的客户端必须知道向上的数据格式以允许通讯,CoAP,相反地,提供内置支持内容协商与发现,允许设备相互探测以找到交换数据的方式。

    两种协议各有优缺点,选择合适的取决于自己的应用。

    展开全文
  • 该设计基于Altera公司FPGA,首先设计了一个可以通用于Modbus主设备和从设备的Modbus协议接口,然后基于该协议接口设计了一个通用的Modbus从设备协处理器,该接口也可以方便地用于主协议设备中。
  • 三分钟读懂通信协议

    千次阅读 2021-11-16 09:09:37
    进入通信行业,你会发现,无论在哪个岗位,都绕不开“协议”。 前辈大牛们不断叨叨: “一定要学好协议” “有问题翻翻协议” “实现符不符合协议” ......协议到底是什么?为什么大家都在强调协议的重要性?...
  • ISO14443A通讯协议

    2018-12-27 14:23:04
    1.数据格式 1.1数据格式 数据格式(起始位,数据位,校验位,停止位)可以根据通讯的需要由软件设置,下面是设备支持的数据格式:
  • 串口通信协议

    千次阅读 2022-04-21 15:48:19
    通信协议的基本概念 用于定义通信过程及细节规则的协议称为通信协议,通信系统之间为了完成通信所必须遵循的规则和约定(数据包格式/字段的内容/字段的含义/发送的时间/接收的时间等细节) 所有通信系统之间通信,...
  • modbus通讯协议完整详解,有举例说明,详细版,Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的...
  • 1 “通信”与“通讯”傻傻分得清 传统意义上的“通讯”主要指电话、电报、电传。通讯的“讯”指消息(Message),媒体讯息通过通讯网络从一端传递到另外一端。媒体讯息的内容主要是话音、文字、图片和视频图像。其...
  • 在实际项目中,我们常常会遇到要将具有RS232/485、CAN及MODBUS等专用通信协议的接口设备连接到PROFIBUS总线上,使设备成为PROFIBUS总线上的一个从站。选择一种高效,简单,使用方便,性能保证的方案,是提高工程质量...
  • 3线快速通信协议

    2020-07-29 04:54:13
    许多设备需要通过IO通讯交互数据,怎样才做到速度最快,通讯可靠,所用资源又少呢? 本文主要介绍3线快速通信协议

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 387,148
精华内容 154,859
关键字:

如何知道设备的通讯协议