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

相关推荐
YouEmbedded9 小时前
解码UDP
linux·udp
q***160815 小时前
IP地址、子网掩码(NETMASK)和网关(Gateway)
tcp/ip·gateway·智能路由器
RocketJ15 小时前
TCP、Telepathy 和 HTTP 三者关系
网络协议·tcp/ip·http
00后程序员张21 小时前
iOS 抓不到包怎么办?从 HTTPS 解密、QUIC 排查到 TCP 数据流分析的完整解决方案
android·tcp/ip·ios·小程序·https·uni-app·iphone
罗汉松(山水白河)1 天前
关于串口与UDP通讯的实验
单片机·嵌入式硬件·网络协议·udp·tcp·串口、
凉晓风1 天前
Linux上TCP通信异常排查工具命令
linux·运维·tcp/ip
fei_sun1 天前
【复习】计网每日一题1124---UDP首部检验和计算、检验和特殊含义
网络·网络协议·udp
bug总结2 天前
基于 TRTC 打造uniapp微信小程序实时音视频对讲
实时音视频
s09071362 天前
ZYNQ DMA to UDP 数据传输系统设计文档
网络协议·fpga开发·udp
hazy1k2 天前
ESP32基础-Socket通信 (TCP/UDP)
c语言·单片机·嵌入式硬件·网络协议·tcp/ip·udp·esp32