物联网基础之了解CCP协议,COAP协议,MTQQ协议等

      首先介绍下背景。最近开始研究物联网的套件。公司选中了阿里物联网套件,所以博主就开始投入到漫长的开发文档中。由于博主并非嵌入式开发者,所以一些名字没有听过,这对文档的阅读造成了不少的困扰,所以在此记录一下。

一、CCP协议

CCP通信协议:
      主从式,主设备通过CAN总线与多台从设备相连,主设备室测量标定系统 ,从设备是需要标定的ECU,主设备首先与其中一个从设备建立逻辑连接,主、从设备之间的所有的数据传递均由主机控制,从设备执行主设备命令后返回包含命令响应值或错误代码等信息的报文,同时从设备可以根据主设备通过控制命令设置的列表信息来定时地向主设备传送变量信息,数据的传递是由主设备初始化并且从设备来执行的,并且是由固定的循环采样频率或者事件触发的。

      主设备通过USB-CAN接口与从设备连接,符合CAN2.0协议。

      通信过程中,所有报文均为8个字节,包括命令、数据、数据长度、地址等信息

该通信协议参照CCP协议,可以与INCA等标定软件接口。

CAN通信:采用两个报文数据对象 CRO和DTO (命令接收对象)(命令发送对象)每个对象根据其数据流向,都有一个唯一的ID标示符进行标示,ID标识符可以由用户自己设定。

命令接收对象(CRO):
用于传递指令代码和内部功能码或主、从设备之间交换的存储区数据

具体请参考博客:http://blog.csdn.net/owen_09/article/details/38336271

二、CoAP协议

       CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。

1 CoAP协议综述
和其他TCP IP协议簇中的协议一样,CoAP协议总是以“头”的形式出现在负载之前,而负载和CoAP头之间使用单字节0xFF分离。学习CoAP协议最好的方法便是结合RFC文档,详细分析CoAP协议报文格式的每一部分,便是CoAP协议报文结构示意图。

图1.1 CoAP协议报文结构示意图
这里写图片描述

2 CoAP协议报文各部分

【Ver】 版本编号,指示CoAP协议的版本号。类似于HTTP 1.0 HTTP 1.1。版本编号占2位,取值为01B。
【T】报文类型,CoAP协议定了4种不同形式的报文,CON报文,NON报文,ACK报文和RST报文。
【TKL】CoAP标识符长度。CoAP协议中具有两种功能相似的标识符,一种为Message ID(报文编号),一种为Token(标识符)。其中每个报文均包含消息编号,但是标识符对于报文来说是非必须的。
【Code】功能码/响应码。Code在CoAP请求报文和响应报文中具有不同的表现形式,Code占一个字节,它被分成了两部分,前3位一部分,后5位一部分,为了方便描述它被写成了c.dd结构。其中0.XX表示CoAP请求的某种方法,而2.XX、4.XX或5.XX则表示CoAP响应的某种具体表现。
【Message ID】报文编号
【Token】标识符具体内容,通过TKL指定Token长度。
【Option】报文选项,通过报文选项可设定CoAP主机,CoAP URI,CoAP请求参数和负载媒体类型等等。
【1111 1111B】CoAP报文和具体负载之间的分隔符。

http://blog.csdn.net/xukai871105/article/details/45167069

三、MQTT协议

      MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

(1)MQTT协议特点

      MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

      MQTT协议当前版本为,2014年发布的MQTT v3.1.1。除标准版外,还有一个简化版MQTT-SN,该协议主要针对嵌入式设备,这些设备一般工作于百TCP/IP网络,如:ZigBee。

      MQTT协议运行在TCP/IP或其他网络协议,提供有序、无损、双向连接。其特点包括:

1、使用的发布/订阅消息模式,它提供了一对多消息分发,以实现与应用程序的解耦。
2、对负载内容屏蔽的消息传输机制。
3、对传输消息有三种服务质量(QoS):
      1、最多一次,这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。即:<=1
      2、至多一次,这一级别会确保消息到达,但消息可能会重复。即:>=1
      3、只有一次,确保消息只有一次到达。即:=1。在一些要求比较严格的计费系统中,可以使用此级别
4、数据传输和协议交换的最小化(协议头部只有2字节),以减少网络流量
5、通知机制,异常中断时通知传输双方

具体请参考博文:http://blog.csdn.net/jiesa/article/details/50635222

四、Pub/Sub模式

      发布/ 订阅(Pub/Sub)是,它有两个参与者:发布者和订阅者。发布者向某个信道(channel)发布一条消息,订阅者绑定这个信道,当有消息发布至信道时就会接收到一个通知。最重要的一点是,发布者和订阅者是完全解耦的,彼此并不知晓对方的存在一种消息模式。

两者仅仅共享一个信道名称。发布者和订阅者的解耦可以让你的应用易于扩展,而不必引入额外的交叉依赖和耦合,从而提高了应用的可维护性,添加额外功能也非常容易。那么,应当如何在应用中使用发布/ 订阅(Pub/Sub)模式呢?你只需记录回调和事件名称的对应关系及调用它们的方法。看一下这个例子,这段代码中实现了PubSub 对象,用它可以添加并触发事件监听:

具体请参考博文:http://www.jianshu.com/p/ed1396333abf

五、Topic主题

      这个主要是作为发布消息的目的地。在物联网套件中,相当于一个中转站。发布的消息在这里面。订阅者可以从这里获取发布的消息。

具体请参考:https://helpcdn.aliyun.com/document_detail/27478.html

六、TLS协议

      安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体的应用无关,所以,一般把TLS协议归为传输层安全协议。

1、记录协议

      TLS记录协议位于TLS握手协议的下面,在可靠的传输协议(如TCP/IP)上面。TLS记录协议的一条记录包含长度字段、描述字段和内容字段。TLS记录协议处理数据的加密,即记录协议得到要发送的消息之后,将数据分成易于处理的数据分组,进行数据压缩处理(可选),计算数据分组的消息认证码MAC,加密数据然后发送数据;接收到的消息首先被解密,然后校验MAC值,解压缩,重组,最后传递给协议的高层客户。记录协议有四种类型的客户:握手协议、警告协议、改变密码格式协议和应用数据协议。通常使用一个对称算法,算法的密钥由握手协议提供的值生成。

2、握手协议

      TLS握手协议处理对等用户的认证,在这一层使用了公共密钥和证书,并协商算法和加密实际数据传输的密钥,该过程在TLS记录协议之上进行。TLS握手协议是TLS协议中最复杂的部分,它定义了10种消息,客户端和服务器利用这10种消息相互认证,协商哈希函数和加密算法并相互提供产生加密密钥的机密数据。TLS记录协议会在加密算法中用到这些加密密钥,从而提供数据保密性和一致性保护。

具体请参考百度百科:https://baike.baidu.com/item/TLS/2979545?fr=aladdin

七、OTA升级

      OTA英文全称是Over-the-Air Technology,即空间下载技术的意思。

      OTA升级是Android系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过网络[例如WIFI、3G]自动下载OTA升级包、自动升级,但是也支持通过下载OTA升级包到SD卡升级
OTA的升级包非常的小,一般几M到十几M,如果你用网络升级,非常的方便,基本是在系统上点击几下就完成了升级,并且最重要的是,OTA升级无需备份数据,短短几分钟就搞定所有升级工作,所有数据都会完好无损的保留下来。

八、RPC(远程过程调用协议)

      RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

      RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

具体参考:
https://baike.baidu.com/item/%E8%BF%9C%E7%A8%8B%E8%BF%87%E7%A8%8B%E8%B0%83%E7%94%A8%E5%8D%8F%E8%AE%AE/6893245?fr=aladdin&fromid=609861&fromtitle=RPC
https://yq.aliyun.com/articles/8

九、阿里中的RRPC

      从字面上理解,可以实现由服务端请求设备端并能够设备端响应的功能,基于开源协议MQTT封装了同步的通信模式,服务端下发指令给设备可以同步得到设备端的响应。

      以上是我在阅读文档时候碰到的一些专有名词。做物联网的同学可以参考下,也是了解了解。当然,这些都是百度得来的,具体的请参考以上的博文链接。

end

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值