我是靠谱客的博主 缥缈茉莉,最近开发中收集的这篇文章主要介绍计算机网络 运输层 拥塞控制:拥塞控制原理&TCP拥塞控制0.什么是拥塞1.拥塞的原因2.拥塞控制方法3.TCP拥塞控制(端到端),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 0.什么是拥塞
  • 1.拥塞的原因
    • 情况1
    • 情况2
    • 情况3
  • 2.拥塞控制方法
    • 端到端
    • 网络辅助
  • 3.TCP拥塞控制(端到端)
    • 如何感知拥塞
    • TCP如何确定应当发送的速率
    • TCP拥塞控制算法细节
      • 1.慢启动
      • 2.拥塞避免
      • 3.快速恢复
      • 总结以上,回顾全局
    • 公平性

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上的多媒体应用是不公平的,因为它们不与其他连接合作,也不适时地调整其传输速率。

最后

以上就是缥缈茉莉为你收集整理的计算机网络 运输层 拥塞控制:拥塞控制原理&TCP拥塞控制0.什么是拥塞1.拥塞的原因2.拥塞控制方法3.TCP拥塞控制(端到端)的全部内容,希望文章能够帮你解决计算机网络 运输层 拥塞控制:拥塞控制原理&TCP拥塞控制0.什么是拥塞1.拥塞的原因2.拥塞控制方法3.TCP拥塞控制(端到端)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部