桥边风满袖
实践出真知,勤奋则必达!

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

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

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

4、相关的通信协议(协议栈、技术标准)包括: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等。

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

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

2、HTTP协议特点
【1】支持客户/服务器模式
【2】简单快速
【3】灵活
【4】无连接
【5】无状态

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

4、客户端云web服务器通信时的步骤如下:
【1】客户使用https的URL访问Web服务器,要求与Web服务器建立SSL连接。
【2】Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。
【3】客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。
【4】客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。
【5】Web服务器利用自己的私钥解密出会话密钥。
【6】Web服务器利用会话密钥加密与客户端之间的通信。

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

5.1、WebSerivce介绍
【1】WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
【2】XML+XSD(XML Schema),SOAP和WSDL就是构成WebService平台的三大技术。
【3】XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就是用XSD来作为其数据类型系统的。
【3】SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。公式是:SOAP协议= HTTP协议+ XML数据格式
【4】WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。

5.2、REST介绍
REST是表征状态转换,是基于HTTP协议开发的一种通信风格,目前还不是标准。REST是互联网中服务调用API封装风格,物联网中数据采集到物联网应用系统中,在物联网应用系统中,可以通过开放REST API的方式,把数据服务开放出去,被互联网中其他应用所调用。

6、CoAP (Constrained Application Protocol)协议简介
CoAP协议简称:受限应用协议,应用于无线传感网中协议。CoAP是简化了HTTP协议的RESTful API,CoAP是6LowPAN协议栈中的应用层协议,适用于:在资源受限的通信的IP网络。
【1】报头压缩
【2】方法和URIs
【3】传输层使用UDP协议
【4】支持异步通信
【5】支持资源发现
【6】支持缓存

7、MQTT (Message Queuing Telemetry Transport )协议简介
【1】简介
消息队列遥测传输,由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。MQTT协议采用发布/订阅模式,所有的物联网终端都通过TCP连接到云端,云端通过主题的方式管理各个设备关注的通讯内容,负责将设备与设备之间消息的转发。适用于:在低带宽、不可靠的网络下提供基于云平台的远程设备的数据传输和监控。

【2】使用特点
《1》使用基于代理的发布/订阅消息模式,提供一对多的消息发布;
《2》使用TCP/IP提供网络连接;
《3》小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量;
《4》支持QoS,有三种消息发布服务质量:“至多一次”,“至少一次”,“只有一次”。

【3】应用场景
《1》已经有PHP,JAVA,Python,C,C#等多个语言版本的协议框架;
《2》IBM Bluemix的一个重要部分是其IoT,Foundation服务,这是一项基于云的MQTT实例;
《3》移动应用程序也早就开始使用MQTT,如Facebook Messenger和com等。

8、DDS(Data Distribution Service for Real-Time Systems)协议简介
【1】简介
面向实时系统的数据分布服务,这是大名鼎鼎的OMG组织提出的协议,其权威性应该能证明该协议的未来应用前景。适用于:分布式高可靠性、实时传输设备数据通信。目前DDS已经广泛应用于国防、民航、工业控制等领域。

【2】使用特点
《1》以数据为中心;
《2》使用无代理的发布/订阅消息模式,点对点、点对多、多对多;
《3》提供多大21种QoS服务质量策略。

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

【2】协议特点
《1》Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流;
《2》面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全;

【3】开源协议包括:
《1》Erlang中的实现有RabbitMQ
《2》AMQP的开源实现,用C语言编写OpenAMQ
《3》Apache Qpid
《3》stormMQ

10、XMPP(Extensible Messaging and Presence Protocol)协议简介
【1】简介
可扩展通讯和表示协议,XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。XMPP目前被IETF国际标准组织完成了标准化工作。适用于:即时通信的应用程序,还能用在网络管理、内容供稿、协同工具、档案共享、游戏、远端系统监控等。

【2】协议特点
《1》客户机/服务器通信模式;
《2》分布式网络;
《3》简单的客户端,将大多数工作放在服务器端进行;
《4》标准通用标记语言的子集XML的数据格式。

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

11、JMS(Java Message Service)协议简介
【1】简介
JAVA消息服务,这是JAVA平台中著名的消息队列协议。Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。JMS是一种与厂商无关的API,用来访问消息收发系统消息,它类似于JDBC(Java Database
Connectivity)。

 

posted on 2018-10-12 11:34  桥边风满袖  阅读(638)  评论(0编辑  收藏  举报