http2.0相关的知识

123 阅读1分钟

TCP连接

TCP

1、一个tcp连接可以对应几个HTTP请求?

如果维持连接,一个TCP连接是可以发送多个HTTP请求的。

2、浏览器对同一 Host 建立 TCP 连接到数量有没有限制?

chrome最多允许对同一个Host建立六个TCP连接。

3、为什么有的时候刷新页面不需要重新建立SSL连接?

TCP连接有的时候会被浏览器和服务端维持一段时间,TCP不需要重新建立,SSL也会用之前的。

TCP的保活机制就是用来解决这个问题的,这个机制就叫keepalive。

保活机制默认是关闭的,TCP连接的任何一方都可以打开此功能,有三个主要配置参数用来控制保活功能。

  • 系统级:保活时间tcp_keepalive_time,探测时间间隔tcp_keepalive_intvl、探测循环tcp_keepalive_probes。
  • 保活时间(tcp_keepalive_time)默认为7200秒,保活时间间隔默认为75秒,探测循环次数默认为9次。
  • 默认情况下一条TCP连接在2小时(7200)秒都没有报文交换后,会开始进行保活探测,若再经过 9 * 75 秒 = 11分钟15秒的循环探测都未收到探测响应,即共计2小时11分钟15秒后会自动断开TCP连接。
  • 单条socket:保活时间TCP_KEEPIDLE、保活探测时间间隔TCP_KEEPINTVL,探测循环次数TCP_KEEPCNT
  • 是由TCP层(内核态)实现的。