WebRTC基本概念
- 2020 年 4 月 2 日
- 筆記
前言
在這裡記錄一些 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 的概念。