【计算机网络】第三章 传输层(4)
七.拥塞控制原理
1. 拥塞
(1)非正式定义:太多主机发送了太多数据或发送速度太快,以至于网络无法处理
(2)表现:分组丢失,分组延迟过大
(3)拥塞的成因和代价
·场景1:两个发送方,两个接收方,一个路由器,无限缓存,没有重传
- 拥塞时分组延迟太大,达到最大吞吐量
·场景2:一个路由器,有限缓存,发送方重传分组
a. 发送方通过某种机制获知路由器缓存信息,有空闲才发送:λin = λout
b. 丢失后才重发:λ’in > λout
c. 分组丢失和定时器超时后都重发:λ’in更大
- 拥塞的代价:对给定的好的输入(a),要做更多的重传工作,造成资源浪费
·场景3:四个发送方,多跳,超时重传
- 拥塞的代价:当分组被丢弃时,任何用于该分组上游的传输能力被浪费
2. 拥塞控制的方法
(1)端到端拥塞控制:TCP采用
·网络层不需要显式地提供支持
·端系统通过观察丢失和延迟等行为判断是否发生拥塞
(2)网络辅助的拥塞控制
·路由器向发送方显式地反馈网络拥塞信息
·简单的拥塞指示(1bit):SNA,DECbit,TCP/IP ECN,ATM
·指示发送方应该采取何种速率
3. 案例:ATM ABR拥塞控制
(1)ABR(可用比特率):弹性服务
·发送方路径欠载:使用可用带宽
·发送方路径拥塞:将发送速率降到最低保障速率
(2)RM(资源管理单元):发送方发送
·交换机设置RM cell位(网络辅助),由接收方返回给发送方
- NI bit:发送方比特率不许增长
- CI bit:拥塞指示
·在RM cell中有显式的速率(ER)字段,共两个字节,拥塞的交换机可将其设为更低的值,令发送方获知路径所能支持的最小速率
·数据cell的EFCI位(拥塞置1):若RM cell前的data cell的EFCI位置1,则发送方在返回的RM cell中置CI位
八.TCP拥塞控制
1. 基本原理
(1)发送方限制发送速率
·LastByteSent - LastByteAcked <= CongWin
·rate ≈ CongWin / RTT (Bps)
(2)CongWin
·动态调整以改变发送速率:加性增-乘性减(拥塞避免)机制AIMD,慢启动机制SS
·反映所感知到的网络拥塞:超时或3个重复ACK称为loss事件,发生loss后,发送方降低速率
(3)AIMD
·逐渐增加发送速率,谨慎探测可用带宽,直到loss
·发生loss后将CongWin减半
(4)SS
·当连接开始时,令拥塞窗口指数性增长
·每个RTT将CongWin翻倍,收到ACK进行操作
·初始速率很慢,但快速攀升
·当CongWin达到loss事件前值的1/2,即Threshold时,将指数增长换为线性增长
(5)Loss事件的处理
·3个重复ACK:CongWin切到一半后线性增长
·超时事件:CongWin设为1MSS,指数增长到threshold,线性增长
(6)TCP拥塞控制算法
(7)例题
2. TCP性能分析
(1)吞吐率:给定拥塞窗口大小和RTT,忽略慢启动
·假定发生超时时的CongWin大小为W,吞吐率为W / RTT
·超时后,CongWin大小为W / 2,吞吐率为W / 2RTT
·平均吞吐率为0.75W / RTT
(2)未来的TCP
·举例:
·吞吐率与丢包率的关系
(3)公平性
·K个TCP Session共享相同的瓶颈带宽R,每个Session的平均速率为R / K
·公平性与UDP:多媒体应用通常不使用TCP,UDP以恒定速率发送,能够容忍丢失,产生不公平
·公平性与并发TCP连接:某些应用会打开多个并发连接,产生公平性问题,如已有9个连接,新来的应用请求1个TCP,速率为R/2,请求11个TCP,速率为R/2