WebRTC基本概念

前言

在这里记录一些 WebRTC 的基本概念。

传输相关

什么是STUN

STUN(Simple Traversal of UDP Through NATs)其作用是进行 NAT 类型判定,对于可以穿越的 NAT 类型进行UDP穿越。

什么是 TURN

TURN(Traversal Using Relays around NAT),其主要作用是通过服务端进行数据转发。

REMB

REMB (Receiver Estimated Maximum Bitrate ),用于估算网络带宽。

RTCP

RTCP(The RTP Control Protocol ),RTP 控制协议。通常用于报告 RTP数据的接收与发送数据的统计报告。

RTP

RTP(Real-time Transport Protocol ),一种网络传输协议,在 UDP 之上,通常用于音视频数据的传输。

GCC

GCC(Google Congestion Control),google提出一套拥塞控制算法,主要有两种:一种是通过丢包率计算拥塞,另一种是通过时延计算拥塞。

WebRTC逻辑相关

在WebRTC中包括了 Stream, Track 和 channel 的概念。

Track

Track(轨), 轨是 WebRTC 中借鉴了其它多媒体相关的概念。轨的特性大家都非常清楚,两条轨是永远不会相交的。轨用在多媒体中,表式的是每条 "轨" 数据都是独立存在的,不会与其它 "轨" 相交。如音频轨,视频轨。

Stream

在 WebRTC中分为媒流(MediaStream)和数据流(DataStream)。对于 MediaStream是一个多条轨的集合,在它里面包括了一个终端的音频转和视频轨。

Channel

Channel 是传输层面的概念,也就是音视频数据最终要交由 channel 传送出去。而 channel 最终会交由socket将数据发送出来。了为解耦 stream与socket,所以增加了channel 的概念。