干货|物联网行业最全报告
毫无疑问,人类和嵌入式设备通过完全不同的方式使用互联网。人类主要通过万维网—运行在互联网上的应用集合—访问互联网。当然,网页并不是互联网人机交换的唯一选择,我们还可以通过电子邮件、短信、手机应用程序,以及一系列的社交媒体工具实现互联。与互联网相比,在物联网中,智能电子设备之间通过互联网实现信息的交互,但这些设备上并没有类似于网页浏览器和社交媒体的工具,人们已经着手开发这类工具和服务。
TCP/IP协议栈
TCP/IP协议栈是互联网的核心。它可以通过OSI七层参考模型来表示,如图1所示。图中顶部的三层组合在一起,以简化模型。
图1 TCP/IP协议栈参考模型
1. 物理层和数据链路层
嵌入式系统中最使用的物理层协议包括:
1)以太网(10,100,1G)
2)WiFi(802.11b,g,n)
3)串行PPP(点对点协议)
4)GSM,3G,LTE,4G
2. 网络层
网络层是互联网的基础。该层提供了网络间及物理层之间的连接。该层中,设备拥有人们随处可见的IP地址。
3. 传输层
该层位于网络层之上,具有TCP和UDP两种传输协议。
TCP通常用于网络间的人机交互(电子邮件、网页浏览等),以致很多人认为TCP协议是传输层使用的唯一协议。TCP提供了逻辑连接、传输确认、丢包重传和流控服务。
但对嵌入式系统而言,使用TCP有点小题大做了。尽管长期以来,UDP主要用于类似于DNS和DHCP的网络服务,现在,在传感器数据采集和远程控制领域,它有了新的用武之地。
UDP也适合于实时数据应用,例如音频和视频应用。这是因为,TCP的包应答和重传特性对这类应用是无效的,并且增加了额外的开销。如果一个数据块(例如一段对话)没有按时到达目的地,也没有必要重传该包。如果重传,它会破坏包的顺序并导致信息错误。
设计物联网设备时,必须考虑如何将本地设备连接到互联网。可以通过网关,或者将该功能集成到设备中以实现连接。目前,很多MCU集成了以太网控制器,简化了联网的工作。
物联网协议栈
你可以使用熟悉的Web技术来构建物联网系统吗?答案是肯定,但没有使用新的协议有效。
HTTP(S)和WebSocket是数据负载中传送XML或Java对象符号(JSON)的常用标准。JSON为网页开发人员提供了一个抽象层,可以为Web应用创建一个到Web服务器的持续、稳定的连接。
1. HTTP
HTTP是用于Web服务的客户端–服务器模型的基础。实现HTTP连接的安全的方式是在物联网设备中只包含一个客户端,不包含服务器。换言之,设计一个只发起连接、不接收的物联网设备比较安全。总之,不允许外部设备访问你的局域网。
2. WebSocket
WebSocket是一个全双工通信协议,它在客户端和服务器之间,通过一个TCP连接实现全双工通信。它是HTML 5规范的一部分,WebSocket标准简化了双向Web通信和连接管理方面的复杂度。
3. XMPP
XMPP(可扩展通信与表示协议)是现有Web技术在物联网领域开发新用途的一个很好的实例。
XMPP最初用于即时消息与现场信息。现在已经扩展到支持VoIP信令、协作、轻量级中间件、内容聚合及广义的XML数据路由等领域。它是家用电器大规模管理的竞争者,这些白色家电包括洗衣机、干衣机、冰箱等。
4. CoAP
尽管Web协议可用于物联网设备,对大多数物联网应用来说,它的体积太庞大。IETF制定的资源受限的应用协议(CoAP),可用于低功耗和资源受限的网络。CoAP是一个REST类型的协议,采用了与HTTP类似的语法,其语义可以与HTTP的语义一一对应。
对基于电池供电或能量收集供电的设备来说,CoAP协议是一个很好的选择。其部分特性如下:
1)CoAP运行在UDP协议之上。
2)由于UDP传输不可靠,CoAP重现了一些TCP的功能。例如,CoAP可以识别需要确认的请求和无需确认的请求。
3)CoAP报文采用异步请求/响应模式。
4)所有的报文头、方法和状态码基于二进制编码,以减少协议开销。
5)不同于HTTP,缓存CoAP响应的能力不依赖请求方式,取决于应答码。
6)CoAP面向需要轻量级协议和建立永久连接的需求。如果拥有Web应用背景,使用CoAP会比较容易。
5. MQTT
MQ(消息队列)遥测传输是一个开源的协议栈(MQTT),面向资源受限的设备和低带宽、高延迟的网络。它采用发布/订阅消息传输模式,是一个轻量级的协议,适合将小型设备连接到资源受限的网络。
MQTT带宽利用率高,数据不可知,并具有连续的会话意识。可以帮助物联网设备减少资源消耗,还可以确保可靠性和一定程度的服务等级。
MQTT面向大型网络中的小型设备,这些设备需要通过互联网中的后台服务器来监视和控制。它不是一个设备到设备的传输,也不是“组播”数据到多个接收器的传输。MQTT非常简单,仅提供了一些控制选项。
协议比较
表1概述了所有的物联网协议,开发这些互联网定义的物联网协议的目的是满足低存储空间、低带宽和高延迟设备的联网需求。
表1 超越MQTT:从思科的视角看物联网协议(Paul Duffy,2013.4.30)
互联网和物联网协议比较如下,图2提供了将互联网协议与物联网中的性能优势比较。资料来源于Zach Shelby的报告“物联网驱动标准”。
图2 互联网和物联网协议比较
如图2左侧所示,Web应用的协议栈可以很容易地生成几百到几千字节的数据开销。比较而言,物联网协议针对受限制的设备和网络进行了优化,仅生成几十个字节的数据开销。
页:
[1]