基于窗口的tcp流量控制会致使一种称为糊涂窗口综合症的现象发生,此时,发送端会发送不满一个mss的小报文,接收端也会通告一个小窗口,这种现象会下降网络的利用率。如何避免这种现象发生呢。
算法
首先,对于接收方来讲:缓存
不能通告一个比当前窗口大的窗口,除非窗口增长了一个报文段(mss)大小,或者增长了接收方缓存空间的一半。这条规则应用的前提条件是接收方的接收缓存由0变为非0,或者接收方要回复一个窗口探查报文。也就是说,当接收方缓存变为非零,能够接收数据时,或者它要回复窗口探查报文时,要考虑上述规则,不能通告小窗口。网络
对于发送方来讲,如下三点至少有一点知足时才能发送报文:tcp
一、能够发送一个满长的报文ide
二、能够发送接收方曾经通告过的最大窗口的一半的报文it
三、若是链接上未开启Nagle算法或者没有未被确认的数据时就能够发送任意大小的必须发送的数据class