TFRC
应用程序
TFRC是用于固定数据包大小的应用程序,它根据网络环境的好坏,通过调整每秒钟发送的数据包数来调整数据传输速率
程序简介
TFRC: TCP-Friendly Rate Control(TCP友好速率控制算法)。
实时媒体流业务需要一个稳定的网络传输速率,以使其在播放端可以平稳流畅地播放,达到用户所期望的播放质量。当前Internet网的数据传输业务基本上都是基于TCP的。TCP采用速率减半的拥塞退避机制,这很容易引起数据流过大的速率波动,对多媒体的传输是非常不利的。研究表明在传输过程采用TCP/IP协议在用户较多时回放将发生延迟和不连续现象。而UDP不具备拥塞退避机制,在拥塞的网络环境中,UDP流将大量抢占TCP流的网络带宽,同时自身的丢包也迅速增加,并可能带来系统拥塞崩溃的潜在危险。因此,TCP与UDP协议都不能很好地满足实时媒体流业务的需要。随着Internet中多媒体实时业务的迅速增长,研究一个适合于多媒体传输,并具有拥塞退避机制,能够与TCP协议公平分享带宽的传输协议,成为了Internet传输的一个重要课题。
TFRC正是这样一种协议。它基于数学模型,由发送方根据网络环境调整数据流的发送速率,进而达到拥塞控制的目的。在同等条件下,TFRC流具有与TCP流近似相同的吞吐量,因此,可以“公平地”与TCP共享网络带宽。另一方面,TFRC吞吐量变化稳定、抖动较小,因此更加适合电话、流媒体等对传输速率的平滑性要求较高的应用。
拥塞控制机制
TFRC是基于接收方的机制,它在接收方计算拥塞控制信息,例如丢包事件率等。
TFRC的拥塞控制机制如下:
* 数据接收方测量丢包事件率p,然后将其与时间戳一起反馈给发送方;
* 发送方利用反馈信息中的时间戳测量回环时间RTT;
* 将丢包事件率p和RTT代入TFRC的吞吐量方程,经计算得到一个传输速率;
* 发送方然后根据这个计算得到的速率来调整其数据发送速率。
丢失事件率计算
在TFRC中,丢失事件率是由接收端完成。接收端对每个到达的分组和丢失的分组都进行记录。如果至少有三个序列号大于当前应到达的分组的序列号的分组到达,那么分组被认为丢失了。与TCP不同,如果一个分组延迟到达(在三个后续分组后到达),该延迟分组可填补TFRC的接收记录的间隙,接收端重新计算丢失事件率。
与TFRCP类似,是对丢失事件率的响应,同一个窗口内的多个分组丢失被记入同一丢失事件。这是通过获取丢失分组标称到达时刻得差值是否大于当前RTT估计值来判断的。如果二者之差小于当前RTT估计值,那么该分组丢失记入上一个分组丢失同一事件中,否则该分组被认为属于新的分组丢失事件。
在TFRC中,两个连续分组丢失事件的第一个分组序列号之差被称为丢失事件间隔。如果一个丢失事件A由序列号为S_A的分组开始,紧接着丢失事件由序列号为S_B的分组开始,那么丢失事件间隔定义为:I=S_B-S_A。
平均丢失间隔为对最近的n个丢失事件间隔进行加权移动平均所获得,n值大小决定了TFRC对拥塞的反应速度,n不大于8。设I_mean为计算获得的平均丢失间隔,那么丢失事件率为:p=1/I_mean。
参考资料
最新修订时间:2024-06-14 20:53
目录
概述
程序简介
参考资料