阿里云物联网平台入门训练营:课时1:IoT设备接入基础(五)
课时1:IoT设备接入基础(五)
比如我支持PUB支持QOS,PUB只是支持比较简单的发布消息,就是说我发的消息的的时候,那我就不管你是什么以QOS为准。
我们还支持了另外一个特性,就是说在业务服务器往设备调用的时候,我们支持了一个RRPC,,RRPC模式类似于HTTP。
就是我在业务服务器,如果我要获取设备的一个特性,我通过类似于HTTP调用我们就会整条链路同步的等到设备结果返回,其实就是response的一种模式。
MQTT5.0的特性
现在的话阿里云还支持MQTT5.0的一些特性,特性的话主要是主要是有5个。
第一个:是报文长度的一个设置。
第二个:是UserProperly,就是用户属性MQTT5.0,这个主要是为了解决,因为比如说像MQTT3.0假如说你要设备上面要传一些特性或者一些东西上来其实没法传上来,你只能在ID里面做扩展,但是ID里面其实扩展起来不适合,就是做起来会比较麻烦,所以说我们这次就是5.0的话,支持就是UserProperly的话,可以以Key的形式来填各种属性数据。
第三点:新增了一个响应模式,比如说响应主题就是让设备端支持RQSRSBS。原来说MQTT都是通过PUB,SUB来做一些。假如说你要通过一个PABE消息要等服务器返回一个消息的话,那其实你要做RQSRSBS,你要请求相应的这种模式只能通过业务上层去保障这个你的PUB,SUB在同一个里面你才能做这种请求响应模式,MQTT5.0支持直接在协议上面原生支持,就是这种请求响应的一种模式是设备响应的请求下那种一种通信方式。
第四点:增加了一些返回码,就是说更多的一些返回码。比如说我们以前在设备界面在MQTT界面失败的时候,其实MQTT它其实返回的错误码是很少的,只有只有那么四五个。然后MQTT5.0针对错误做了细分基本上能包含现阶段所有功能的一些错误信息,相对来说会更好一点。
第五点:主要是用来解决就是TAOPEKE话,因为TAOPEKE比如说像阿里云现在MQTT TAOPEKE都是比较长的,它里面包含了PK ,DN这种东西都整个 TAOPEKE就比较长,然后5.0的话可以把TAOPEKE转成一个一个整形数字,这样在传输的过程当中可以减少MQTT的暴露一个长度,主要就是为了解决网络的流量问题。
好,这个的话就是阿里云MQTT的一个能力的介绍。
设备接入-接入模式
然后说一下,我们怎么来用这些能力,我们总共提供了核心的有六种接入模式。
第一种:一机一密
一机一密就是相当于你需要每个设备都烧录一个平台身份,一个设备身份。安全性会比较高,但是他在烧录的时候,因为你每一个设备都要烧录不同的身份,那在烧录的时候对厂商来说就相当于你要有自己一套程序去管理这个设备。
比如说我不能把同一个设备,同一个身份烧到不同的设备里面,那可能到时候就会有一些设备之间的护体,可能会引起一些安全性的问题。
比如说我两个设备都是摄像头设备,那你如果把同一个身份烧到两个设备里面去,但到时候可能就会有一些隐私方面的问题,所以说对烧录的要求会比较高。但是它一机一密相对来说安全性会会比较高一点,但是对厂商来说烧录的要求会比较高。
第二种:一型一密
一型一密就是所有的设备都烧录同一个PK和同一个PS,那就相当于是我所有的一批同一产品下面的所有设备我都用同一个产品型号,同一个密码,我通过这种方式我在烧录的时候很方便,在认证的时候就相当于通过一些动态注册的方式,就是说我在每次认证的时候我通过我在设备上面我自己生成一个DN,然后在你认证的时候,你通过PK PS对这个通道加密,然后把这个DN注册到平台上面来,然后平台就会把设备对应的DS返回给你。
这样就相当于你最终还是用了平台的身份包括PK DS,就相当于是你在烧录的时候会简化很多,就相当于你在烧录只要烧录PK PS,但是这种方式的话也会对一些安全性带来隐患,因为就相当于所有设备都是烧录的是同一个PK PS,一旦一个设备被破解了那可能就是整一批设备可能会被破解,就是在安全性上面还是有一定的隐患。
适用于那种对安全性要求不高的设备,可能会采用一型一密,因为在烧录的时候比较简单。
第三种:直连:x.509证书
就是相当于设备上面不烧录平台的身份了,就烧录的是一张x.509的证书,这个的话会安全性会比较高。
因为x.509x证书是通过双向认证,双向认证对整个安全来说其实是相当于是我服务端要认证设备端,设备端也要认证我服务端。这个整个TOS对现有的安全保障还是比较高的,现在x.509基本上可能会用在一些支付产品上面,或者对安全性要求非常高的一些东西。但是他的代价也会比较大,就是在建联的时候你传输要传输两份数据,相当于证书也要传输两份证书,然后对整个设备的一些内存,RAM或者对CPU都会有比较高的要求,相对来说X.509只适用于在安全性要求非常高的一些场景。
第四种:直连:ID2
是它其实跟X.509也差不多,但是它唯一的区别就是可以在设备建立连接的时候可以不用传证书,就说不管是设备还是服务端是不用传证书,在网络开销上面会低一点,它的安全性跟X.509基本上是同一级的。
第五种:分直联和网关
直联身份就是直联的时候怎么去预知设备上面的身份,包括机密,x.509,ID2都是可以直连的。
网关它其实本身也是直连的,就说网关也是直接连到我们的平台,但是网关做的更多的事情是局域网的一些子设备上线。
然后子设备的话,我们现在子设备上线是通过消息,就相当于我是我是通过MQTTPAP来支持子设备的上线,子设备上线也支持一机一密和一型一密。
网关它其实是直连的,它其实支持上面说的四种所有所有的身份类网关都是可以支持的。就是但是子设备的话,它是只支持这两种一机一密和一型一密。
因为像ID2,x.509这两种模式都是其实在建通道的时候做了一个认证,然后子设备我们不是建通道,是通道建完以后发pabe消息的时候才能子设备上线,子设备上线都是在pabe消息里面做的,所以说他其实跟通道已经没关系了,所以说子设备只支持这两种模式一机一密和一型一密。