webRTC 的标准与发展
Web 实时通信(WebRTC)是标准,协议和 JavaScript API 的集合,两者的组合可实现浏览器(对等)之间的对等音频,视频和数据共享。WebRTC 无需依赖第三方插件或专有软件,而是将实时通信转变为任何 Web 应用程序都可以通过简单的 JavaScript API 加以利用的标准功能。
交付丰富,高质量的 RTC 应用程序,例如音频和视频电话会议以及对等数据交换,需要在浏览器中提供许多新功能:音频和视频处理功能,新的应用程序 API,以及对六种新功能的支持。网络协议。值得庆幸的是,该浏览器将这种复杂性的大部分从三个主要 API 中抽象出来:
MediaStream
:获取音频和视频流RTCPeerConnection
:音频和视频数据的通信RTCDataChannel
:任意应用程序数据的通信
它只需要十几行 JavaScript 代码,任何 Web 应用程序都可以通过对等数据传输实现丰富的电话会议体验。这就是 WebRTC 的承诺和力量!但是,列出的 API 只是冰山一角:信令,对等设备发现,连接协商,安全性以及新协议的整个层只是将它们整合在一起的一些组件。
不足为奇的是,支持 WebRTC 的体系结构和协议还决定了其性能特征:连接建立等待时间,协议开销和传递语义,仅举几例。实际上,与所有其他浏览器通信不同,WebRTC 通过 UDP 传输其数据。但是,UDP 只是一个起点。要使浏览器中的实时通信成为现实,它需要花费比原始 UDP 多得多的费用。让我们仔细看看。
已经为 1B +用户启用了 WebRTC:最新的 Chrome 和 Firefox 浏览器为所有用户提供 WebRTC 支持!话虽这么说,WebRTC 也在浏览器 API 级别以及传输和协议级别上都在积极构建中。因此,未来几章中讨论的特定 API 和协议可能仍会更改。
WebRTC 的标准和发展
在浏览器中启用实时通信是一项雄心勃勃的工作,并且可以说是自一开始以来 Web 平台最重要的新增功能之一。WebRTC 脱离了熟悉的客户端到服务器的通信模型,这导致了浏览器中网络层的完全重新设计,并且带来了一个全新的媒体堆栈,这是实现高效,实时处理所必需的音频和视频。
结果,WebRTC 体系结构由十几种不同的标准组成,涵盖了应用程序和浏览器 API,以及使其工作所需的许多不同的协议和数据格式:
Web 实时通信(WEBRTC)W3C 工作组负责定义浏览器 API。
Web 浏览器中的实时通信(RTCWEB)是 IETF 工作组,负责定义协议,数据格式,安全性和所有其他必要方面,以实现浏览器中的对等通信。
WebRTC 不是空白标准。尽管其主要目的是实现浏览器之间的实时通信,但其设计还使其可以与现有的通信系统集成:IP 语音(VOIP),各种 SIP 客户端,甚至公共交换电话网(PSTN) , 仅举几个。WebRTC 标准没有定义任何特定的互操作性要求或 API,但它们确实尝试在可能的情况下重用相同的概念和协议。
换句话说,WebRTC 不仅要为浏览器带来实时通信,还要把所有的 Web 功能都带给电信世界——2012 年的市场价值为 4.7 万亿美元!毫不奇怪,这是一项重大发展,许多现有的电信供应商,企业和初创公司正在密切关注这一发展。WebRTC 不仅仅是另一个浏览器 API。
WebRTC 用例和性能
实现低延迟,对等传输是一项不平凡的工程挑战:NAT 遍历和连接性检查,信令,安全性,拥塞控制以及无数其他细节需要处理。WebRTC 代表我们处理了以上所有内容,因此,自成立以来,WebRTC 可以说是 Web 平台最重要的新增功能之一。实际上,这不仅是 WebRTC 提供的各个部分,而且所有组件都可以协同工作以提供一个简单而统一的 API,以便在浏览器中构建对等应用程序这一事实。
但是,即使具有所有内置服务,设计高效且高性能的对等应用程序仍需要进行大量仔细的考虑和计划:对等并不意味着就其本身而言就具有高性能。如果有的话,对等点之间带宽和延迟的增加的可变性,以及媒体传输的高要求以及不可靠的传送的特殊性,使它成为一个更加艰巨的工程挑战。
总结
随着移动互联网的、AI、5G 等等新兴技术的高速发展,结合 WebRTC 技术,未来将衍生出更多的应用场景,改变人类的衣、食、住、行等生活方式。
评论