您的位置:首页 > 其它

流量控制和拥塞控制

2017-05-01 23:13 148 查看
滑动窗口:
要保证正确的传输,要对已经发送的数据进行确认。如果每发送一个分组,等待数据的确认,然后再发送下一个分组,这样的效率太低。所以制定了滑动窗口。
对于发送方来说,落在滑动窗口中的数据均可进行发送,所在在某个时刻中,滑动窗口中的数据有两种状态,一是已经发送的,一是等待发送的数据。发送完数据要等待对方的确认,确认之后,滑动窗口才可以向后移动,如果到了超时时间或者对方请求重传就重新进行发送,滑动窗口用来缓存没有收到的数据。
对于接收方来说,受到数据可能是失序的,对缺失的进行请求重传。应用程序从滑动窗口拿走数据之后就可以将窗口向后滑动。
发送方的窗口的大小受到接受方窗口的限制,接收方通过在tcp报文段中添加自己窗口大小来影响发送方的窗口的大小。发送方窗口受到拥塞窗口的限制,一旦超过拥塞窗口就采用拥塞避免算法,而发送窗口的大小小于等于拥塞窗口。

1.滑动窗口以字节为单位

2.发送窗口是按照接收窗口设置的,但是同一时刻,两者大小不一定相同,网络传送窗口值的时延

往返时间和超时重传:

    发送方发送一个分组时就会启动一个计时器,一定时间后没收到对方的确认就会进行重发。接收方接收具有累计确认的功能。接收方可以在合适的时候进行发送确认

 1>接收方不应过分推迟时延,避免重传。
 2>捎带确认很少,因为大多数应用程序不同时在两个方向上传输数据。

 超时重传时间的选择:新值以一定比例影响旧值。对于传输较慢的先传送的时间和后重传值

利用滑动窗口实现流量控制:

1.对于零窗口的通知,设置持续计时器

2.tcp发送报文段的发送时机

3.Nagle算法: 应用程序将字节流发送到发送缓冲区后,由tcp控制发送。tcp先选择一个字节组成tcp分组发送,应用程序中的字节流缓存在发送缓冲区,当收到确认报文后,然后进行发送。当到达数据达到发送窗口的一半或者已经达到报文段的最大值,就立即发送一个报文。

糊涂窗口综合症,因为接收缓冲区太小,使得每次只能发送少量的字节,使得网络效率降低。解决方法,让接收方等待一段时间,使得或者接收缓存已有足够空间容纳一个最大报文段或者等到接收缓存已有一半空闲的是空间。

拥塞控制:慢开始,拥塞避免,快重传,快恢复

    在发送开始阶段,拥塞窗口的值为1,在小于门限值的情况下,每收到一个分组,其拥塞窗口加1,所以经过一个RTT时,其窗口值增加为原来的2倍。当大于等于门限值后,每经过一个往返时间RTT,拥塞窗口就只增加1.当分组丢失,最新的是通过快恢复来控制,将门限值变成原来的一半,然后将拥塞窗口设置与门限值相同。

1.RTT往返时间,是经过新值和旧值综合考虑的,如果有重传的,其RTT值就不加入样本考虑。

2.拥塞控制的原因是因为网络所需要的资源小于实际拥有的资源。其影响是整体网络的,并非局部的资源参数。

3.现在慢开始只应用于启动时候

快速重传,当接收到失序分组时,就会对失序前的分组进行重复确认,发送方接收到三次重复确认分组就马上进行重传,不用等到定时器时间到达才发送。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息