SWS(silly window syndrome)是在通过窗口流量控制的时候发生的一种在连接双方发送小报文的一种情况。
这里的小报文指的是小于MSS长度的报文,MSS是在SYN交互的时候通过option协商出来的。
如果在连接的网络中充斥着很多的这种小报文,那么这将是对网络流量的一种极大浪费,比如一个tcp的载荷是1,而加上tcp+IP header 不算其他的option,差不多41字节,那么这种载荷和头部的比例严重失调,导致网络流量的浪费。
TCP现存的避免SWS的方式有:
接收端:
接收方不通告小窗口,接收方不通告一个比MSS小的窗口,或者达到接收方缓存大小的一半(这个就不管MSS了)的时候才通告。
发送端:
满足:1.可以发送一个MSS长度的报文。
2.可以发送至少是接收方通告窗口一半的报文
3.可以发送任何数据但是不希望接收ACK(这是因为前面还有未确认的报文)或者该连接上不能使用Nagle算法。
PS:这里发送方如果接收到对方通告的小窗口,并且坚持定时器到期了的时候可以发送这个小窗口大小的数据。
阅读(2507) | 评论(0) | 转发(0) |