第 5 章 安全传输与数据通道


文档摘要

第 5 章 · 安全传输与数据通道 章节摘要:这是接通的最后一道关。通路打通之后还不能立刻说「正事」:双方要先通过 DTLS 握手验明身份、协商出只有彼此知道的密钥,媒体才以 SRTP 形态加密开讲;非媒体数据则走同一条加密隧道里的数据通道。本章拆开加密传输的每一层——密钥从哪来、RTP 包里有什么、丢包乱序谁来管、数据通道怎么用——让你对「画面为什么会花、声音为什么断续、消息为什么乱序」这些日常问题有协议级的解释力。 学习目标 读完本章,你应当能够: 描述 DTLS 握手在 WebRTC 里的特殊角色:验身份、出密钥、通数据通道; 解释 SRTP 密钥导出机制,说清为什么密钥不经过信令通道; 读懂 RTP 包头的关键字段:序号、时间戳、载荷类型与同步源;

第 5 章 · 安全传输与数据通道

章节摘要:这是接通的最后一道关。通路打通之后还不能立刻说「正事」:双方要先通过 DTLS 握手验明身份、协商出只有彼此知道的密钥,媒体才以 SRTP 形态加密开讲;非媒体数据则走同一条加密隧道里的数据通道。本章拆开加密传输的每一层——密钥从哪来、RTP 包里有什么、丢包乱序谁来管、数据通道怎么用——让你对「画面为什么会花、声音为什么断续、消息为什么乱序」这些日常问题有协议级的解释力。

学习目标

读完本章,你应当能够:

  1. 描述 DTLS 握手在 WebRTC 里的特殊角色:验身份、出密钥、通数据通道;
  2. 解释 SRTP 密钥导出机制,说清为什么密钥不经过信令通道;
  3. 读懂 RTP 包头的关键字段:序号、时间戳、载荷类型与同步源;
  4. 说明 RTCP 的反馈职责:接收质量报告、丢包反馈与关键帧请求;
  5. 解释抖动缓冲的工作原理,以及它对延迟与流畅的权衡;
  6. 用 RTCDataChannel 实现可靠有序与不可靠两种模式的传输,并正确处理背压。

核心概念速览

这一关的本质是「在一条不可靠的 UDP 通路之上,重建出一个既安全又实时的传输体系」。安全由 DTLS-SRTP 体系完成:DTLS 握手用证书指纹验证身份,握手产物导出 SRTP 密钥,媒体加密传输。实时由 RTP 与 RTCP 承担:RTP 给每包媒体标上序号与时间戳,RTCP 把接收质量反馈回来。任意数据则由 SCTP over DTLS 的数据通道承载,可靠性可按消息逐条配置。

一句金句:ICE 找到的只是路,DTLS 确认了「对面是谁」,SRTP 才敢把话递出去——安全三件套环环相扣,少一件媒体就是裸奔。

子章节导航

5.1 DTLS 握手与 SRTP——安全的起点。DTLS 是 TLS 的数据报版本,在 WebRTC 里它身兼三职:验证身份、导出媒体密钥、承载数据通道。本节讲透握手流程、指纹比对的意义与 SRTP 密钥导出,顺带回答「中间人能不能听到通话」这个高频安全问题。

5.2 RTP 与 RTCP 传输内幕——媒体的轨道。RTP 包头十几个字段里真正重要的是序号、时间戳与载荷类型,它们支撑起丢包检测、播放同步与解码选择;RTCP 从对端把接收质量送回来。本节附一个用 DataView 解析 RTP 包头的实战例。

5.3 数据通道实战——媒体的兄弟。数据通道让任意消息复用加密隧道:可靠有序像 TCP,不可靠无序像 UDP,还能逐条定制。本节给出聊天、状态同步两类典型实现,并把 bufferedAmount 背压这个高频坑一次讲透。

子章节之间的逻辑关系

本章三节共用一条加密隧道,分工按数据类型展开:媒体、媒体反馈、任意数据。

5.1 DTLS 与 SRTP 5.2 RTP 与 RTCP 5.3 数据通道 ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ 握手与身份验证 │ │ 打包与同步 │ │ 建通道与模式 │ │ 密钥导出机制 │───▶│ 反馈与缓冲 │───▶│ 背压与生命周期 │ │ 中间人问题的答案 │ │ 解析实战 │ │ 两类典型实现 │ └────────────────┘ └────────────────┘ └────────────────┘ 先建安全通道 再跑媒体数据 顺带传任意数据

5.1 是前提:没有密钥,5.2 的每个 RTP 包都发不出去。5.2 是主体:媒体传输的质量反馈机制是第 6 章一切抗弱网手段的信息来源。5.3 复用 5.1 的加密成果,是媒体之外能力面的延伸。三节合看,WebRTC 在 UDP 上重建的「安全实时传输体系」就完整了。

前置知识与后续延伸

前置:需要第 4 章的 ICE 通路概念(本章一切传输都发生在这条通路上)、对「UDP 不可靠」的朴素理解(会丢、会乱序、不保证到达)。对称加密、摘要运算的概念会在用到时就地解释,不需要密码学背景。

后续:5.2 的 RTCP 反馈是第 6 章的命脉——带宽估计吃的是传输反馈,丢包恢复吃的是 nack 与 pli 请求。5.3 的数据通道在第 7 章的多方架构里承担控制面消息。建议学完本章做一个实验:用抓包工具观察一场本地通话,认出 DTLS 握手、SRTP 流与 STUN 保活包——看过一次,协议栈就不再是抽象图。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U