为什么创建一个新的 TCP 连接被认为是昂贵的?是我想到另一个问题时想到的问题。
保持 TCP 连接处于活动状态以及通过连接池缓存连接到底意味着什么?(我确实理解线程池的概念,但与连接池的“连接”部分混淆)。
TCP 流量在到达目的地之前不应该流经许多基于 Internet 的 IP(计算机和路由器等)吗?如果是这样,那么连接甚至意味着什么?它是否指为 TCP 流量建立一次的路径,并且重新使用连接意味着一次又一次地使用相同的路径,直到该路径中的某些 IP 不再可用?
为什么创建一个新的 TCP 连接被认为是昂贵的?是我想到另一个问题时想到的问题。
保持 TCP 连接处于活动状态以及通过连接池缓存连接到底意味着什么?(我确实理解线程池的概念,但与连接池的“连接”部分混淆)。
TCP 流量在到达目的地之前不应该流经许多基于 Internet 的 IP(计算机和路由器等)吗?如果是这样,那么连接甚至意味着什么?它是否指为 TCP 流量建立一次的路径,并且重新使用连接意味着一次又一次地使用相同的路径,直到该路径中的某些 IP 不再可用?
TCP 连接通过三次握手来初始化,其中连接的两端就它们用于发送数据包的序列号达成一致。
当三次握手完成后,连接处于 ESTABLISHED 状态,这意味着数据可以双向流动。
连接中的各个 TCP 段可以在发送方和接收方之间采用不同的路径。TCP 关心的只是两端对连接状态有相同的想法。
保持 TCP 连接处于活动状态意味着连接保持在 ESTABLISHED 状态,即使没有立即需要通过连接传输任何数据。Web 服务器使用连接池来管理这些与客户端的开放连接。
保持 TCP 连接打开的实际示例。网站访问者加载https://www.example.com。
GET /
Web 服务器发送请求,服务器返回响应页面。访问者然后浏览该页面并单击https://www.example.com/example链接。
GET /example
直接向 Web 服务器发送请求,重用现有的 TCP 连接和 TLS 传输。如果 Web 服务器/客户端没有保持 TCP 连接打开,浏览器将不得不为第二个 HTTPS 请求重复步骤 1 和 2。