物联网基础

总体结构前端

物联网大致上有 3 个构成要素,如图 2.1 所示。一个是设备,另外一个是网关,再来就是服务器。数据库

图 2.1 物联网的总体结构浏览器

2.1.2 网关安全

如图 2.1 左下所示,物联网使用的设备中,有 3 台设备不能直接链接到互联网。网关就负责把这些设备转发到互联网。服务器

网关指的是能链接多台设备,并具有直接链接到互联网的功能的机器和软件(图 2.2)。现在,市面上有不少种网关。在多数状况下,网关凭借 Linux 操做系统来运行。网络

图 2.2 选择网关的标准session

选择网关时有几项重要的标准,咱们来一块儿看一下。数据结构

◉ 接口架构

第一重要的是用于链接网关和设备的接口。网关的接口决定了能链接的设备,所以重点在于选择一个适配设备的接口。并发

有线链接方式包括串行通讯和 USB 链接。串行通讯中常常用的是一种叫做 D-SUB 9 针(pin)的链接器,而 USB 链接中用到的 USB 链接器则种类繁多。

无线链接中用的接口是蓝牙和 Wi-Fi(IEEE 802.11)。此外,还有采用 920 MHz 频段的 Zigbee 标准,以及各制造商们的专属协议。第 3 章会详细讲解这些规格各自的特征,重点在于根据设备对应的标准来选择接口。

◉ 网络接口

咱们用以太网或是 Wi-Fi、3G/LTE 来链接外部网络。网络接口会影响到网关的设置场所。以太网采用有线链接,通讯环境稳定。然而正由于采用的是有线链接,因此必须把 LAN 电缆布线到网关的设置场所。所以,在设置场所方面就会在某种程度上受到限制。

对 3G/LTE 链接而言,设置场所就比较自由了,但通讯的质量会受信号强弱影响,因此通讯不若有线链接稳定。所以,有时很难在信号不良的大楼和工厂等封闭环境中设置。不过,3G/LTE 链接有个好处,即只使用网关就能完成和外部的通讯,所以操做起来很简单。此外,想使用 3G/LTE 时,须要和电信运营商签定协议并获取 SIM 卡,这点就跟使用手机同样。

网关的做用

就如咱们前面说的那样,网关是一台用于把不能直接链接到互联网的设备转发链接到互联网的设备。再往细了说,网关是由 3 种功能构成的(图 2.4)。

图 2.4 网关的功能

2.1.3 服务器的结构

在功能方面,物联网服务大致上可分为 3 个部分,本书分别称它们为前端部分、处理部分,以及数据库部分(图 2.3)。

图 2.3 物联网服务的 3 个功能

首先,前端部分包括数据接收服务器和数据发送服务器。数据接收服务器接收设备和网关发来的数据,转交给后续的处理部分。数据发送服务器则恰好相反,它负责把从处理服务器接收到的内容发送给设备。

一般状况下,Web 服务的前端部分只接受 HTTP 协议。而物联网服务的前端部分则须要根据链接设备的不一样来匹配 HTTP 之外的协议。使用者须要考虑到协议的实时性和通讯的轻量化,以及可否以服务器为起点发送数据。咱们会在 2.2 节从新讲解这些协议。

处理部分负责处理从前端部分接收到的数据。这里的“处理”指的是分解数据、存储数据、分析数据、生成发给设备的通知内容,等等。数据处理包括批处理和流处理等,批处理即把数据存入数据库以后一并进行处理,而流处理是逐次处理从前端部分收到的数据。使用者须要根据处理内容和数据特性来灵活使用这些“处理”。

最后是数据库。这里的数据库不仅会用到关系数据库,还会用到 NoSQL 数据库。固然,使用者须要根据想存储的数据和想使用的方法来选择数据库。

2.3.1 HTTP 协议

HTTP 协议提供的是最大众化且最简易的方法。使用通常的 Web 框架就能够制做数据接收服务器。设备用 HTTP 的 GET 方法和 POST 方法访问服务器,把数据存入请求参数和 BODY 并发送(图 2.6)。

图 2.6 经过 HTTP 协议发送和接收数据

HTTP 协议是 Web 的标准协议,这一点自不用说。所以 HTTP 协议和 Web 的兼容性很是强。此外,由于 HTTP 协议有很是多的技术诀窍,因此咱们必须在制做实际系统时审视服务器的结构,应用程序的架构以及安全性等。关于这点,有不少事例值得参考。另外,HTTP 协议还准备了 OSS 的框架,方便人们使用。

2.3.3 WebSocket

WebSocket 是一种通讯协议,用于在互联网上实现套接字通讯。它实现了 Web 浏览器和 Web 服务器间的数据双向连续传输。

就 HTTP 协议而言,每次发送数据都必须生成发送数据用的通讯路径及链接。此外,通常状况下,客户端没有发出申请就不能进行通讯。

相对而言,WebSocket 就不一样了。只要一开始根据客户端发出的链接申请确立了链接,就能持续用同一个链接传输数据。另外,只要确立了链接,就算客户端没有发出申请,服务器也能给客户端发送数据(图 2.7)。

图 2.7 经过 WebSocket 协议传输数据

这样一来,在发送语音数据等连续的数据,以及发生与服务器的相互交换时,就能使用 WebSocket 了。WebSocket 自身只提供服务器与客户端的数据交换,所以须要使用者另外决定在应用层上使用的协议。

2.3.4 MQTT

MQTT(MQ Telemetry Transport,消息队列遥测传输)是近年来出现的一种新型协议,物联网领域会将其做为标准协议。MQTT 本来是 IBM 公司开发的协议,如今则开源了,被人们不断开发着。

MQTT 是一种能实现一对多通讯(人们称之为发布或订阅型)的协议。它由 3 种功能构成,分别是中介(broker)、发布者(publisher)和订阅者(subscriber)(图 2.8)。

图 2.8 经过 MQTT 传输消息

◉ QoS

QoS 是 Quality of Service(服务质量)的简称。这个词在网络领域表示的是通讯线路的品质保证。MQTT 里存在 3 个等级的 QoS。“发布者和中介之间”以及“中介和订阅者之间”都分别定义了不一样的 QoS 等级,以异步的方式运行。此外,当“中介与订阅者之间”指定的 QoS 小于“发布者和中介之间”交换的 QoS 时,“中介与订阅者之间”的 QoS 会被降级到指定的 QoS。QoS 0 指的是最多发送一次消息(at most once)(图 2.11),发送要遵循 TCP/IP 通讯的“尽力服务”。消息分两种状况,即到达了一次中介处,或没有到达中介处。

图 2.11 QoS 0(最多只能发送一次)

接下来的 QoS 1 是至少发送一次消息(at least once)(图 2.12)。

图 2.12 QoS 1(至少发送一次消息)

中介一接收到消息就会向发布者发送一个叫做“PUBACK 消息”的响应,除此以外还会根据订阅者指定的 QoS 发送消息。当发生故障,或通过必定时间后仍没能确认 PUBACK 消息时,发布者会从新发送消息。若是中介接收了发布者发来的消息却没有返回 PUBACK,那么中介会重复收到消息。

最后是 QoS 2,它指的是准确发送一次消息(exactly once)。把它跟 QoS 1 合在一块儿使用,就能避免接收到重复的消息(图 2.13)。用 QoS 2 发送的消息里面含有消息 ID。中介收到消息后会将消息保存,而后给发布者发送 PUBREC 消息。发布者再给中介发送 PUBREL 消息,而后中介会给发布者发送 PUBCOMP 消息。接下来中介才会依据订阅者指定的 QoS,向订阅者传递接收到的消息。

图 2.13 QoS 2(只发送一次消息)

此外,就 QoS 2 而言,有时使用的中介会影响消息的传递时间。

人们一般使用的是 QoS 0,只有要确保信息发送成功时才使用 QoS 1 和 QoS 2,这样一来能够减小网络的负担。后文将会讲到 Clean session,其中 QoS 的设定也是很是重要的。

◉ Retain

订阅者只能接收在订阅以后发布的消息,但若是发布者事先发布了带有 Retain 标志的消息,那么订阅者就能在订阅后立刻收到消息。

当发布者发布了带有 Retain 标志的消息时,中介会把消息传递给订阅了主题的订阅者,同时保存带有 Retain 标志的最新的消息。此时,若别的订阅者订阅了主题,就能立刻收到带有 Retain 标志的新消息(图 2.14)。

图 2.14 Retain

◉ Will

Will 有“遗言”的意思。因为中介的 I/O 错误或网络故障等状况,发布者可能会忽然从中介断开,Will 就是专门针对于这种状况的一个机构,它用于定义中介向订阅者发送的消息(图 2.15)。

图 2.15 Will

发布者在链接中介时会用到 CONNECT(链接)消息,链接时对其指定 Will 标志、要发送的消息以及 QoS。这样一来,若是链接意外断开,Will 消息就会被传递给订阅者。另外,还有一个标志叫做 Will Retain。经过指定这个标志,就能跟前面说的 Retain 达到一样的效果,即在中介处保存消息。

当发布者使用 DISCONNECT(断开链接)消息明确代表链接已断开时,Will 消息就不会被发送给订阅者。

◉ Clean session

Clean session 用于指定中介是否保留了订阅者的已订阅状态。用 CONNECT 消息链接时,订阅者把 Clean session 标志设定为 0 或 1。0 是保留 session,1 是不保留 session。

若指定 Clean session 为 0 且中介已经链接上了订阅者,则中介须要在订阅者断开链接后保留订阅的消息。另外,若是订阅者的链接已经断开,且发布者已经发布了 QoS 一、QoS 2 的消息给已订阅的主题时,中介则会把消息保存,等订阅者再次链接时发送给订阅者(图 2.16)。

图 2.16 Clean session

若指定 Clean session 为 1 并链接,中介就会废弃以往保留的客户端信息,将其当成一次“干净”的链接来看待。此外,订阅者断开链接时,中介也会废弃全部的信息。

咱们能够用表 2.1 所示的几种产品来实现 MQTT。是否支持前文介绍的功能则取决于中介的种类。

表 2.1 MQTT 的实现
imagepng

除此以外,一个叫做 Paho 的库还公开了发布者和订阅者等客户端功能。不只 Java、JavaScript、Python 配备了 Paho,连 C 语言和 C++ 都配备了 Paho。所以,咱们可以将其与设备结合起来并加以使用。

数据格式

前面咱们围绕用于接收数据的通讯过程,即协议进行了讲解。事实上,数据就是经过协议来进行交换的。固然,就如咱们前文所说,这条规则在物联网的世界里也是不变的。数据要通过协议进行交换,而数据的格式也很重要。经过 Web 协议来使用的数据格式中,具备表明性的包括 XML 和 JSON(图 2.17)。

数据处理

很显然,处理服务器就是处理接收到的数据的地方。“处理”是一个抽象的词语,例如保存数据,以及转换数据以使其看上去更易懂,还有从多台传感器的数据中发现新的数据,这些都是处理。使用者的目的不一样,处理服务器的内容也各异。不过说到数据的处理方法,它能够概括成如下 4 种:数据分析、数据加工、数据保存以及向设备发出指令(图 2.20)。

图 2.20 数据的处理

关于数据的分析和加工,有两种典型的处理方式,分别叫做“批处理”和“流处理”。首先就来讲说这个“批处理”和“流处理”。

批处理

◉ Apache Hadoop

Apache Hadoop 是一个对大规模数据进行分布式处理的开源框架。Hadoop 有一种叫做 MapReduce 的机制,用来高效处理数据。MapReduce 是一种专门用于在分布式环境下高效处理数据的机制,它基本由 Map、Shuffle、Reduce 这 3 种处理构成(图 2.21)。

图 2.21 经过 Hadoop MapReduce 执行批处理

◉ Apache Spark

Apache Spark 也和 Hadoop 同样,是一个分布式处理大规模数据的开源框架。Spark 用一种叫做 RDD(Resilient Distributed Dataset,弹性分布数据集)的数据结构来处理数据(图 2.22)。

图 2.22 经过 Spark 执行批处理

 流处理

批处理是把数据攒起来,一次性进行处理的方法。相对而言,流处理是不保存数据,按照到达处理服务器的顺序对数据依次进行处理。

想实时对数据作出反应时,流处理是一个颇有效的处理方法。由于批处理是把数据积攒以后隔一段时间进行处理,因此从数据到达以后处处理完毕为止,会出现时间延迟。所以,流处理这种把到达的数据逐次进行处理的思路就变得很重要了。此外,流处理基本上是不会保存数据的。只要是被使用过的数据,若是不必保存,就会直接丢弃。

◉ Spark Streaming

Spark Streaming 是做为 Apache Spark(在“批处理”部分介绍过)的库被公开的。经过 Spark Streaming,就可以把 Apache Spark 拿到流处理中来使用(图 2.23)。

图 2.23 经过 Spark Streaming 执行流处理

◉ Apache Storm

Apache Storm 是用于实现流处理的框架,结构如图 2.24 所示。

本文思惟导图概览

物联网的基本架构包括三个层面:感知层、网络层和应用层。

物联网架构图

物联网架构图

感知层经过传感器采集某些数据(声、光、电等),基于网络层的终端模组,对接到网络层的基站,实现数据采集后的传输。

网络层负责将感知层采集的数据进行回传,基于不一样特色采用不一样的通讯协议技术进行回传相当重要,这也是本文重点所讨论的内容。

应用层能够理解为物联网的数据平台和业务平台。数据平台做为全部物联网终端数据的集合点,负责数据的统一存储、分析等,北向经过标准的API接口提供给业务平台作数据调用;业务平台基于数据平台的原始数据实现各类业务逻辑,对外呈现的是服务。

其中,聚焦于网络层的通讯协议,则是群雄逐鹿,百家争鸣。

当下最流行的Wi-Fi技术数据传输速度飞快,尤为802.11ax技术即将诞生,理论上8条流不是梦。然而伴随速度的提高,耗电量急剧增大,且传输距离也成为难题,长距离传输须要每隔必定距离放一个AP进行桥接,这必将大幅提高成本。所以,Wi-Fi技术更适合供PC及PDA等终端应用的室内无线上网场景。

蓝牙技术与Wi-Fi在2.4G频段上有交接,因此同频段会有一些干扰问题的产生。蓝牙的耗电状况比Wi-Fi稍微低一些, 而传输速度远不及Wi-Fi。在资产追踪、定位标签以及医疗传感器等场景下应用较多,如智能手表,蓝牙定位等。

Zigbee技术的功耗比较小,通讯距离也比较短,是一种短距离低功耗的技术,主要应用于无线传感器及医疗场景等。

UWB超宽带技术频段较为干净,没有其余频段的干扰,在高精度定位的场景下应用更多。

通讯协议对比

以上技术更适合近距离场景的数据传输,那么在远距离场景下又有哪些技术呢?

运营商提供的4G网络,是人们生活中应用最多的,甚至超过Wi-Fi。它能够作到长距离传输,不管在室内仍是室外,速度都很可观。这种技术看起来很优越,但其功耗较大,只能应用于终端可自取电的物联网场景,如某公司的共享单车,利用太阳能电池板进行取电。

在远距离场景下,若是终端不能解决供电问题,那么须要一种具备更低功耗,覆盖范围更大的技术来知足这个场景下的物联网通讯需求。因而在业务和技术的驱动下,一些专家和企业为了解决这个问题,研究出一种新型的通讯技术——LPWAN,即低功耗广域网技术。

LPWAN的目标是为物联网应用中的M2M(设备到设备)通讯场景而优化的远距离无线网络通信技术。LPWAN技术的优点主要体如今:低速率、超低功耗、长距离、低吞吐、强覆盖。这些特色刚好说明,此项技术正是针对物联网在长距离传输的场景下开发的。具体应用如:城区覆盖、远程抄表、井盖检测以及近海渔船检测等。

LPWAN技术特色

LPWAN做为一个新的技术阵营,其内部分为两大派系:受权频段和非受权频段。受权频段又分为EC-GSM、eMTC以及NB-IoT;而非受权频段的“头牌”则是LoRa。

 EC-GSM

随着LPWAN的兴起,传统的GRPS应用于物联网的劣势愈发明显。2014年,3GPP研究项目提出,将窄带(200kHz)物联网技术迁移到GSM上,寻求比传统GPRS高20dB的更广的覆盖范围,并提出五大目标:提高室内覆盖性能、支持大规模设备链接、减少设备复杂性、减少功耗和时延。到了2015年,TSG GERAN #67会议报告表示,EC-GSM已知足5大目标。但随着R13 NB-IoT标准冻结以后,人们将更多精力投入到了从新定义的标准当中。

eMTC

eMTC的概念在R13中被正式命名,之前的R12被称为Low-Cost MTC,它是基于LTE演进的物联网技术。eMTC基于蜂窝网进行部署,用户设备经过支持1.4MHz的射频和基带带宽,可直接接入现有的LTE网络。eMTC的关键能力在于速率高(相较于GPRS、zigbee等)、可移动、可定位以及支持语音。。

 NB-IoT

最近特别火热的NB-IoT实际上是NB-CIoT和NB-LTE二者的融合。NB-CIoT提出了全新的空口技术,较传统LTE网络改动较大,他知足于TSG GERAN#67会议上提出的五大目标,其亮点在于通讯模块成本低于GSM及NB-LTE的模块。而NB-LTE则与现有的LTE兼容,特色是利于部署。在激烈的争论后,终于对二者加以融合,造成了NB-IoT的技术标准。

NB-IoT全称为窄带物联网,能够直接部署于LTE网络,良好的兼容性下降了部署的成本。其自己具备更低的功耗,理论上估算,承载NB-IoT的终端模组基于电池的待机时间可达10年之久。模块成本的下降,也让市场更多的公司开始应用这项技术,风靡全国的共享单车就是其一。某公司第三代的智能锁就采用了NB-IoT的模组,一方面是运营商的大力推广,另外一方面也确实带来了价值。

LoRa

与NB-IoT齐头并进发展的就是LoRa,与之不一样的是LoRa技术使用非受权频段。它是由Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输技术。LoRa全称是Long Range,顾名思义,LoRa能够支持长距离传输。在中国,LoRa可使用的频段有两个:CN779-787以及CN470-CN510。因为CN779-787最大发射功率只有10dBm(10mW),并无“实用”的价值。因此人们更青睐于CN470-CN510这个频段,它的最大发射功率能够达到17dBm(50mW)。

类比于Wi-Fi联盟,LoRa也有对应的LoRa联盟,旨为共同创建标准和规范,LoRaWAN就是这样的产物。

LoRa与NB-IoT对比

基于成本的考虑,LoRa的模组单价在8-10美圆左右,并且非受权频段也不须要支付额外的频谱成本,相比于NB-IoT而言,成本方面具备较大优点。在电池性能方面,因为NB-IoT在蜂窝受权频谱上工做,因此须要定时进行网络同步,会消耗相应的电量,而LoRa则无此担心,但NB-IoT的这个特性也受到共享单车的热烈欢迎,能够基于此来作车辆的实时定位工做。另外,从商业模式上来看,NB-IoT属于运营商建网,业务方不须要本身来考虑基站的部署,比较省心;但与此同时,网络的质量、安全都是不可控的风险,且企业自身的增值也会受到必定阻碍。反观LoRa,属于企业自建网络,基站需本身部署,后续需本身运维、优化等,覆盖的点位、网络质量及安全等维度都要本身负责。

截止目前,没有哪一个物联网技术可以成为真正的主流,对技术自己而言,没有绝对的完美;从业务出发,更是须要结合业务特色、商业模式去选择更适合的物联网技术。

物联网技术的发展伴随各方“豪杰”群雄逐鹿,将来会不会三足鼎立或由新的势力一统天下,让咱们拭目以待。

以上是关于物联网中-物联网通讯协议纷争:群雄逐鹿 百家争鸣的相关介绍,若是想要了解更多相关信息,请多多关注eeworld,eeworld电子工程将给你们提供更全、更详细、更新的资讯信息。

Stay hungry,Stay foolish!
相关文章
相关标签/搜索