TCP AIMD Algorithm (copy)
来源:互联网 发布:伟大的渺小 知乎 编辑:程序博客网 时间:2024/06/16 01:28
什么是流控(Flow Control)?
流控关注的是如何动态的调整源端的发送速率,以使网络资源得到充分的利用,同时又不发生拥塞。因此,流控是一种在相互竞争的源端之间合理的分配有限的网络资源的机制。
什么是最优化流控(Optimal Flow Control)?
最优化流控试图从优化理论的角度研究并解释流控问题。它将流控机制看作是一种求解凸规划问题的分布式算法。
流控的要点是什么?
- 效率:流控算法应当使得网络资源得到充分的利用;
- 公平:使用网络资源的各个用户之间应当满足某种公平性的原则,尽可能减小资源分配的不平衡;
- 扩展能力:算法应当对不同规模的网络都有较好的适应能力,不会因为网络规模的增加而无法应用。这要求算法必须是分布式的。
- 动态性能:流控算法将在一个复杂的时变环境下应用,所以算法不能是静态的,它必须有良好的动态性能。一般情况下,动态性能包括两方面:稳定性和响应速度。
什么是TCP?
TCP是Internet的流控机制。TCP协议的基本思想是源端通过线性增加发送速率来探测网络的剩余容量,与此同时,当检测到拥塞的时候乘性的减少其发送速率。
以TCP Tahoe为例,它的基本过程如下:首先,每个连接小心的从单个包的窗口大小开始发送,每收到一个确认包,窗口大小即增加1。这样实际上每个RTT(Round Trip Time)时间窗口大小加倍。这就是通常所说的TCP“慢启动阶段”。当窗口大小达到某个阈值,源端即进入“拥塞避免”阶段,在这个阶段只有接收到窗口内的全部确认包,窗口大小才会增加1。这样每个RTT时间窗口大小只增加1,这就是所谓的加性增长。而这个决定何时由“慢启动”进入“拥塞避免”的阈值本身即意味着网络的可能容量,它会根据检测到丢包的情况做相应的调整。一旦检测到丢包,源端即设定这一阈值为此刻窗口大小的一半,重传丢包,并再次进入“慢启动”阶段。
什么是AIMD原理?
AIMD原理说明了TCP过程将会收敛到一个同时满足效率和公平性的平衡点上。
考虑仅有两个用户和一个瓶颈的系统。系统状态可以用下图表示。同时任意一点表示系统分配给用户1和用户2的资源(即用户可使用的发送速率)。当x1+x2=X时,系统效率最高。对应于图中的一条线段,称为效率线。当x1=x2时,系统公平性最高,对应图中的公平线。公平线和效率线的交点为系统的控制目标,称为最优点。与效率线平行的直线,效率为一定值,称为等效率线。过原点的任何一条直线,其公平性相同,称为等公平线。效率线上方为过载区,下方为轻载区。
假设两用户按照某种节拍同步动作,且遵循同样的规则。当发生丢包时,同时降低速率,否则同时升高速率,考虑以下几种速率升降的方式:
加性增(AI):x(t+1)=x(t)+A, A>0
加性减(AD):x(t+1)=x(t)-B, B<0
乘性增(MI):x(t+1)=C*x(t), C>1
乘性减(MD):x(t+1)=D*x(t), D<1
从图中可以看出,AI和AD的轨迹为45度的直线。AI使公平性增加,同时向过载区移动。AD使公平性降低,同时向轻载区移动。
MI和MD的轨迹为过原点的直线。MI和MD在等公平线上移动,故保持公平性不变。MI使轨迹向过载区移动,而MD使轨迹向轻载区移动。
如下图所示,AIMD过程的结果将收敛到效率线和公平线的交点。所以,TCP通过加性增乘性减完成了一种兼顾效率和公平的资源分配。
研究方向
-流控和多径路由的联合优化
基于优化流控的框架,Han研究了多径路由问题。他们提出了一种源端算法用于在源端和目的端之间最优的分割流量。
-流控和物理层功率控制的联合优化
Mung Chiang研究了链路速率是干扰受限的多跳无线自组织网络。他提出了一种分布式的功率控制算法,该算法通过与TCP协作,提高了端到端的吞吐量和网络的能量的利用率。
主要参考文献
[routing-cross-layer] Han, H., Shakkottai, S., Hollot, C.V., Srikant R., Towsley, D.: Overlay TCP for Multi-Path Routing and Congestion Control. ENS-INRIA ARC-TCP Workshop, Paris, France, (2003)
[physical-cross-layer] Mung Chiang. To Layer or Not To Layer: Balancing Transport and Physical Layers in Wireless Multihop Networks. INFOCOM 2004
- TCP AIMD Algorithm (copy)
- TCP的AIMD(加性增窗、乘性减窗)策略
- STL algorithm之copy
- TCP拥塞控制——慢开始与拥塞避免AIMD
- STL algorithm算法copy(6)
- 5.7 TCP receive copy offload
- 算法之旅,直奔<algorithm>之五 copy
- Algorithm
- Algorithm
- algorithm
- algorithm
- algorithm
- algorithm
- algorithm
- Algorithm
- Algorithm
- algorithm
- Algorithm
- 虚拟shell终端程序
- 可配置权限的图形用户界面框架的分析(1)
- 相交圆误差问题
- ubuntu安装/卸载软件的基本命令
- Windows WIM文件的分割,合并,瘦身操作
- TCP AIMD Algorithm (copy)
- 系统程序员成长计划-谁动了你的隐私(下)
- 从今天开始入住CSDN博客了
- 美国:一半员工不敬重自己的老板
- 晨会纪要081103
- 深入浅出浮点数
- Groovy探索之MOP 二 对类属性的各种操作
- GridView固定表头的方法两则
- 在ASP.NET中使用Response.ContentType="类型名";来确定输出格式