计算机网络 运输层 拥塞控制:拥塞控制原理&TCP拥塞控制

0.什么是拥塞

对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做网络拥塞。
在计算机网络中数位链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降。

1.拥塞的原因

情况1

情况2

情况3

2.拥塞控制方法

端到端

网络层没有为运输层拥塞控制提供显式支持。
即使网络中存在拥塞,端系统也必须通过对网络行为的观察(如分组丢失与时延)来推断之。

网络辅助

在网络辅助的拥塞控制中,路由器向发送方提供关于网络中拥塞状态的显式反馈信息。
这种反馈可以简单地用一个比特来指示链路中的拥塞情况。
在这里插入图片描述

3.TCP拥塞控制(端到端)

TCP必须使用端到端拥塞控制而不是使网络辅助的拥塞控制,因为IP层不向端系统提供显式的网络拥塞反馈。
在这里插入图片描述

如何感知拥塞

TCP发送方的丢包事件:要么出现超时,要么出现3次冗余ACK。
当出现过度的拥塞时,在沿着这条路径上的一台(或多台)路由器的缓存会溢出,引起一个数据报(包含一个TCP报文段)被丢弃。丢弃的数据报接着会引起发送方的丢包事件。发送方就认为在发送到接收方的路径上出现了拥塞的指示。

TCP如何确定应当发送的速率

  • 一个丢失的报文段意味着拥塞。因此当丢失报文段时应当降低TCP发送方的速率。
  • 一个确认报文段指示该网络正在向接收方交付发送方的报文段。因此当对先前未确认报文段的确认到达时,能够增加发送方的速率。
  • 带宽检测。给定ACK指示源到目的地路径无拥塞,而丢包事件指示路径拥塞,TCP调节其传输速率的策略是增加其速率以响应到达的ACK,除非出现丢包事件,此时才减小传输速率。
    因此,为探测拥塞开始出现的速率,TCP发送方增加它的传输速率,从该速率后退,进而再次开始探测,看看拥塞开始速率是否发生了变化。

TCP拥塞控制算法细节

cwnd:拥塞窗口。它对一个TCP发送方能向网络中发送流量的速率进行了限制。在一个发送方中未被确认的数据量不会超过cwnd与rwnd中的最小值,LastByteSent-LastByteAcked<=min(cwnd,rwnd)。

1.慢启动

MSS:最大报文段长度

当一条TCP连接开始时,cwnd的值通常初始置为MSS的较小值。
在慢启动状态,cwnd初始值为一个MSS,每当传输的报文段首次被确认就增加1个MSS。
TCP发送速率起始慢,但在慢启动阶段以指数增长。

何时结束指数增长?
1.超时指示的丢包事件。TCP发送方将cwnd设置为1并重新开始慢启动过程。
将慢启动阈值(ssthresh)设置为cwnd/2,即当检测到拥塞时将ssthresh设置为拥塞窗口值的一半。
2.当cwnd的值等于ssthresh时,结束慢启动并且TCP转移到拥塞避免模式。
在这里插入图片描述

2.拥塞避免

一旦进入拥塞避免状态,cwnd的值大约是上次遇到拥塞时值的一半(距离拥塞并不遥远)。
这时,TCP每个RTT只将cwnd的值增加一个MSS。

何时结束线性增长?
冗余3个ACK指示的丢包事件(没超时丢包那么严重),TCP将cwnd的值减半,并且当收到3个冗余的ACK,将ssthresh的值记录为cwnd的值的一半。接下来进入快速恢复状态。

3.快速恢复

对于引起TCP进入快速恢复状态的缺失报文段,对收到的每个冗余ACK,cwnd的值增加一个MSS。最终。当对丢失报文段的一个ACK到达时,TCP在降低cwnd后进入拥塞避免状态。
如果出现超时事件,快速恢复在执行如同在慢启动和拥塞避免中相同的动作后,迁移到慢启动状态:当丢包事件出现时,cwnd的值被设置为1个MSS,并且sshthresh的值设置为cwnd值的一半。
在这里插入图片描述

在这里插入图片描述

总结以上,回顾全局

加性增、乘性减
在这里插入图片描述

公平性

从TCP的观点来看,运行在UDP上的多媒体应用是不公平的,因为它们不与其他连接合作,也不适时地调整其传输速率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值