TCP协议调优-抑制慢启动技术

慢启动算法在传输开始时和发生拥塞时开始启动。其主要目的是,优化网络带宽利用,阻止发送方发送大量的数据淹没中间网关从而引起数据丢失。

慢启动的初始拥塞窗口一般设置为1个MSS(Maxium Segment Size)[cwnd=1],这里解释一下MSS和MTU的关系,MTU是链路层最大传输单位,以太网通常是1500,MSS通常是1500-40=1460,其中20个字节为TCP包头,20个字节为IP包头。MSS大小一般很难修改,是在通讯双方的MSS取最小值作为MSS,参见参考阅读资料,因此调整初始窗口大小尤为关键。

而通常搜索首页都超过这个1个MSS的size,百度首页为4185个字节。按照MSS1460计算,需要切成3个包,这样慢启动就会在3WHS后,分2批发送完这个首页(慢启动算法每次成功接收double一次窗口,是1,2,4,8,因此分2批发完),但如果初始拥塞窗口cwnd=3,则一次发送即可完成,节省了1个RTT时间。如果辅之以强制超时重传可以加速首页的展现速度,改善体验。

通常来说慢启动对short-lived connection都是极为不利的,特别是搜索引擎首页和结果页的这种情况,根据google的统计数据,

87%的搜索结果页小于10.5K。按照MSS1460计算,共计8个报文,按照cwnd= 3,6,12的这个趋势,2个报文能解决大部分问题,反之按照1,2,4,8这个趋势,则需要3个报文。

TCP协议调优-抑制慢启动技术

------------------------------------------------------------------------------------

MSS大小协商的参考阅读资料:http://www.cisco.com/en/US/tech/tk827/tk369/technologies_white_paper09186a00800d6979.shtml

慢启动:http://en.wikipedia.org/wiki/Slow-start