TCP慢启动的弊端,使用TCP分岔优化云服务等服务的性能。
TCP的传输在慢启动机制下有启动缓慢,增长快速的特点,
1、以一个报文启动,以不断乘2的速度增加传输量。
2、这里可以看出TCP涨的快,起点低。
3、TCP建立和关闭连接经历的三次握手四次挥手也是很消耗资源和时间的。
这就带来了一个现象:
用户在端系统上的操作需要TCP在客户端和服务端交换文件,进程接收到用户操作并与服务端进行文件交换后对用户操作做出响应的时延会受到传输时延RTT不同的影响。
1、在文件比较大时,TCP的传输保持快而稳定,感觉不到RTT对用户操作相应
2、文件比较小时,TCP的的传输因为慢启动导致前期的传输较慢,多个RTT消耗的时间在整个传输过程中的占比变大了;
当文件较小并且数量庞大时,服务器就会有大量的时间被花在传输报文以外的事件上,比如:建立和关闭连接,太多的往返传输时延RTT,大量的cookie等,加上服务器本职功能,处理传入文件。服务器会因太多的时间和资源被浪费在RTT上,例如:电商网站上对商品页面的点击,文件小和操作数量庞大。
但服务器集群无法直接放置在人口密集区,而一般放在很远的地方,例如云服务器,这导致了传输时延RTT对用户操作时延的影响的增大。
解决这种现象的方法:
将上述的服务器按照功能拆分为:接收请求的服务端,处理请求的服务端
将接收用户请求的服务端防止在接近用户的地方,用于接收大量的用户的大量的操作,无法避免慢启动带来的弊端,但可以通过减少接收服务器与用户的距离来减少RTT的影响。
接收服务器和处理服务器之间保持一个窗口相当大的连接,接收服务器收集到大量的用户操作后发送给处理服务器处理,处理服务器处理后发回对应文件,在稳定连接中,通过保持较高的速度的窗口减小了RTT的影响。
接收服务器发挥的作用时将一个巨大窗口的TCP拆分成无数微小的TCP,大大提高了TCP的利用率,这种方法就是TCP分岔。