计算机网络学习笔记15--拥塞控制&TCP性能分析&传输层总结

https://www.bilibili.com/video/BV1Up411Z7hC?p=4&spm_id_from=pageDriver

如有错误之处请指出,谢谢!

目录

拥塞控制

拥塞(Congestion)

用色的成因和代价

场景1:分组时延太大

场景2:吞吐率降低

场景3

 Q为什么拥塞控制在传输层做

拥塞控制的方法

端到端拥塞控制

网络辅助的拥塞控制

ATM ABR拥塞控制

ABR:available bit rate

RM(resource management )cells

TCP拥塞控制

TCP拥塞控制的基本原理

加性增-乘性减:AIMD

 慢启动:SS

Loss事件的处理

总结

 TCP拥塞控制算法

 例题

 TCP性能分析

TCP吞吐率

例子

TCP的公平性

 公平性与UDP(TCP吃亏)

研究:对TCP有好的UDP

公平性与并发性TCP连接

例子:链路速率为R,已有9个连接

传输层总结


p53-p57

拥塞控制

拥塞(Congestion)

非正式定义:

太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理

表现:

分组丢失(路由器缓存溢出)

分组延迟过大(在路由器缓存中排队)

拥塞控制VS流量控制

可靠数据传输根据端到端符合个体利益,拥塞控制像是一个社会问题

流量控制是不要让接收方溢出,而拥塞控制是不要让网络溢出

A top-10 problem

用色的成因和代价

场景1:分组时延太大

路由器向C、D主机总带宽未C 

由于路由器有无限的缓存,不存在丢包,所以没有重传机制

左边的图表示吞吐率

因为共享带宽,输出最大带宽为C/2

右边的图表示时延

输入接近C/2时时延接近无限

 因为一直在排队,形成排队的速度大于处理的速度,越后面的分组等的时间越久

场景2:吞吐率降低

一个路由器有有限的buffer

Sender重传分组

 因为重传造成了资源的浪费

定时器与丢失叠加造成了更多的重传

场景3

 多跳产生了多个主机传输间的竞争

 Q为什么拥塞控制在传输层做

A应该是单个应用不知道其他应用是否也在发数据,所以就不能控制自己的发送速率。而多个应用的数据是汇总到传输层,所以传输层才知道数据是否太多

拥塞控制的方法

端到端拥塞控制

网络层不需要显式地提供支持

端系统通过观察loss,delay等网络行为判断是否发生拥塞

TCP采取这种方法

网络辅助的拥塞控制

路由器向发送方显式地反馈网络拥塞信息(端系统利用信息来调节)

简单的拥塞指示(1bit):SNA,DECbit,TCP/IP ECN,ATM

指示发送方应该采取何种速率

ATM ABR拥塞控制

ABR:available bit rate

弹性服务

如果发送方路径“underloaded”负载低:使用可用带宽

如果发送方路径拥塞:将发送方速率降到最低保障速率

RM(resource management )cells

穿插在data cells中间

发送方发送

交换机设置RM cell位(网络辅助)

      NI bit:rate不许增长

      CI bit:拥塞指示

RM cell由接收方返回给发送方(得到了路径上所有的交换机RM cell,并返回给发送方)

在RM cell中有显式地速率(ER)字段:两个字节

      拥塞的交换机可以将ER置为更低的值

     发送方获知路径所能支持的最小速率

数据cell中的EFCI位:拥塞的交换机将其设为1

如果RMcell前面的data cell的EFCI位被设为1,那么发送方在返回RM cell中置CI位

TCP拥塞控制

TCP拥塞控制的基本原理

Sender限制发送速率

设置一个变量叫拥塞窗口CongWin

 CongWin:

动态调整以改变发送速率

反应所感知到的网络拥塞

Q如何感知网络拥塞?

A

Loss事件=timeout或3个重复的ACK

发生loss事件后,发送方降低速率

Q如何合理的调整发送速率

A

加性增-乘性减:AIMD 拥塞避免机制

慢启动:SS

加性增-乘性减:AIMD

原理:逐渐增加发送速率,谨慎探测可用带宽,知道发生loss

方法:AIMD

Additive Increase:每个RTT将CongWin增大一个MSS-----拥塞避免

Multiplicative Decrease:发生loss后将CongWin减半

 慢启动:SS

TCP建立时,CongWin=1

eg:MSS=500 byte,RTT=200ms

初始速率=20kbps

可用带宽可能远远高于初始速率

希望快速增长

原理:

 当连接开始时,指数型增长

 每个RTT将CongWin翻倍

收到每个ACK进行操作

初始速率很慢,但是快速攀升

Q何时应该指数性增长切换线性增长(拥塞避免)?

当CongWin达到Loss事件前值的1/2时 

实现方法:

变量Threshold

Loss事件发生时,Threshold被设为Loss事件前CongWin值的1/2

蓝色为TCP早期版本:重新进入慢启动

黑色为后来版本:慢启动后,执行加性增-乘性减

Loss事件的处理

 3个重复的ACKs:

CongWin切到一半

然后线性增长

Timeout事件:

CongWin直接设为1个MSS

然后指数增长

到达threshold后,再线性增长

Q为什么两个处理不同

3个重复ACKs表示网络还能够传输一些segments

timeout事件表明拥塞更为严重

总结

当CongWin低于Threshold,发送方处于慢启动阶段,CongWin指数增长

当CongWin大于Threshold,发送方处于拥塞避免阶段,CongWin线性增长

当收到3个重复ACKs时,Threshold减为原来CongWin的一半,CongWin=Threshold

当timeout时,Threshold减为原来CongWin的一半,CongWin=1

 TCP拥塞控制算法

rate≈CongWin/RTT,流水线机制一个RTT可能收到多个ACK,对于每个ACKCongWin+1,速率就成倍增长了

 例题

 TCP性能分析

TCP吞吐率

例子

 Q:TCP在未来是否还适用

 TCP连接丢包率极低,对链路的设计要求极高

TCP的设计有些参数不满足当今某些硬件需求了

高速网络下需要设计新的TCP

TCP的公平性

TCP是公平的

 细线:最终TCP吞吐率相等

粗线:限制了整个带宽的瓶颈带宽R

 

 公平性与UDP(TCP吃亏)

多媒体应用通常不使用TCP,以免被拥塞控制机制限制速率

使用UDP:以恒定速率发送,能够容忍丢失

产生了不公平

研究:对TCP有好的UDP

公平性与并发性TCP连接

 某些应用会打开多个并发连接

Web浏览器

产生公平性问题

例子:链路速率为R,已有9个连接

新来的应用请求1个TCP,获得R/10的速率

新来的应用请求11个TCP,获得R/2的速率

传输层总结

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软糖工程001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值