赞
踩
网络出现堵塞一般有两种情况:
流量控制的原理很简单,如果发送方发送的数据量远大于接收方的容量,就会出现阻塞,对此可以维护一个接收窗口大小,接收方每次告诉发送方:这是我的窗口大小,不要发多了。
那为什么叫滑动窗口呢?接下来我们就来看一看“滑动”具体体现在哪儿呢,我们暂且先这么叫着。
tcp协议是全双工的通信协议,因此接收端和发送端各有一个滑动窗口,一个叫发送端滑动窗口(用于发送数据),一个叫接收端滑动窗口(用于接收数据)。首先我们说一下滑动窗口的原理。
举个例子如下:
对于上图,我们很明显滑动窗口为1.只有当收到对这一个数据确认之后才可以发送下一个数据。对此我们可以假设一下有大量的数据,在滑动窗口很小的情况下就会发送大量的确认信息,这就导致很大的延迟。也许你会说,那将滑动窗口定大一点不就行了,那么问题又来了,定多大合适呢?我们再假设将滑动窗口定到100,但是接收方一次只能处理50个数据,发送方下次还是发送100个数据,接收方还是只能处理50个数据,这就导致发送了大量不必要的数据拥塞了我们的网络。
滑动窗口定小了定大了都不合适,接下来我们看看滑动窗口是怎么做的,举个例子:
这就是滑动窗口的机制,并不会一次性定好滑动窗口的大小,会随着链路的变化进行调整。此时我们来回顾一下“滑动是如何体现的”。只有当接收方的滑动窗口向前滑动时(即发送了确认),发送窗口才能向前滑动,收发窗口按照上述规律不停的往前滑动。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。