网络编程----拥塞控制、流量控制详解

网络传输过程,某段时间传输量过大会给网络造成很大的压力。有没有很好奇是怎么解决的呢?

拥塞控制和流量控制即将到达现场。先讲两个概念~

拥塞就是说到达网络中的某一部分分组数量过多,使得网络来不及处理,导致这部分甚至整个网络性能下降。

流量控制的实现方式:滑动窗口     流量控制出现的现象:丢包

滑动窗口用来通知发送端可以发送数据的大小或是窗口标记了接收端缓冲区的大小(TCP首部的16位窗口大小)。

在应答确认机制中,对每个发送的数据段都要给一个ACK确认应答,导致数据往返时间长,性能较差,使用滑动窗口可以一次发送多条数据,提高性能。

流量控制虽然可以高效的发送大量数据,但如果在刚开始数据量过大就会导致网络拥堵,这就出现了拥塞控制。

拥塞控制就是防止发送发发送的太快,避免过多数据注入到网络中。而流量控制是防止发送方发的太快,耗尽接收方资源,使接收方来不及处理。

拥塞控制的方法:(会出现的丢包现象,发送端怎么知道已经丢包了呢?①定时器超时;②收到了三个重复ACK)

慢启动:不要一开始就发送大量的数据先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。

拥塞避免对拥塞窗口大小使用加增乘减的方法。

加增:执行拥塞避免算法之后,在收到对所有报文段的确认之后,就把拥塞窗口增加一个MSS大小,使拥塞窗口缓慢增大。

乘减:出现一次超时(网络拥塞)之后就把慢启动门限设为当前拥塞窗口的1/2。

当网络频繁出现拥塞时,慢启动的门限下降的很快,大大减少注入到网络中的分组数。

快恢复

快重传

拥塞控制通常是全局性的,会涉及到网络中的所有主机、路由器以及会降低网络传输性的所有因素。流量控制只发生在接收端和发送端,是点对点之间的。

流量控制和拥塞控制的相同点:

①现象都是丢包

②实现机制都是让发送方发慢一点,少发一点

不同点:

①丢包位置不同:流量控制---->接收端,拥塞控制---->路由器

②作用对象不同:流量控制---->接收端,怕发送太快,接收方来不及处理

                            拥塞控制---->网络,怕发送太快,造成网络拥堵

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值