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

相关推荐
ZEGO即构开发者21 小时前
【ZEGO即构开发者日报】Soul AI Lab开源播客语音合成模型;腾讯混元推出国内首个交互式AI播客;ChatGPT Go向用户免费开放一年......
人工智能·aigc·语音识别·实时音视频
wit_yuan21 小时前
linux udp广播数据包实际用例
linux·服务器·udp
沧澜sincerely1 天前
互联网的路由选择协议
网络·tcp/ip·智能路由器
拾忆,想起1 天前
TCP粘包拆包全解析:数据流中的“藕断丝连”与“一刀两断”
java·网络·数据库·网络协议·tcp/ip·哈希算法
wsx_iot1 天前
TCP/IP 五层协议栈
网络·网络协议·tcp/ip
无聊的小坏坏1 天前
基于 TCP 线程池服务器封装 HTTP 服务器:从协议解析到适配落地
服务器·tcp/ip·http
进击的圆儿1 天前
TCP可靠传输的秘密:从滑动窗口到拥塞控制
网络·网络协议·tcp/ip
图图图图爱睡觉1 天前
主机跟虚拟机ip一直Ping不通,并且虚拟机使用ifconfig命令时,ens33没有ipv4地址,只有ipv6地址
服务器·网络·tcp/ip
wow_DG1 天前
【运维✨】云服务器公网 IP 迷雾:为什么本机看不到那个地址?
运维·服务器·tcp/ip
在坚持一下我可没意见2 天前
HTTP 协议基本格式与 Fiddler 抓包工具实战指南
java·开发语言·网络协议·tcp/ip·http·java-ee·fiddler