目录
说到网络性能问题,影响的因素有很多,以前上课时老师讲的主要有时延和带宽两个,时延简单来说就是一条消息从一端发送到另一端接收的时间,长短也有很多方面决定,例如从物理层开始,网络数据在光纤等不同设备上的传输时间不同,网络层上消息会经过路由转发,在路由器上会因为等待发送而产生延迟,一般来说经过的路由器越多,产生的延迟就越大。还有一个重要因素是带宽,网络带宽指的是信道单位时间内可以传输的数据量,把网络带宽比喻成车道来理解就很容易了,带宽越大,单位时间内传输的数据量就越多,就像双车道,三车道,车道数量越多,单位时间内可通过的车辆就越多,交通状况越流畅。这篇日志前半部分大致总结下以前上课的知识,接收窗口和拥塞窗口,当作为后面慢启动和队首阻塞问题的铺垫,还有后面想写的关于HTTP/2的问题。
想要优化网络性能,通常就是从这两方面入手,现在带宽越来越大,能提升的方面不多,着重是降低延迟。无论是HTTP还是HTTPS,使用的都是TCP传输控制协议,工作方式是使用三次握手协议建立连接,待客户端和服务器端成功建立连接后,才能开始传输数据。我不详细重复三次握手的过程,三次握手需要1.5次RTT(往返时间),RTT往返时间的长短取决于延迟,在这里我想表达的是,如果不使用长连接或重用连接的方式,建立一次连接是相对来说较耗时的,所以这篇日志在如何降低延迟方面,总结了两部分优化,慢启动和队首阻塞问题。
流量控制
说慢启动前,先讲一讲生活中的一个场景,大家有没有发现,下载文件时,无论你家的宽带多高,下载速度总是从几百KB到1M开始,慢慢升上去,当然起始值可能