面试装逼指南——基于RTP/RTCP的无线视频传输自适应带宽控制

RTP协议是IP网络中针对实时业务的一种传输协议,一般构架在UDP协议之上。另外,它也是一个数据封装协议,实时业务数据封装于RTP包的数据域中。

RTP协议的设计目的是提供实时数据传输中的时间戳信息及各数据流(/视频等)同步功能

  • RTP提供序列号(Sequence Number)以恢复数据包的顺序,实现丢包检测,为实时传输提供网络拥塞等信息;
  • 提供时间戳(Timestamp)用于媒体同步,使接收端按正确的速率回放数据;
  • 提供同步源标志(Source Identification)使接收端有可能获得有关发送方的信息。

RTCP控制包共有五种类型,其中用于提供QoS反馈的有两种:发送端报告(Sender Report , SR)和接收端报告(Receiver Report ,RR) 。前者描述发送端的发送和接收统计数据;后者描述接收端的接收统计数据。这些统计数据包括发送包数、发送字节数、累计丢包数、已收报文的最大序列号、到达时间间隔抖动等

2、基于RTP/RTCP的控制理论基础及控制模型

λ为当前丢包率,λc为丢包率下限,λl为丢包率上限。

当λ>λc,网络拥塞;

当λ<λl,网络空闲;

当λl=<λ<=λc,网络负载适中

当网络拥塞时,降低发送速度,当网络空闲时,可适当提升发送速度。控制模型如下:

面试装逼指南——基于RTP/RTCP的无线视频传输自适应带宽控制1

3、反馈控制算法

我们采取基于RTP协议的端到端反馈拥塞控制策略。接收端根据RTP数据包的接收情况生成RTCP接收报告RR ,周期性地向发送端反馈此RTCP,通告发送端当前的网络状况。发送端根据反馈的信息采取相应的控制算法调节输出码率,从而实现拥塞控制。我们利用某段时间内的丢包率作为判断网络是否拥塞的标准。发送端根据RTCP反馈包中的信息可计算出丢包率。

为了防止QoS抖动,我们使用下述低通滤波器对丢,包率λ进行平滑处理:

λ=aλ+ (1-a)b(λ为最新计算出的丢包率,b为当前使用中的丢包率,a为权重(0<1<>)。我们设置两个门限值λc ,λl,根据平滑后的丢包率λ,作如下估计:<1<>

当λ>λc,网络拥塞;

当λ<λl,网络空闲;

当λl=<λ<=λc,网络负载适中

MaxRate/ MinRate是发送端最大/最小输出比特率; Speed0 是初始速率;Step是速率的线性增量;β是乘性减小因子。我们采取下述反馈控制算法:

●发送端

(1)按初始速率Speed0发送数据

Speed : = Speed0 ;(MinRateSpeedMaxRate)

(2)根据接收端反馈的RTCP包中的信息计算出丢包率,平滑处理后进行网络负载判断并调整输出码率:

if (λ>λc)

  Speed = max{(β*Speed) ,MinRate} ;

Else if (λ<λl)>

  Speed = min{( Speed + Step) ,MaxRate}

Else

Speed = Speed

●接收端

每收到N个数据包或最多5s发送一RTCP反馈包至发送端,其中包含从发出上一个反馈包到发送此包期间内的QoS信息。此反馈拥塞控制策略能使整个H264视频传输系统实时监视带宽的变化,动态地改变输出码率,充分利用当前带宽。当网络拥塞时,发送速率乘性减小,降低对所需带宽的要求,同时设置一最小发送码率MinRate ,保证发送端所需的最小带宽;当网络空闲时,线性增加发送码率,同时设置一最大发送码率MaxRate ,保证发送端不会过度占用资源;当网络负载正常时,不作任何调整。由于发送端采取类似TCP拥塞控制中的AIMD策略(Addictive Increase ,Multiplicative Decrease) ,它可以进一步缩短实时传输系统处于拥塞状态下的时间,进一步降低丢包率和时延,为用户提供良好的服务质量,并且保证了同其它协议的数据流竞争带宽的公平性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值