使用传感器和连接的嵌入式系统对开发人员来说并不陌生。但是,将这些元素与多种其他 Internet 技术结合使用是可行的。互联网协议 (IP) 并不新鲜,但物联网 (IoT) 的专用 IP 却是,它们用于帮助塑造系统功能。TCP/IP 套接字之上有多个 IP 应用层协议。每一种都有其优点和限制。了解它们有助于开发人员为产品做出最佳设计选择。带宽要求、实时性能和内存占用是选择物联网协议时的一些主要标准。许多物联网项目是由首席信息官 (CIO) 和 IT 部门推动的,他们推动开发人员使用他们开发的技术和协议了解物联网设备。尽管如此,物联网设备往往更接近运营技术(OT),将IT技术推入OT领域往往不是最优选择。
开发人员需要了解物联网设备有比 IT 技术更好的协议选项。
IP有多种类别:
消费者与工业
网页服务
物联网服务
发布/订阅
请求/响应
在设计新系统时必须考虑这些类别。让我们看看物联网的 IP 并定义选择标准。
互联网
互联网是用于将 IP 数据包从源路由到目的地的所有网络设备的总和。相比之下,万维网是在互联网上运行的应用系统。Web 是为人们交换信息而构建的工具,在过去的 20 年中,Web 得到了发展和完善,因此普通的非技术人员可以轻松高效地使用 Internet。例如,互联网的人机界面现在包括电子邮件、搜索引擎、浏览器、移动应用程序、Facebook 和 Twitter,以及其他流行的社交媒体。
相比之下,在物联网中,这个想法是让电子设备通过互联网交换信息。但这些设备还没有与浏览器和社交媒体相当的机器来促进交流。由于物联网设备协同工作所需的速度、规模和功能,物联网也不同于网络。这些要求远远超出了人们需要或使用的范围。我们正处于为这些系统开发新工具和服务的初期,这也是难以确定物联网定义的原因之一。许多关于它可以、可能或应该是什么的愿景相互碰撞。
TCP/IP 协议栈
TCP/IP 协议栈是 Internet 和 Web 的核心。它可以使用七层开放系统互连 (OSI) 参考模型来表示,如下图所示(图 1)。前三层组合在一起,简化了模型。
【图1 | 七层 OSI 参考模型。]
以下是从嵌入式系统集成角度对重要 OSI 层的快速描述:
1. 物理层和数据链路层
嵌入式系统最常用的物理层协议有:
以太网(10 Mbps、100 Mbps、1 Gbps)
无线网络 (802.11b/g/n)
串行点对点协议 (PPP)
GSM、3G、4G、LTE
2.网络层
这就是互联网生活的地方。互联网——inter-network 的缩写——之所以这样命名,是因为它提供了网络之间、物理层之间的连接。这是我们找到无处不在的IP地址的地方。
3.传输层
在 IP 之上,我们有传输控制协议 (TCP) 和用户数据报协议 (UDP),这两个传输协议。由于 TCP 用于我们与 Web 的大多数人类交互(电子邮件、Web 浏览等),因此人们普遍认为 TCP 应该是传输层使用的唯一协议。TCP 提供了逻辑连接、已传输数据包确认、丢失数据包重传和流量控制的概念——所有这些都是很棒的东西。但是对于嵌入式系统,TCP 可能是多余的。因此,UDP,即使长期以来被归类为域名服务器 (DNS) 和动态主机配置协议 (DHCP) 等网络服务,现在也在传感器采集和远程控制领域找到了自己的位置。如果您需要某种类型的数据管理,
对于语音和视频等实时数据应用,UDP 也比 TCP 更适合。原因是 TCP 的数据包确认和重传功能对于这些应用程序来说是无用的开销。如果一段数据(例如一段语音)没有及时到达其目的地,则重新传输数据包是没有意义的,因为它会乱序到达并混淆消息。
TCP 有时比 UDP 更受欢迎,因为它提供了持久连接。要使用 UDP 启用相同功能,您必须在 UDP 之上的协议层中实现此功能。
当您决定如何将数据从“事物”本地网络移动到 IP 网络时,您有多种选择。因为使用的技术是熟悉的并且可以从广泛的来源获得,所以您可以通过网关链接两个网络,或者您可以将此功能构建到“事物”本身中。许多微控制器 (MCU) 现在都具有片上以太网控制器,这使得这项任务变得更容易。
物联网协议
使用现有的 Web 技术构建物联网系统是可能的,即使它不如新协议高效。超文本传输协议/安全 (HTTP/S) 和 WebSockets 以及有效负载中的可扩展标记语言 (XML) 或 JavaScript 对象表示法 (JSON) 是通用标准。当使用标准 Web 浏览器(HTTP 客户端)时,JSON 为 Web 开发人员提供了一个抽象层,通过保持两个 HTTP 连接打开,创建一个有状态的 Web 应用程序,该应用程序具有到 Web 服务器(HTTP 服务器)的持久双工连接。
HTTP
HTTP 是用于 Web 的客户端-服务器模型的基础。在 IoT 设备中实现 HTTP 的最安全方法是仅包含客户端,而不包含服务器。换句话说,当物联网设备可以发起与 Web 服务器的连接但无法接收连接请求时,会更安全;我们不想让外部机器访问安装 IoT 设备的本地网络。
网络套接字
WebSocket 是一种通过单个 TCP 连接提供全双工通信的协议,通过该 TCP 连接可以在客户端和服务器之间发送消息。它是超文本标记语言 5 (HTML5) 规范的一部分。WebSocket 标准简化了双向 Web 通信和连接管理的大部分复杂性。
XMPP
可扩展消息传递和存在协议 (XMPP) 是现有 Web 技术在物联网领域找到新用途的一个很好的例子。
XMPP 起源于即时消息和状态信息,并已扩展到语音和视频呼叫、协作、轻量级中间件、内容联合和 XML 数据的通用路由。它是洗衣机、烘干机、冰箱等消费类白色家电大规模管理的有力竞争者。
XMPP 的优势在于其寻址、安全性和可扩展性。这使其成为面向消费者的物联网应用的理想选择。
HTTP、WebSocket 和 XMPP 是为物联网服务的技术示例。其他团体也在努力为物联网给我们带来的新挑战开发解决方案。
想要的通用协议
许多物联网专家将物联网设备称为受限系统,因为他们认为物联网设备应该尽可能便宜,并在运行通信堆栈的同时使用可用的最小 MCU。
目前,使互联网适应物联网是许多全球标准化机构的主要优先事项之一。表 1 包含当前活动的简短摘要。
[表 1 | 受约束的系统标准化工作。]
如果您的系统不需要 TCP 的功能并且可以使用更有限的 UDP 功能运行,那么删除 TCP 模块会显着有助于减少产品的总代码占用空间的大小。这就是用于无线传感器网络 (WSN) 的低功耗无线个人区域网络 (6LoWPAN) 的 IP 版本 6 (IPv6) 和受限应用协议 (CoAP) 轻型互联网协议为物联网世界带来的内容。
辅酶AP
尽管 Web 基础架构可用于 IoT 设备,但它对于大多数 IoT 应用程序来说太重了。2013 年 7 月,互联网工程任务组 (IETF) 发布了用于低功耗和有损节点和网络 (LLN) 的 CoAP。CoAP 与 HTTP 一样,是一种 RESTful(通过统一的应用程序编程接口 (API) 操作资源和资源标识符的能力)协议。
CoAP 在语义上与 HTTP 一致,甚至具有与 HTTP 的一对一映射。网络设备受到具有少量闪存和 RAM 的小型 MCU 的限制,而本地网络的限制是由于高数据包错误率和低吞吐量(数十 kbps)。CoAP 对于使用电池或能量收集的设备来说是一个很好的协议。
CoAP的特点:
因为 CoAP 使用 UDP,所以一些 TCP 功能直接在 CoAP 中复制。例如,CoAP 区分可确认(需要确认)和不可确认消息。
请求和响应通过 CoAP 消息异步交换(与使用现有 TCP 连接的 HTTP 不同)。
所有的标头、方法和状态码都是二进制编码的,这减少了协议开销。但是,这需要使用协议分析器来解决网络问题。
与 HTTP 不同,缓存 CoAP 响应的能力不取决于请求方法,而是响应代码。
CoAP 完全解决了对表现出类似于永久连接的行为的极轻协议的需求。它对 HTTP 语义熟悉,并且是 RESTful。如果你有网络背景,使用 CoAP 相对容易。
MQTT
消息队列遥测传输 (MQTT) 是一种开源协议,专为受限设备和低带宽、高延迟或不可靠的网络而开发和优化。它是一种发布/订阅消息传输,非常轻量级,非常适合以最小带宽将小型设备连接到网络。MQTT 具有带宽效率、与数据无关,并且具有持续的会话感知能力,因为它使用 TCP。它旨在最大限度地减少设备资源需求,同时还试图确保可靠性和一定程度的服务等级交付保证。
MQTT 针对需要从 Internet 上的后端服务器监视或控制的小型设备的大型网络。它不是为设备到设备的传输而设计的,也不是为将数据“多播”到许多接收器而设计的。MQTT 很简单,提供的控制选项很少。使用 MQTT 的应用程序通常很慢,因为在这种情况下“实时”的定义通常以秒为单位。
MQTT 与 CoAP
MQTT 发布/订阅的扩展性很好,这种架构的优势已经得到体现。在最新的 IETF 征求意见 (RFC) 中,CoAP 引入了对发布/订阅的支持。
CoAP 的轻负载非常适合无线传感器网络。用于传感器网络的 MQTT (MQTT-SN) 采用了该想法并对其进行了复制。
两个主要的专用物联网协议相互借鉴。这两种协议会保持主流吗?我们相信,至少 5 到 10 年。
潜在物联网协议的比较
思科是互联网的核心;它的IP设备无处不在。思科积极参与物联网的发展,并看到了连接物理对象、从我们的环境中获取数据并处理这些数据以提高我们的生活水平的潜力(表 2)。
[表 2 | 思科在物联网标准方面的工作。]
表 2 所示的特定于 Internet 的 IoT 协议的开发旨在满足内存量小设备以及低带宽和高延迟网络的需求。图 2 提供了这些协议为物联网带来的性能优势的另一个很好的总结。
【图2 | Web 和 IoT 协议的比较。资料来源:Zach Shelby,Micro:bit 基金会。]
选择正确的物联网协议
连接传感器和对象开辟了一个全新的可能用例世界——正是这些用例将决定何时为正确的应用程序使用正确的协议。
这些协议中的每一个的高层定位都是相似的。除了 HTTP,所有提到的协议都被定位为支持数百万设备的实时发布/订阅物联网协议。根据您如何定义“实时”(秒、毫秒或微秒)和“事物”(WSN 节点、多媒体设备、个人可穿戴设备、医疗扫描仪、引擎控制等),您的产品的协议选择至关重要。从根本上说,这些协议非常不同。
今天,Web 运行在数百种协议上。物联网将支持数百个。在设计系统时,您需要做的是非常精确地定义系统要求并选择正确的协议集来解决它们。互联网协议是载体;它可以为 IoT 封装与今天为 Web 封装的协议一样多的协议。
许多行业专家都在要求协议标准化 但是,如果网络有这么多协议,为什么物联网没有那么多呢?您选择满足您要求的协议。唯一的区别是物联网协议还很年轻,必须证明它们的可靠性。请记住,当互联网成为现实时,IP 版本 4 (IPv4) 使之成为可能。我们现在正在大规模部署 IPv6,而物联网是电信运营商一直在等待证明所需投资的杀手级应用。
审核编辑:郭婷
-
传感器
+关注
关注
2551文章
51090浏览量
753485 -
Web
+关注
关注
2文章
1263浏览量
69458 -
物联网
+关注
关注
2909文章
44632浏览量
373259
发布评论请先 登录
相关推荐
评论