Google 最初设计其网络实时通信 (WebRTC) 协议是为了纯粹基于浏览器的通信。然而,我相信 WebRTC 作为物联网设备的通信协议也正在成为一个重要的选择。
无论是立即响应用户命令的智能家居设备,还是立即传输关键患者数据的医疗保健设备,WebRTC 现在都允许智能设备更快、更安全地传输数据。以下是您应该了解的有关 WebRTC 在 IoT 中的地位的信息。
了解 WebRTC
WebRTC是一个开源项目,为基于 Web 和基于移动的应用程序提供实时通信功能。最好的部分是,该协议无需任何专门的插件或外部软件即可实现语音、视频和数据传输。例如,当您使用 Google Meet 时,您无需下载应用程序;相反,您只需打开一个链接即可立即与世界任何地方的其他用户联系。
WebRTC 建立直接的点对点(P2P/NAT 穿越)连接,允许数据直接在设备之间流动,而不是通过单独的服务器,从而减少延迟并提高数据传输的整体效率。该协议还适应网络条件,这意味着它实际上可以改变音频和视频的质量以适应缓慢的网络,而不仅仅是使浏览器崩溃。
以下是 WebRTC 的一些最重要的组件:
- MediaStream:实时捕获音频和视频
- RTCPeerConnection:促进对话中对等方之间的音频和视频通信,处理连接信息和媒体控制
- RTCDataChannel:实现各种类型数据的点对点交换
让我们花更多的时间来讨论其中的每一个。
MediaStream 直接与网络摄像头和麦克风等媒体硬件连接,允许设备收集实时音频和视频源并通过浏览器传输。同样,您可能已经在基于浏览器的视频会议软件(例如 Google Meet)中看到过这种情况。
RTCPeerConnection 在对等点之间建立初始连接:例如,视频会议中的两个参与者之间。该组件还处理媒体编解码器的协商,这意味着如何压缩或解压缩数据以进行传输,以及媒体流的各个其他方面,例如媒体流的开始和结束时间。开发人员将这个协商过程称为“信号传递”。
最后,RTCDataChannel 组件支持二进制数据(如文件或图像)和文本数据的传输。这对于需要额外数据类型以及音频/视频流的应用程序特别有用。WebRTC 不仅能够传输音频或视频,还能够传输音频或视频,这使得它对于一般智能应用非常有用,例如智能室内环境控制系统。
您还可以通过数据通道传输其他 IoT 协议,包括约束应用协议 (CoAP),这是一种针对低功耗 IoT 设备进行优化的 Web 传输协议。
所有这些组件一起使 WebRTC 特别强大。尽管如此,它并不总是物联网的首选。
物联网 WebRTC 的演变
早在 2011 年,Google 就向开源开发界发布了 WebRTC,以便任何人都可以免费使用它或使用基本代码。虽然该协议从一开始就可以传输各种类型的数据,但早期版本主要侧重于浏览器到浏览器的视频和音频流应用程序。从那时起,开发人员添加了该协议并使其更加通用。
在疫情期间,随着越来越多的人在家工作并依靠基于浏览器的技术进行日常工作和通信,WebRTC 受到了越来越多的关注。因此,万维网联盟和互联网工程任务组共同努力,全面标准化该协议,并确保跨各种平台和浏览器的兼容性和互操作性。
如今,WebRTC 不仅与浏览器完全兼容,还与 Android 和 iOS 原生应用程序完全兼容。由于许多物联网开发商和制造商的目标是使用户能够通过智能手机控制智能安全系统或家庭智能设备等物联网设备,因此移动功能一直是物联网WebRTC最重要的方面之一。
IoT 领域中的 WebRTC
适用于 IoT 的 WebRTC 有助于解决当今智能设备通信中的一些主要挑战。
挑战#1:延迟
物联网设备并不总是立即发送消息。有时,会出现延迟,称为延迟,在安全关键或安全关键环境中,延迟可能是致命的。因此,WebRTC 的“实时”方面有助于确保您发送到 IoT 设备或从 IoT 设备接收的消息或指令具有尽可能低的延迟。
挑战#2:安全性
另一个重大挑战是安全性。2023 年前六个月,针对物联网设备的攻击比上一年增加了35%以上。虽然许多物联网通信协议要求开发人员添加额外的安全措施或配置,但 WebRTC 默认情况下内置安全实时传输协议 (SRTP) 的安全性,可防止任何窃听或篡改数据包。
挑战#3:数据格式
WebRTC 帮助解决的物联网的下一个重大挑战是管理物联网设备所需的各种格式的数据的复杂性。为了完全控制物联网设备,我们需要能够高速处理大量数据、保护传输中的信息以及处理多种不同格式的数据的通信协议。WebRTC 满足所有这些要求。
挑战#4:兼容性
最后,还有物联网的兼容性问题。来自不同制造商的智能设备通常遵循不同的协议和标准,这使得它们很难相互通信。由于 WebRTC 独立于平台并与所有主要浏览器和系统兼容,因此它在设备和物联网系统之间提供了高水平的互操作性。
总而言之,WebRTC 在其最早的迭代中可能并不是一种物联网协议,但它肯定会成为帮助解决来年物联网世界一些最大问题的重要选择。
WebRTC 物联网用例
我已经在另一篇文章中详细讨论了WebRTC 在视频流中的使用,但这里值得一提的是 WebRTC 在物联网中的其他一些主要用途。
首先,WebRTC 使用户能够在浏览器中无缝查看来自智能安全摄像头的视频监控录像,从而增强了智能安全系统。该协议的多功能性超出了视频范围,支持以最小的延迟传输各种数据格式。这开辟了广泛的可能性,允许用户接收实时更新并增强智能安全系统的整体功能。
WebRTC IoT 的另一个越来越受欢迎的应用是医疗保健应用。远程医疗保健越来越受欢迎,智能医疗保健设备可以收集患者健康数据以供医生查看。当然,WebRTC 也是患者与其医生之间进行视频会议的理想选择。
简而言之,WebRTC 几乎适用于任何优先考虑低延迟或设备处理多种不同文件格式的物联网情况。
WebRTC 与其他物联网通信协议
当然,WebRTC 并不是物联网唯一的通信协议,它的许多优点也存在于其他协议中。其他一些顶级选项包括消息队列遥测传输协议、受限应用程序协议、超文本传输协议 (HTTP) 和高级消息队列协议 (AMQP)。请注意,除了 WebRTC 之外,您还可以使用 CoAP 而不是替代;同样,RTCDataChannel 可以用作传输其他协议的载体。
以下是这些协议的简要概述以及它们与 WebRTC 的比较:
协议 | 描述 | 优点 | 缺点 | 理想的用例 |
网络RTC | 实时通信、P2P、基于浏览器 | 低延迟、直接连接、媒体流 | 连接不良导致流媒体质量下降 | 视频流、远程控制、实时传感器数据 |
MQTT | 发布/订阅、轻量级、基于代理 | 对于低带宽、不可靠的网络非常有效 | 对经纪人的依赖,安全功能有限 | 传感器数据采集、远程监控、设备管理 |
联合行动计划 | RESTful,基于 UDP | 非常轻量,开销低,适合低功耗设备 | 可靠性有限,生态系统不太成熟 | 智能能源、楼宇自动化、传感器网络 |
AMQP | 发布/订阅,企业级,可靠 | 功能丰富、安全性高、互操作性强 | 受限设备的高开销、复杂性 | 金融交易、物流、医疗保健 |
HTTP协议 | 支持良好,请求/响应 | 广泛采用、易于集成、网络友好 | 高开销,未针对物联网进行优化 | 基于网络的应用程序、设备管理、固件更新 |
有关这些不同协议及其比较的更多信息,请查看我们最近对物联网协议的比较。
最后的想法
随着物联网行业开始更多地关注 WebRTC 在通信协议中的好处和优势,物联网中的 WebRTC 在未来几年只会变得更加普遍。这就是我们向 Nabto Edge 添加 WebRTC 兼容性以增强 P2P 连接的原因。