RTC、UDP、TCP和HTTP以及直播等区别

RTC的技术原理

下面用"一张图 + 三句话"把 RTC(Real-Time Communication)的技术原理一次讲清,并给出 WebRTC 视角的完整数据流动图。


一、一张图(文字版)

复制

复制代码
信令通道(任意协议)     媒体通道(UDP/RTP)
┌──────────┐             ┌──────────┐
│  Caller  │◀───────────▶│ Callee   │
└────┬─────┘             └────┬─────┘
     │Signaling              │STUN/TURN
     ▼                        ▼
┌──────────┐             ┌──────────┐
│Signaling │             │ICE/SDP   │
│Server    │             │NAT穿透   │
└──────────┘             └──────────┘

二、三句话速记

  1. RTC = 低延迟的音视频 + 任意数据

    目标:端到端平均延迟 < 100 ms,肉眼无感知。

  2. 三大核心协议

    • RTP/RTCP:承载/控制媒体流

    • ICE + STUN/TURN:NAT 穿透与选路

    • SDP:会话描述(编解码器、分辨率、码率等)

  3. 四步建立连接

    ① 信令交换(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 防窃听、防篡改

四、关键技术点

  1. NACK + FEC:丢包时优先重传,大丢包用前向纠错补包。

  2. Jitter Buffer:接收端缓冲 50-200 ms,消除网络抖动。

  3. GCC/BBR:带宽估计算法,动态调整码率,防止拥塞。

  4. Simulcast/SVC:多分辨率并发,弱网自动降档。

  5. 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

相关推荐
asdfg12589635 小时前
如何判断一个地址是否可以用作主机 IP 地址?
服务器·网络·tcp/ip
ytttr8736 小时前
C语言实现Modbus TCP/IP协议客户端-服务器
服务器·c语言·tcp/ip
安防视频中间件/视频资源汇聚平台6 小时前
华为结构化摄像机接入到SVMSPro平台操作流程
华为·信息可视化·实时音视频·svmspro
迷枫7126 小时前
19.1 TCP 和 UDP 有什么区别?
网络·tcp/ip·udp
deng-c-f9 小时前
Linux C/C++ 学习日记(24):UDP协议的介绍:广播、多播的实现
linux·网络·学习·udp
悟能不能悟11 小时前
电脑没法ping通某个网段的ip
网络协议·tcp/ip·电脑
duration~12 小时前
UDP 首部
网络·网络协议·udp
迎風吹頭髮12 小时前
Linux服务器编程实践20-TCP服务 vs UDP服务:核心差异对比
linux·服务器·tcp/ip
周杰伦_Jay12 小时前
【计算机网络三层深度解析:应用层、传输层与网络层】HTTP、TCP、UDP、IP、ICMP、ARP
tcp/ip·计算机网络·http