WebRTC(Web 实时通信)是一种开源技术,无需额外的插件或软件即可在浏览器和设备之间直接实现实时音频、视频和数据传输。它广泛用于视频会议、直播、在线游戏和点对点 (P2P) 文件共享。WebRTC 由 Google 开发,并由 W3C(万维网联盟)和 IETF(互联网工程任务组)标准化。Chrome、Firefox、Edge 和 Safari 等主流浏览器都支持它,使其成为 Web 实时通信的关键技术。
WebRTC 使用几个关键组件建立直接点对点 (P2P) 连接:
信令:通过 WebSockets 或 SIP 等外部协议交换元数据(例如 IP 地址、会话详细信息)以启动连接。
STUN/TURN 服务器:帮助绕过防火墙和 NAT 限制,确保连接性。
对等连接:使用安全实时传输协议(SRTP)加密媒体流和DataChannel API进行P2P数据交换。
一旦建立,WebRTC 就可以允许用户之间进行低延迟、加密和高质量的媒体传输。
低延迟:支持亚秒级通信,非常适合实时互动。
端到端加密:使用 DTLS-SRTP 进行安全媒体和数据传输。
跨平台兼容性:适用于网络、移动和嵌入式系统。
自适应网络处理:根据网络状况动态调整媒体质量。
无需额外的软件:在现代浏览器中本地运行。
特征 | WebRTC | HLSS | 短跑 | 实时消息协议 |
---|---|---|---|---|
延迟 | 亚秒级(<500 毫秒) | 5-30秒 | 3-10秒 | 2-5秒 |
传输协议 | UDP(SRTP、SCTP、DTLS) | HTTP(基于 TCP) | HTTP(基于 TCP) | TCP(实时消息协议) |
理想用例 | 视频通话、游戏、实时聊天 | OTT、VOD、直播 | OTT、VOD、自适应流媒体 | 旧版直播 |
P2P 支持 | 是的 | 不 | 不 | 不 |
加密 | 是的 | 否(除非经过 DRM 加密) | 否(除非经过 DRM 加密) | 不 |
可扩展性:P2P 连接在多用户场景中需要大量带宽。
防火墙和 NAT 问题:可能需要 STUN/TURN 服务器实现连接。
有限的 CDN 支持:与 HLS/DASH 不同,WebRTC 并未针对传统 CDN 交付进行优化。
为了增强可扩展性,许多平台将 WebRTC 与选择性转发单元 (SFU) 或多点控制单元 (MCU) 集成,以处理大规模实时通信。
WebRTC 是实时交互式通信的关键技术,可提供低延迟、安全和浏览器原生功能。虽然它在视频会议、游戏和实时互动等应用中表现出色,但大规模部署需要与媒体服务器或 CDN 混合使用,以提高效率。