TCP拥塞控制原理

发生拥塞控制的原因:资源的需求>可用资源

作用:拥塞控制就是防止过多的数据包进入网络,这样可以使网络中的路由器或者链路不至于过载。拥塞控制的前提就是网络能够承受现有的网络负荷。

对比流量控制:拥塞控制是一个全局的过程,涉及到链路上的所有主机和路由。

流量控制往往指的是点对点通信的控制,是端对端的问题。

流量控制:

(1)tcp提供了一种机制可以让发送端根据接收端的实际接收能力来控制发送的速率,具体的操作是接收端主机向发送端主机通知自己可以接收数据的大小,于是发送会发送不超过这个限度的数据,该限度大小就被称为窗口大小。

(2)TCP首部中专门有个字段用来通知窗口大小,接收主机将自己可以接收缓冲区的大小放入这个字段通知发送端。这个字段越大说明网络的吞吐量越大。

接收端

(3)接收端缓冲区一旦面临溢出,窗口大小也会随之被设置为一个更小的值发送给发送端,从而控制发送的数据量,也就说发送端主机会根据接收端主机的缓冲区大小来对发送数据的大小进行控制。

拥塞控制:

计算机网络是一个共享网络,有可能因为其他主机间的通信造成网络拥堵,在网络出现拥堵时,如果突然发送一个较大的数据包可能导致整个网络的瘫痪。

拥塞窗口:发送方为一个动态变化的窗口叫做拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度。发送让自己的发送窗口=MIN(拥塞窗口,接收方的接收窗口),但是发送窗口不是一直等于拥塞窗口,在网络情况好的情况下,拥塞窗口会不断增加,发送方的窗口自然也会随着增加,但是接收方的能力有限,在发送方的窗口达到某个大小时就不在发生变化了。

 

发送方如果确认网络拥塞:发送方发送一些报文时,如果发送没有在规定的时间间隔内收到接收方的应答,则就可以认为网络拥塞。

 

拥塞避免的思路:

(1)最初让拥塞窗口按照指数级增长,这样可以提高发送数据吞吐量;

(2)当拥塞窗口大小到达慢启动门限后,该成线性增长,目的是减少拥塞窗口的增长速度;

(3)当发送端检测的网络拥塞时,立即把拥塞窗口减小为1,把慢启动门限调整为出现拥塞时拥塞窗口的一半目的是可以减少向网络中注入的数据量。

(4) 重新开始指数级增长和线性增长。

 

 实例:1.TCP连接进行初始化的时候,cwnd=1,ssthresh=16。

   2.在慢启动算法开始时,cwnd的初始值是1,每次发送方收到一个ACK拥塞窗口就增加1,当ssthresh=cwnd时,就启动拥塞控制算法,拥塞窗口按照规律增长,

   3.当cwnd=24时,网络出现超时,发送方收不到确认ACK,此时设置ssthresh=12,(二分之一cwnd),设置cwnd=1,然后开始慢启动算法,当cwnd=ssthresh=12,慢启动算法变为拥塞控制算法,cwnd按照线性的速度进行增长。 

快速重传:发送端一旦接收一个确认应答后,又连续三次接收到相同的确认应答,则认为数据段已经丢失,需要进行重发,这时会立即进行重发二不必等到超时,这种机制比起超时机制可以提供更为快速的重传服务。

重传超时时间:最初默认为6s,之后通过报文的往返时延加上偏差确认。

TCP拥塞控制是一种算法,用于确保在网络拥塞时TCP流量不会过载网络,从而导致丢包、延迟和网络中断。以下是TCP拥塞控制原理: 1. 慢启动 当一个TCP连接开始时,它会使用慢启动算法。慢启动的目的是逐渐增加数据包的数量,直到网络拥塞为止。在慢启动期间,TCP发送方将逐渐增加发送数据包的数量,直到达到一个拥塞窗口大小,该大小由网络拥塞程度决定。 2. 拥塞避免 一旦TCP连接进入了拥塞避免阶段,TCP发送方将按照一个固定的速率发送数据包。这个速率是根据网络的拥塞程度和拥塞窗口大小来计算的。在拥塞避免期间,TCP发送方将逐渐增加发送数据包的数量,直到达到一个新的拥塞窗口大小。 3. 快速重传 如果TCP接收方收到一个失序的数据包,它将立即向TCP发送方发送一个重复确认。如果TCP发送方连续收到三个重复确认,它将假设一个数据包已经丢失,并立即进行快速重传。这可以帮助减少网络拥塞,并避免数据包丢失。 4. 快速恢复 一旦TCP发送方收到三个重复确认,它会进入快速恢复阶段。在这个阶段,TCP发送方假设数据包已经被接收方丢失,并将拥塞窗口减半。然后,它将继续发送数据包,直到它达到先前的拥塞窗口大小。这可以帮助减少网络拥塞,并避免数据包丢失。 以上就是TCP拥塞控制的主要原理。通过这些算法,TCP可以动态调整发送数据包的数量,并在网络拥塞时适当地减少发送数据包的数量,从而确保网络不会过载。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值