深入理解TCP发送速率控制协议

    TCP Friendly Rate Control(TFRC),是网络环境下单播流的一种拥塞控制机制。对于TCP流,它是公平竞争带宽的。但是与TCP相比,吞吐量随时间的变化要小得多,也就是对带宽变化的响应比TCP慢,使其更适用于电话通信、流媒体等需要相对平滑发送速率的应用。因此,TFRC仅用于需要平滑吞吐量时,尤其是避免TCP响应单个丢包而将发送速率减半。推荐使用TCP发送尽可能多的数据包,或者不需要可靠机制,可以使用加法增加、乘法减小(AIMD)的拥塞控制方案,与TCP使用的参数类似。TFRC是为发送固定大小的数据包的应用程序而设计,以改变每秒发送包数来响应拥塞。但是,一些音频应用需要固定的发送时间间隔,改变发送数据包大小代替改变发送数据包数量,来响应网络拥塞。TFRC是基于接收方的机制,通过数据接收方来计算拥塞控制信息而不是发送方。

在介绍协议之前,先探讨几个相关问题,以便我们带着问题寻找答案。

1)如何计算TCP发送速率,由哪些参数构成;

2)什么是往返时间,如何计算;

3)根据什么信息来改变发送速率,如何改变发送速率;

4)数据包的序列号如何变化的,重传包序列号与丢失包序列号是否相同;

5)如何判定为丢包事件;

6)拥塞控制机制是否安全,会不会受到攻击;

1.协议机制

    对于拥塞控制机制,TFRC直接使用允许发送速率的吞吐量方程作为丢包率和往返时间(RTT)的函数,为了TCP的公平竞争,TFRC使用吞吐量方程,它把TCP发送速率粗略地描述为丢包率、往返时间和数据包大小的函数。我们将丢失事件定义为来自数据窗口的一个或多个丢失/标记的数据包,其中标记数据包是指显示拥塞通知(ECN)的拥塞指示。拥塞控制机制工作原理如下:

① 接收方测量丢包率并反馈给发送方;

② 发送方根据反馈信息计算往返时间RTT;

③ 丢包率和RTT输入到吞吐量方程,给出合理的传输速率;

④ 发送方调整发送速率来匹配目标发送速率;


1.1 吞吐量方程

    TCP吞吐量方程必须反映超时重传的行为,因为它在更高丢包率下控制TCP吞吐量。接下来介绍的是TCP的Reno精简版的吞吐量方程。我们更倾向于选择基于SACK的TCP吞吐量方程,虽然目前为止没有人推导出基于SACK的吞吐量方程,但是综合仿真与实验,两者之间差异很小。吞吐量方程如下:

                            s

X = --------------------------------------------------------------

R*sqrt(2*b*p/3) + (t_RTO * (3*sqrt(3*b*p/8) * p * (1+32*p^2)))

其中X为传输速率,单位是bytes/second;

s为数据包大小,单位是byte;

R为往返时间RTT,单位是second;

p为丢包率,范围在0~1之间;

t_RTO为重传定时器的时间,单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值