webrtc 相关概念

Published: · LastMod: April 07, 2024 · 743 words

webRTC传输技术 🔗

040fd1c2f7955b86ce561e22ef9317ab.jpg

RTP 🔗

RTP(Real-time Transport Protocol,实时传输协议)通过IP网络实时传输音频和视频。RTP常用于流媒体服务的通信系统,例如网络电话、WebRTC视频电话会议、电视服务等.

  • 具有较低的延时。
  • 数据包在网络传输的过程中可能会丢失,到达对等端的顺序也可能发生变化。对等端收到RTP数据包后,需要根据数据包的序列号和时间戳进行重新组合。
  • 支持多播(multicast),尽管目前WebRTC还没有使用这个特性,但是在海量用户通话场景,这个特性就变得很重要。

RTP会为每个媒体流建立一个会话,即音频和视频流使用单独的RTP会话,这样接收端就能选择性地接收媒体流。RTP使用的端口号为偶数,每个关联的RTCP端口为下一个较高的奇数,端口号范围为1024~65535。

RTCP 🔗

RTCP(RTP Control Protocol)是实时传输协议(RTP)的姊妹协议,其基本功能和数据包结构在RFC 3550中定义。RTCP为RTP会话提供带外统计信息和控制信息,与RTP协作提供多媒体数据的传输和打包功能,其本身不传输任何媒体数据。

RTP通常在偶数UDP端口上发送,而RTCP消息将在下一个更高的奇数端口发送。

WebRTC使用的是SRTP。SRTP是RTP的一个配置文件,旨在为单播和多播应用程序中的RTP数据提供加密、消息身份验证和完整性以及重放攻击保护等安全功能。

SRTP和SRTCP默认的加密算法是AES,攻击者虽然无法解密数据,但可以伪造或重放以前发送的数据。因此,SRTP标准还提供了确保数据完整性和安全性的方法。

SDP 🔗

SDP(Session Description Protocol)是用于描述媒体信息的协议,以文本格式描述终端功能和首选项。

SDP广泛用于会话启动协议(SIP)、RTP和实时流协议(RSP)。