HTTP协议学习笔记(二)性能考量

Http协议是基于TCP协议的,因此TCP协议的性能将直接影响HTTP通信的性能。 服务器端用于处理请求的时间不在我们讨论的范围之内,那么性能问题聚焦在以下方面:

  • 建立TCP连接的三次握手
  • TCP慢启动拥塞控制
  • Nagle算法
  • delayed-ack (延迟确认)
  • TIME-WAIT时延和端口耗尽。

建立tcp连接的三次握手

这个应该比较容易理解了。 TCP连接的建立需要经过3个网络传输的过程。详见这篇

TCP慢启动

TCP连接刚刚建立的时候,会限制数据发送的最大速度。如果数据发送成功,会逐渐提高数据传输速率。这一特性称之为TCP满启动,用于防止互联网上出现突然的过载和拥塞现象。如果某个HTTP事务有大量的数据要发送,那么在TCP连接刚刚建立的时候,是不能立即将所有的分组发送出去的。必须按照慢启动策略,先发一定数量的分组,得到ack响应之后才能继续发送。 在TCP慢启动的作用下,可以发送的分组的数量是逐渐调节增大的。这就导致了新建立的TCP连接的传输速度,比已经建立的,传输过一定数据的连接要慢一些。所以HTTP协议中存在重用现有连接的机制。

继续阅读“HTTP协议学习笔记(二)性能考量”