Introduction to Computer Networking学习笔记(二十一):TCP拥塞控制-基础、公平分配带宽准则

原贴地址:https://blog.csdn.net/djl806943371/article/details/89469791

哇,不知不觉这个课程也学了挺久了,说明一下,学习的是Stanford大学的CS144 Introduction to Computer Networking。终于学完了第三章Packet Switching。接下来就是拥塞控制了,这一部分也是计算机网络中很重要的一部分。笔者腾讯后台开发一面面试官就问了我TCP如何进行拥塞控制,可见也是面试常问内容,还是非常值得深入理解的。接下来就开始吧,最开始当然就是拥塞控制的一些基础知识。

在第二章我们我们学过滑动窗口,这两者有一定的相通性。滑动窗口是在一个连接之间建立联系,防止发送者淹没接收者。拥塞控制则是为了防止很多发送者发送太多数据到整个网络中,将整个网络淹没,因为可能每个接收者都没有被淹没,但是总的数据包却使发送者和接收者之间的网络淹没。

如下图,首先我们可以从三个尺度上认识拥塞:第一,两个包到达路由的时间有交错,此时晚到的包需要存储在queue中等待前面的包发送完成后再进行发送,这个时间尺度是极小的;第二,是从flow的维度上来看,当两个传输流目的link为同一个并且两个流的输入速率大于输出速率时,就会产生丢包,这个时间尺度也是比较小的,是单次或几次端对端传输的时间,比如请求一个网页或者发送一个电子邮件;第三个是在正常时间维度内,比如早晨会有大量用户使用谷歌,大量用户在某个时间段内集中使用某个link,也会造成带宽不够。本章我们主要学习在第二个尺度上,TCP如何实现拥塞控制。

拥塞是不可避免的:

  • 为了使链路的利用率提高,我们采用packet Switching的方式,在这种方式下,路由的缓冲区会经常性的被填充;
  • 如果缓冲区一直空闲,此时延迟比较低,但是网络的利用率很低;
  • 如果缓冲区一直被填充,那么网络利用率很高,但是延迟会很高。

因此处理拥塞时,要尽可能在网络利用率和延迟之间达到一种平衡。

拥塞处理的公平性:

在对带宽进行分配时,会牵扯到公平性问题,如何定义这个公平性,我们采用Max-min Fairness:使传输速率最小的flow的传输速率达到最大,也即这种状态下,你无法在不减小流速更低的flow的传输速率的情况下增大一个flow的传输速率。以下面为例:

有三个输入,一个输出,则每人可以分配1/3,但是C只需要0.2,则C分配0.2,A、B可均分剩余0.8,即各0.4,0.4低于两者需求,则分配完毕。即分配时从需求最小的开始分配,当均分可用带宽所有入口都无法完全满足时,则均分后停止分配即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值