RTC、UDP、TCP和HTTP以及直播等区别
RTC的技术原理
下面用“一张图 + 三句话”把 RTC(Real-Time Communication)的技术原理一次讲清,并给出 WebRTC 视角的完整数据流动图。
一、一张图(文字版)
复制
信令通道(任意协议) 媒体通道(UDP/RTP)
┌──────────┐ ┌──────────┐
│ Caller │◀───────────▶│ Callee │
└────┬─────┘ └────┬─────┘│Signaling │STUN/TURN▼ ▼
┌──────────┐ ┌──────────┐
│Signaling │ │ICE/SDP │
│Server │ │NAT穿透 │
└──────────┘ └──────────┘
二、三句话速记
RTC = 低延迟的音视频 + 任意数据
目标:端到端平均延迟 < 100 ms,肉眼无感知。三大核心协议
RTP/RTCP:承载/控制媒体流
ICE + STUN/TURN:NAT 穿透与选路
SDP:会话描述(编解码器、分辨率、码率等)
四步建立连接
① 信令交换(WebSocket/HTTP)→ ② ICE 候选收集 → ③ 连通性检测(STUN/TURN)→ ④ SRTP 加密传输
三、分步详解(以 WebRTC 为例)
表格
复制
阶段 | 动作 | 关键协议/算法 | 目的 |
---|---|---|---|
1. 信令 | 双方交换 SDP、ICE 候选 | WebSocket/HTTP | 协商媒体格式与网络地址 |
2. 穿透 | 收集本地/反射/中继候选 | ICE + STUN/TURN | 找到可达路径 |
3. 选路 | 连通性检测 + 优先级排序 | ICE Controlling/Controlled | 选最低延迟路径 |
4. 传输 | 发送 RTP 包 + 周期性 RTCP 报告 | RTP/RTCP over UDP | 实时音视频 + 丢包/抖动统计 |
5. 安全 | SRTP 加密 + DTLS 握手 | DTLS-SRTP | 防窃听、防篡改 |
四、关键技术点
NACK + FEC:丢包时优先重传,大丢包用前向纠错补包。
Jitter Buffer:接收端缓冲 50-200 ms,消除网络抖动。
GCC/BBR:带宽估计算法,动态调整码率,防止拥塞。
Simulcast/SVC:多分辨率并发,弱网自动降档。
SFU/MCU:服务器只转发/混流,减轻终端编解码压力。
五、一句话总结
RTC 的核心就是 用 UDP 打洞建立 P2P 通道,再通过 RTP/RTCP + 拥塞控制 + 抗丢包算法 把音视频压到 100 ms 以内传过去,无需插件,浏览器即可点对点通话。
RTC与TCP、UDP还有HTTP的区别
特性 | RTC (WebRTC) | UDP | TCP | HTTP |
---|---|---|---|---|
核心目标 | 超低延迟实时音视频 | 最小延迟、无序数据报 | 可靠字节流 | 超文本传输 |
传输层 | UDP + RTP/RTCP | 裸 UDP | 裸 TCP | TCP |
延迟 | < 100 ms 端到端 | 极低 | 中等(重传+拥塞) | 高(三次握手+TLS) |
可靠性 | 应用层抗丢包(NACK/FEC) | 不保证 | 完全可靠(重传) | 完全可靠 |
顺序 | 允许乱序(时间戳排序) | 乱序 | 严格顺序 | 严格顺序 |
拥塞控制 | GCC/BBR(带宽探测) | 无 | TCP 拥塞控制 | TCP 拥塞控制 |
连接建立 | ICE + DTLS(P2P打洞) | 无连接 | 三次握手 | TCP+TLS握手 |
典型端口 | 任意 UDP(TURN中继) | 任意 | 80/443 | 80/443 |
用途 | 视频通话、直播、游戏 | DNS、SNMP、QUIC | 文件、数据库 | Web、API |
浏览器支持 | 原生 WebRTC | WebRTC 内部使用 | WebSocket 基于 TCP | XMLHttpRequest / fetch |
一句话记忆
RTC = 用 UDP 跑实时流,自己解决丢包和顺序;
TCP/HTTP = 用可靠流跑文件,延迟高但绝不丢字节。
直播用的协议是什么协议
国内主流直播 = RTMP 推流 + HTTP-FLV / HLS 拉流;低延迟场景用 WebRTC-RTP,新兴协议 SRT 也在兴起。
一、推流端(主播 → 服务器)
表格
复制
协议 | 传输层 | 典型延迟 | 场景 | 备注 |
---|---|---|---|---|
RTMP | TCP | 1–3 s | 手机/PC 推流 | 最成熟,所有云厂商都支持 |
SRT | UDP | 0.5–1 s | 专业导播、无人机 | 基于 UDT,抗丢包更好 |
WebRTC | UDP | < 500 ms | 连麦、互动直播 | 浏览器直接推流,用 SRTP |
大疆无人机、导播台已同时支持 RTMP + SRT。
二、播放端(服务器 → 观众)
表格
复制
协议 | 传输层 | 延迟 | 终端兼容 | 说明 |
---|---|---|---|---|
HTTP-FLV | TCP | 1–3 s | App/PC H5 | 浏览器用 flv.js 即可播,手机端最常用 |
HLS | HTTP | 10–30 s | 全平台原生 | m3u8 + ts 切片,iOS 原生支持,适合做回放 |
WebRTC | UDP | < 500 ms | 浏览器/App | 连麦、超低延迟直播,需要 SRTP + ICE |
RTMP | TCP | 1–3 s | Flash/App | 浏览器已淘汰,仅限 App 内播 |
三、一张图(文字版)
复制
主播手机 ──RTMP/FLV──▶ 云服务器 ──HTTP-FLV──▶ 观众 App│ ├─HLS(m3u8)──▶ 观众 Safari│ └─WebRTC──▶ 观众网页连麦
四、一句话记忆
推流用 RTMP,秒级看 FLV,跨平台用 HLS,超低延迟上 WebRTC。