TCP-IP详解: 慢启动和拥塞控制

在网络实际的传输过程中,会出现拥塞的现象,网络上充斥着非常多的数据包,但是却不能按时被传送,形成网络拥塞,其实就是和平时的堵车一个性质了。TCP设计中也考虑到这一点,使用了一些算法来检测网络拥塞现象,如果拥塞产生,变会调整发送策略,减少数据包的发送来缓解网络的压力。

拥塞控制主要有四个算法:

1. 慢启动

2. 拥塞避免

3. 拥塞发生时,快速重传

4. 快速恢复


慢启动算法

之前介绍的滑动窗口能够让协议栈同时发送多个报文段,这样可以提高网络通信的效率,对于一些处理能力不佳的中间路由器,很可能会导致存储被耗尽的状况,从而严重降低了TCP连接的吞吐量,不断的重传. 非常的可怕, 介于此,引入了慢启动这个算法。

慢启动为发送方的TCP增加了一个窗口:拥塞窗口,记为cwnd,,初始化之后慢慢增加这个cwnd的值来提升速度。同时也引入了ssthresh门限值,如果cwnd达到这个值会让cwnd的增长变得平滑,算法如下

1. 连接建好的开始先初始化cwnd = 1,表明可以传一个MSS大小的数据

2. 每当收到一个ACK,cwnd++; 呈线性上升

3. 每当过了一个RTT,cwnd = cwnd*2; 呈指数让升

4. 当cwnd >= ssthresh时,就会进入“拥塞避免算法”


拥塞避免算法

从慢启动可以看到,cwnd可以比较快的增长,但是不能一直无限增长,需要某个限制,TCP使用了ssthresh的变量,当cwnd超过这个值后,慢启动过程结束,进入拥塞避免阶段。拥塞避免的主要思想是加法增大,也就是让cwnd的值线性增加, 此时当窗口中所有的报文段都被确认是,cwnd的大小才加1,cwnd的值随着RTT线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加到网络的最佳值。

算法:

1)收到一个ACK时,cwnd = cwnd + 1/cwnd

2)当每过一个RTT时,cwnd = cwnd + 1


图示

结合图来看下数据发送过程中慢启动和拥塞避免算法的使用情况


1. 连接建立,开始传输数据,cwnd = 1 , ssthresh的初始值为16,发送第一个包

2. 发送端收到一个确认后,cwnd加1,于是可以 发送2个数据包

3. 收到2个ACK之后,这个时候cwnd + 2 , 于是可以发送4个数据包

4. 收到4个ACK后,这个时候cwnd + 4 ,于是可以发送8个数据包, 可以看到这个时间段,cwnd随着传输轮次的增长,成指数增长

5. 当拥塞的窗口达到ssthresh后,慢启动算法结束,开始进入拥塞避免算法

6. cwnd按照一个RTT进行+1的线性增加,假设到达24时,出现网络拥塞

7. ssthresh = 1/2 * cwnd = 12, cwnd = 1  继续重新执行慢启动算法

8. 同样当cwnd = 12时 执行拥塞避免算法

其中第7步属于对网络拥塞的一种处理, 什么状态下才会认为是拥塞? 基本上就认为是有丢包产生,在前面知道丢包产生会有2中处理方法超时重传和快速重传,其中如果RTO超时的时候,TCP认为环境已经很糟糕了,

a .sshthresh = cwnd /2

b. cwnd 重置为 1

c.进入慢启动过程

如果是快速重传,则:

TCP Tahoe的实现和RTO超时一样。

TCP Reno的实现是:

a. cwnd = cwnd /2

b. sshthresh = cwnd

c. 进入快速恢复算法——Fast Recovery【下一篇文章介绍】


简单的来说,发送的速率总是在不断的增长,只不过一开始增长比较快,指数增长,到达门限值的时候,切换增长模式,变成线性增长,当系统中出现了丢包重传现象,判断已经网络已经发送阻塞,要重新设定参数,进入慢启动状态。





TCP/IP详解 卷2:协议下载》是由Douglas E. Comer所著的一本计算机网络书籍,它是《TCP/IP详解》系列的第二卷。 本书主要讲解了TCP/IP协议家族中的各种协议和相关技术。第一章介绍了传输层协议TCP和UDP的特性、功能以及应用,包括其提供可靠性、流量控制、拥塞控制机制。第二章讲解了分组交换网络中的传输层协议的实现,包括滑动窗口、超时重传、可靠传输机制等。 第三章至第五章侧重于网络层协议IP的相关知识。第三章讲解了IP地址的分配、子网划分以及路由选择算法。第四章介绍了ICMP协议,它用于网络中的错误报告和网络管理。第五章则讨论了IPv6协议,介绍了其与IPv4的不同之处以及IPv6的地址分配和路由选择。 第六章和第七章分别讲解了数据链路层协议和局域网技术。第六章介绍了以太网的工作原理、帧结构以及其它数据链路层协议的特点,包括ARP、RARP等。第七章则讨论了以太网上的网络操作系统、交换机和无线局域网等局域网技术。 第八章至第十章介绍了广域网技术。第八章讲解了传输控制协议TCP和IP在广域网中的应用和协同工作机制。第九章介绍了路由选择协议RIP和OSPF,以及路由选择机制的原理和实现。第十章讲解了一些其他的广域网协议和技术,包括点对点协议、帧中继和ATM等。 总结而言,《TCP/IP详解 卷2:协议下载》是一本全面介绍TCP/IP协议家族的著作,涵盖了传输层、网络层、数据链路层以及广域网技术的相关协议和技术。读者通过学习该书,能够深入了解TCP/IP协议的工作原理和实现,掌握网络通信的基本知识和技能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值