文章目录
之前写过一篇WebRTC带宽评估的文章 WebRTC系列-- 带宽估计参数及限制编码器编码码率流程,这篇文章主要介绍设置参数对WebRTC带宽评估接口的影响以及带宽评估后的结果对于音视频编解码器码率的影响;以这篇文章为开篇,接下来重点开始分析WebRTC中的网络模块中的重点拥塞控制及带宽评估;
webrtc版本:M76
1. 一些基本概念
1.1 协议选择
无论是OSI七层模型还是TCP/IP四层模型在 传输层主要有两种协议:TCP, UDP;这两个协议是由操作系统提供实现提供socket接口调用(当然也可以通过原始socket「SOCK_RAW」实现或自定义传输层协议,两个协议简介如下:
- TCP 是面向连接的具有流量及拥塞控制的可靠传输协议,为数据传输的完整性和有序性提供了保障;
- UDP 是无连接的不可靠传输协议,数据传输的可靠性完全交由应用层处理。
其中UDP作为音视频首选传输协议,基本已经作为业界共识;
1.2 拥塞的原因现象
当网络中某一个子网中某一部分需要处理的分组数量过多,使得该部分的网络设备来不及处理这些分组,如果后续还有大量的分组加入,就会导致当前部分网络甚至是整个网络的性能下降;
网络一旦发生拥塞的直接影响是分组突发丢包或者突发抖动&