拥塞控制
为什么会发生拥塞?
网络中的拥塞来源于网络资源和网络流量分布的不平衡性,其根本原因是端系统提供给网络的负载大于网络资源容量和处理能力
网络拥塞导致的公平性问题
产生公平性的根本原因在于拥塞发生必然导致数据包丢失,而数据包丢失会导致各数据流之间为争抢有限的网络资源发生竞争,竞争能力强的数据流将到更多网络资源,从而损害了其他流的利益。
公平性问题表现在两方面:
- 拥塞响应的TCP流和非拥塞响应的UDP流之间资源享用不公平
- TCP流之间资源享用的不公平(不同的窗口尺寸,数据包大小,RTT)
有线网络中TCP拥塞控制
端到端的拥塞控制
TCP报文段的丢失(通过超时或3次冗余确认而得知)被认为是网络拥塞的一个迹象。也有将RTT增加看作是网络拥塞增加的指示
网络辅助的拥塞控制
使用AQM(主动队列管理)、ECN(显式拥塞指示),路由器直接发送阻塞分组给发送端。
TCP拥塞控制发展演进
- Tahoe 是 TCP 的早期版本,包括3 个最基本的拥塞控制算法:“慢启动” , “拥塞避免”和“快速重传”,“快速重传”根据 3 个重复的应答报文来判断报文的丢失,减少了超时重传的发生.
- Reno 在 Tahoe的基础上增加了“快速恢复”[25].“快速恢复”使用“管子”模型的“报文守恒”特性.发送方每收到一个重复的应答,就认为已经有一个报文离开网络,于是将发送方的拥塞窗口加一.
- NewReno 对 Reno中“快速恢复”算法进行了补充.它考虑了一个发送窗口内多个报文丢失的情况.在“快速恢复”算法中,发送方收到一个不重复的应答后就退出“快速恢复”状态.而在NewReno 中,只有当所有报文都被应答后才退出“快速恢复”状态.
- SACK 也关注一个窗口内多个报文的丢失,它使用“选择性重复”(selective repeat)策略.
- TCP Vegas通过观察TCP连接中RTT值改变感知网络是否发生拥塞,从而控制拥塞窗口大小
TCP拥塞控制改进研究点
- “慢启动”过程的改进
- 基于速率的控制策略
- 减少不必要的“超时重传”和“快速重传”
- ECN的使用
有线、无线、manet
有线网络对比无线网络及manet
网络拥塞判断
有线网络中链路可靠性高,主要是因为网络拥塞引起的丢包。
无线网络中,链路的高误码率以及节点移动都会导致丢包。多路径路由和节点切换等会导致乱序。当出现非拥塞因素丢包时,传统 TCP 将错误地触发拥塞控制。
同时无线网络环境中可以大概总结为三种丢包情况:
- 随机丢包:数据丢失是由信息衰落引起的;
- 突发丢包:主要发现移动节点切换移动引起的;
- 包重新排序:是主要由于切换引起的。
资源管理划分
在有线网络中,由于链路速率较高,网络瓶颈是缓冲区内存访问速度,因此资源管理大都在IP层实施
MANET中,瓶颈是速率低且冲突较多的无线链路,