浙江省住房与城乡建设厅网站,6.网站开发流程是什么,淘宝客网站能用淘宝图标做标志吗,搜索引擎推广方式有哪些TCP中的流量控制和拥塞控制
流量控制
什么是流量控制
如果发送者发送数据过快#xff0c;接收者来不及接收#xff0c;那么就会出现分组丢失#xff0c;为了避免分组丢失#xff0c;控制发送者的发送速度#xff0c;使得接收者来得及接收#xff0c;这就是流量控制。 …TCP中的流量控制和拥塞控制
流量控制
什么是流量控制
如果发送者发送数据过快接收者来不及接收那么就会出现分组丢失为了避免分组丢失控制发送者的发送速度使得接收者来得及接收这就是流量控制。
流量控制的目的是防止分组丢失是构成TCP可靠性的一方面。
如何实现流量控制
由滑动窗口协议连续ARQ协议实现滑动窗口协议即保证了分组无差错有序接收也实现了流量控制。主要的方式就是接收方返回的ACK会包含自己的接受窗口大小并利用大小来控制发送方的数据发送。
拥塞控制
什么是拥塞控制
拥塞控制是作用于网络的它是防止过多的数据注入网络避免出现网络负载过大的情况常见的方法就是
慢开始避免拥塞快重传、快恢复
拥塞控制算法
我们首先添加几个限定条件
数据是单方向传递另一个窗口只发送确认接收方的缓存足够大因此发送方的大小由网络的拥塞程度来决定
慢开始算法
发送方维持一个叫做拥塞窗口cwndcongestion window的状态变量拥塞窗口的大小取决于网络的拥塞程度并且动态地在变化发送方让自己的发送窗口等于拥塞窗口另外考虑到接收方的接受能力发送窗口可能小于拥塞窗口。
慢开始算法的思路就是不要一开始就发送大量的数据先测探一下网络的拥塞程度也就是说从小到大主键增加拥塞窗口的大小。
这里用报文段的个数作为拥塞窗口的大小举例说明慢开始算法实际的拥塞窗口大小是以字节为单位的。 发送方没收到一个确认窗口就把窗口cwnd加1 从上图可以看到一个传输轮次所经历的时间其实就是往返时间RTT而且每经过一个传输轮次拥塞窗口cwnd就加倍
为了防止cwnd增长过大引起网络拥塞还需设置一个慢开始门限ssthresh状态变量ssthresh的用法如下
当 cwnd ssthresh时使用慢开始算法当cwnd ssthresh时采用 慢开始或拥塞避免中的任意一种当 cwnd ssthresh时采用拥塞避免算法
拥塞避免算法
拥塞避免算法让拥塞窗口缓慢增长即没经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1而不是加倍这样能够让拥塞窗口按线性规律增长。
无论是在慢开始阶段还是在拥塞控制阶段只要发送方判断网络出现拥塞就把慢开始门限 ssthressh设置为当前出现拥塞时发送窗口大小的一半不能小于2然后将拥塞窗口cwnd设置为1执行慢开始算法。
这样做的目的是迅速减少主机发送到网络中的分组数使得发送拥塞的路由器有足够时间把队列中积压的分组处理完毕。
拥塞窗口cwnd初始化为1个报文段慢开始门限初始值为16执行慢开始算法指数规律增长到第4轮即cwnd16ssthresh改为执行拥塞避免算法拥塞窗口按线性规律增长假定cwnd24时网络出现超时拥塞则更新后的ssthresh12cwnd重新设置为1并执行慢开始算法。当cwnd12ssthresh时改为执行拥塞避免算法
乘法减小和加法增大
乘法减小”指的是无论是在慢开始阶段还是在拥塞避免阶段只要发送方判断网络出现拥塞就把慢开始门限ssthresh设置为出现拥塞时的发送窗口大小的一半并执行慢开始算法所以当网络频繁出现拥塞时ssthresh下降的很快以大大减少注入到网络中的分组数。加法增大”是指执行拥塞避免算法后使拥塞窗口缓慢增大以防止过早出现拥塞。常合起来成为AIMD算法。
快重传算法
快重传要求接收方在收到一个失序的报文段后就立即发出重复确定为的是使发送方及早知道有报文段没有达到对方可提高网络吞吐量约20%而不要等到自己发送数据时捎带确定。快重传算法规定发送方只要一连收到三个重复确定就应当立即重传对方尚为收到的报文段而不必继续等待设置的重传计时器时间到期
快恢复
快重传配合使用的还有快恢复算法有以下两点要求
当发送方连续收到三个重复确认时就执行乘法减小算法把ssthresh门限减半为了预防发送拥塞但是接下来并不执行慢开始算法考虑到如果网络出现拥塞的话就不会收到好几个重复的确认所以发送方现在认为网络可能没有出现拥塞所以此时不执行慢开始算法而是将cwnd设置为ssthresh减半后的值然后执行拥塞避免算法使cwnd缓慢增大如下图所示TCP Reno版本是目前使用最广泛的版本。 在采用快恢复算法时慢开始算法只是在TCP连接建立时和网络出现超时时才使用