1、滑动窗口
滑动窗口协议是传输层进行流控的一种措施,接收方通过通告发
送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。
TCP的滑动窗口解决了端到端的流量控制问题,允许接受方对传输进行限制,直到它拥有足够的缓冲空间来容纳更多的数据。
2、拥塞窗口
拥塞窗口也看做是发送端用来进行流量控制的窗口。
但是,实际上,TCP还必须应付互联网中的拥塞现象。拥塞是指一个或者多个交换点的数据报超载而导致时延剧烈增加的现象。为了控制拥塞,TCP使用了第二个窗口限制,即拥塞窗口限制。对于拥塞窗口大小的限制采用慢开始和乘法减小两种技术。
乘法减小的拥塞避免策略:一旦发现报文段丢失,就把拥塞窗口的大小减半(直到减至最小的窗口,窗口中应至少包含一个报文段)。
慢开始恢复:拥塞窗口随着一个确认的到达,拥塞窗口的大小每次增加一个报文段。
3、小结
慢启动为发送方的TCP增加了另一个窗口:拥塞窗口(congestion window),记为cwnd。当与另一个网络的主机建立TCP连接时,拥塞窗口被初始化为1个报文段(即另一端通告的报文段大小)。每收到一个ACK,拥塞窗口就增加一个
报文段(cwnd以字节为单位,但是慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告/滑动窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告/滑动窗口则是接收方使用的流量控制。
发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加为2,即可以发送两个报文段。
当收到这两个报文段的ACK时,拥塞窗口就增加为4。这是一种指数增加的关系。
原文
http://lyjdamzwf.blog.163.com/blog/static/75206837201193373226/
http://hi.baidu.com/zhangkai008/item/31539213b259379598ce336e
http://blog.csdn.net/linweixuan/article/details/4353015
讲的非常详细http://blog.csdn.net/lzueclipse/article/details/5777283
http://blog.csdn.net/linweixuan/article/details/4365026