存档

文章标签 ‘keep-alive’

TCP keep-alive & connection pool

2010年7月9日 谭俊青 没有评论

作者:谭俊青@MySQL实验室,转载请注明链接和出处。

要理解TCP keep-alive/persistent connection, 得从TCP协议说起。

TCP flow:

    _____                                                     _____
   |     |                                                   |     |
   |  A  |                                                   |  B  |
   |_____|                                                   |_____|
      ^                                                         ^
      |--->--->--->-------------- SYN -------------->--->--->---|
      |---<---<---<------------ SYN/ACK ------------<---<---<---|
      |--->--->--->-------------- ACK -------------->--->--->---|
      |--->--->--->-------------- ... -------------->--->--->---|
      |---<---<---<-------------- ... --------------<---<---M---|

建立TCP链接需要经过3步,SYN、SYN/ACK、ACK,关闭则需要4步

约定:

当用户通过浏览器打开一个页面的时候,最小情况下,只需要2个packet,一次是请求(http get request),一次是回应(response from server)。但是这里没有计入TCP链接的建立(3 packets)和关闭(4packets),当然每个packet都需要ACK,但是ACK信息一般直接包含在回应的packet里,为了量化方便,这里忽略掉。 … 【阅读全文·MySQL实验室】