流量控制
1、什么是流量控制?
流量控制,是为了让发送方的发送速率不要太快,要让接收方来得及接收。接收方来不及接收就会造成数据的丢失。
2、流量控制怎么实现?
流量控制是通过滑动窗口机制来实现的。
在建立连接时,发送的报文段中就会有接收窗口的单位值。发送方的窗口不能超过接收方给出的接收窗口的数值。滑动窗口的大小是动态调整的,每一次接收方回复给发送方的确认报文段里会更新新的接收窗口值。
当接收窗口为0时,代表暂时不接收数据了。知道接收方重新给发送方发出一个新的窗口值为止。
3、流量控制和拥塞控制的区别?
流量控制是对发送方发送速率的控制。拥塞控制为了防止过多的数据注入到网络中从而导致网络中的路由器或链路出现过载。
拥塞控制是一个全局性的过程,涉及到所有主机,所有路由器,以及降低网络传输性能有关的所有因素。
流量控制是点对点通信量的控制。
4、TCP的传输效率问题?
在TCP的实现中广泛使用Nagle算法.算法如下:
若发送应用进程把要发送的数据逐个字节地送到TCP的发送缓存,则发送方就把第一个数据字节先先发送出去,把后面到达的数据字节都缓存起来。当发送方收到对第一个数据字符的确认后,再把发送缓存中的所有数据组装成一个报文段发送出去,同时继续对随后到来的数据进行缓存。只有在收到对前一个报文段的确认后才继续发送下一个报文段。当数据到达较快而网络速率较慢时,用这样的方法可明显地减少所用的网络带宽。Nagle算法还规定,当到达的数据已达到发送窗口大小的一半或已经达到报文段的最大长度(MSS),就立即发送一个报文段。这样可有效提高网络的吞吐量。
糊涂窗口综合征:
参考链接:http://blog.chinaunix.net/uid-21237130-id-159734.html