这需要从tcp慢启动开始说,慢启动的意图在于让网络通道处理理想状态下。理想状态:发送方发送的间隔=网络中刚好不重传的情况(理想不丢包)。
假设tcp窗无穷大。那么就有这么一个局面,网络中暂时储存着一些数据包(由于延时造成)。这时计算得到的结果是带宽延时积= ping延时 * 网络速率(这个速率是TCP协议速率= 理论速率 – (帧头+尾)) / 8 (现在的单位是byte,除于8就是将bit换成byte)
设想2个队列,一个是由于网络暂存特定抽象的,另一个是TCP窗。
由于前一个队列的出/入队速度是定值(速度A = 队长 / 延时)。后者的出/入队的是由TCP窗决定(速度B = 队长 / 延时)。即,当 窗小于带宽延时积时,那么速度A>速度B。这就导致了A的速度必须采取降速处理,来达到与B的同步。这样整个带宽中就存在没有利用到的带宽了。
在说一说阻塞窗口。由于带宽延时积是一个相对的定值,再加之一些可变因素。会导致网络对数据包的转发能力有变化。
阻塞窗口是用来限制数据包pps的。过大的pps会导致网络自然丢包。这时在tcp一层就会收到重传请求。阻塞窗口在某些时刻是处于互斥关系。而某些时候它们又处于并行关系。