Webrtc通道协议总览图

WebRtc媒体建立流程图

SCTP:
当我们在网上搜索SCTP时,会看到相关的描述,将SCTP介绍为与UDP,TCP同一层次的传输层协议。最早STCP是把窄带7号信令的可靠性传输机制引入到IP协议、优化TCP协议的不能分帧传输的局限性提出来的,不过后来应用不是很广泛。在WebRTC中实现数据通道使用的SCTP是基于改良剪切版的,有两个草案描述了该改良版本《draft-ietf-rtcweb-data-channel-13》、《draft-ietf-rtcweb-data-protocol-09》(此处描述来源于webrtc数据通道之SCTP over DTLS简介)。WebRTC要求使用SCTP必须开启DTLS,协议的分层图如上图:可以得知WebRTC中的SCTP实际上是基于UDP在应用层提供的相关实现,而非常规意义上的OSI模型中的传输层。

DTLS:
DTLS(Datagram Transport Layer Security) 的作用:给数据通道数据加密(保证数据安全性)、增加链路证书校验机制(防止网络攻击),提供了 UDP 传输场景下的安全机制,能防止窃听、篡改、冒充等问题。在 WebRTC中使用 DTLS 的地方包括两部分:
1、datachannel数据通道,在datachannel数据通道中,webrtc完全使用dtls来进行协商和加解密
2、MediaChannel媒体通道,在媒体通道中,webrtc使用srtp来进行数据的加解密,dtls的作用仅仅用来做密钥交换,RTP/RTCP的书为了与历史设备兼容性考虑,完全通过SRTP来实现
dtls交互流程如下:

Webrtc 中DTLS的参数
WebRTC 中的 DTLS 参数需要通过 SDP 信息来设置和传递,而且只需要两种 a line 表示:

a=setup
a=fingerprint
a=setup 表示 DTLS 的协商过程中角色,有三个可能值:
a=setup:actpass 既可以是 client 角色,也可以是 server 角色
a=setup:active client 角色
a=setup:passive server 角色
根据 RFC5763,SDP请求的 a=setup 属性必须是 actpass,由应答方决定谁是 DTLS client,谁是 DTLS server。
a=fingerprint 的内容是证书的摘要签名,用于验证证书的有效性,防止冒充。

SRTP:
通过 DTLS 协商后,RTC 通信的双方完成 MasterKey 和 MasterSalt 的协商。接下来,我们继续分析在 WebRTC 中,如何使用交换的密钥,来对 RTP 和 RTCP 进行加密,实现数据的安全传输。
RTP/RTCP 协议并没有对它的负载数据进行任何保护。因此,如果攻击者通过抓包工具,如 Wireshark,将音视频数据抓取到后,通过该工具就可以直接将音视频流播放出来,这是非常恐怖的事情。
在 WebRTC 中,为了防止这类事情发生,没有直接使用 RTP/RTCP 协议,而是使用了 SRTP/SRTCP 协议 ,即安全的 RTP/RTCP 协议。WebRTC 使用了非常有名的 libsrtp 库将原来的 RTP/RTCP 协议数据转换成 SRTP/SRTCP 协议数据。
SRTP 要解决的问题:
・对 RTP/RTCP 的负载 (payload) 进行加密,保证数据安全;
・保证 RTP/RTCP 包的完整性,同时防重放攻击。
SRTP/SRTCP 结构
SRTP结构:**
从 SRTP 结构图中可以看到:

  1. 加密部分 Encrypted Portion,由 payload, RTP padding 和 RTP pad count 部分组成。也就是我们通常所说的仅对 RTP 负载数据加密。
  2. 需要校验部分 Authenticated Portion,由 RTP Header, RTP Header extension 和 Encrypted Portion 部分组成。
    通常情况下只需要对 RTP 负载数据进行加密,如果需要对 RTP header extension 进行加密,RFC6904 给出了详细方案,在 libsrtp 中也完成了实现。

SRTCP 结构
文中部分引用来源:
https://blog.csdn.net/aggresss/article/details/108019570
https://blog.csdn.net/alitech2017/article/details/118089200

webrtc-dtls、sctp、srtp相关推荐

  1. OFDM、FTTx、SCTP、Ad Hoc、WSN术语简介

    上课提到一些术语,下来查了一下,总结在这里. OFDM: OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(M ...

  2. [架构之路-43]:目标系统 - 系统软件 - Linux下的网络通信-3-TCP/IP协议族:IP、TCP/UDP/SCTP、Socket、应用层协议

    目录 第1章 TCP/IP协议简介 1.1 简介 1.2 协议栈 1.3 IP网络 第2章 IP协议 2.1 简介 2.2 IP功能 2.4 IP V4地址 2.5 IP V6地址 2.6 IPV4地 ...

  3. 计算机网络协议(IP、TCP、UDP、HTTP)

    1.计算机网络发展 与其说计算机改变了世界,倒不如说是计算机网络改变了世界.彼时彼刻,你我都因网络而有了交集,岂非一种缘分? 计算机与网络发展大致经历如下过程: 2.计算机的模式变化 起初的计算机主要 ...

  4. 低延迟流媒体协议SRT、WebRTC、LL-HLS、UDP、TCP、RTMP详解

    低广播延迟已经成为任何关于建设源端站和CDN的招标和竞争中的必要特性.以前这种标准只适用于体育广播,但现在运营商要求每个领域的广播设备供应商提供低延迟,比如:广播新闻.音乐会.表演.采访.谈话节目.辩 ...

  5. 实时视频直播客户端技术盘点:Native、HTML5、WebRTC、微信小程序

    1.视频直播客户端技术之Native APP 原生 APP 终端音视频引擎的结构框图如下,基本包括了音频引擎.视频引擎和网络传输,合称实时语音视频终端引擎.这里还包含底层的音视频采集和渲染,还有网络的 ...

  6. webrtc下的媒体网络连接STUN、TURN、UDP、TCP

    一.理想的网络 媒体流创建流程: 1. PeerA.PeerB分别把自己的IP地址(包含端口号)和媒体能力(本地能支持的音视频编解码类型)告诉信令服务器. 2. 信令服务器对媒体能力进行协商,找到一组 ...

  7. Akamai首席架构师Will:WebRTC、QUIC、DASH、AV1都前景可观

    William Robert Law是Akamai媒体业务群的首席架构师,自从去年邀请他参加LiveVideoStackCon 2017后,我们就亲切的称他Will.在对他的邮件采访中,他谈到了中美科 ...

  8. 《深入浅出DPDK》读书笔记(十):硬件加速与功能卸载(VLAN、IEEE1588、IP TCP/UDP/SCTP checksum、Tunnel)

    Table of Contents 109.硬件卸载简介 110.网卡硬件卸载功能 111.DPDK软件接口 接收侧: 发送侧: 112.硬件与软件功能实现 113.VLAN硬件卸载 1. 收包时VL ...

  9. Android WebRtc 桌面投屏、视频源码

    Android WebRtc 桌面投屏.视频源码 Android/iOS/PC/Web 四大平台,可以说Android/Web得天独厚,几乎被Google给完全封装,C端只需建立好信令,架设好webs ...

最新文章

  1. java 导出csv 格式,java导出csv格式文件的方法
  2. 百度牵头,全球首个面向商业化运营的Robotaxi技术标准正式发布
  3. LiveVideoStackCon 2022 上海站 专题抢先看(3)
  4. 【重大修改】动态时间规整(Dynamic Time Warping)
  5. 基于gstreamer的支持动态获取多路流的rtsp server(笔记)
  6. Android studio中常用快捷键
  7. 用三张图宏观把握数据库
  8. Python 完整学习路线,非常赞!
  9. 从零基础入门Tensorflow2.0 ----一、2. 实战回归模型
  10. MongoDB密码设置(基于windows)
  11. Simulink视频和图像处理模块介绍
  12. 诸如zxing二维码调用摄像头旋转角度问题解决方法
  13. 58域内路由和域间路由
  14. 本地通用验证码识别DLL/通用滑块识别/文字点选/图标点选/OCR文字识别/本地识别DLL
  15. sqlserver 数据误删除恢复
  16. 在Ubuntu中出现权限不够和找不到文件的解决方法
  17. Ansible 部署的时候提示错误 SSH password instead
  18. 二项分布和泊松分布,二者的关系
  19. java时间戳是什么类型_java 获取时间戳的三种方式
  20. 家用计算机相比工控机优点,具体分析工控机比一般的PC的优势

热门文章

  1. 经济型EtherCAT运动控制器(八):轴参数与运动指令
  2. 机房收费系统(一)-前期准备
  3. 应用统计432考研复试复试提问总结精简版【一】
  4. 电影的堕落? 社会的堕落?
  5. 知识||热电偶与热电阻的安装方法
  6. 搜索引擎提交入口汇总
  7. .NET Core 使用 log4net
  8. 东北师范大学计算机考研参考书,东北师范大学(专业学位)计算机技术考研参考书目...
  9. SDN交换机的拓扑发现与ARP处理
  10. bullmind在线思维导图软件,bullmind在线流程图软件