跳转到内容
搜索文档

TCP 连接

最后更新 查看 MarkdownAgent 设置

以下部分说明 Cloudflare 如何通过 anycast 路由高效引导流量,并作为用户与源服务器之间的中间层。第二部分介绍用于性能优化的 TCP 连接和 Keep-Alive,最后是 TCP Fast Open(TFO)——一种增强 TCP 连接速度的协议扩展。

Cloudflare 如何连接用户与源站

用户通过从设备向 Cloudflare 全球网络发送请求来连接 Cloudflare。Cloudflare 作为用户与源站之间的中间层连接源服务器。

flowchart LR
accTitle: Connections with Cloudflare
A[Visitor] <-- Connection --> B[Cloudflare global network] <-- Connection --> C[Origin server]

用户流量根据最短边界网关协议(BGP)路径路由到最近的 Cloudflare 数据中心,这得益于 anycast 路由。Cloudflare 随后处理请求。如果请求未从 Cloudflare 数据中心提供,Cloudflare 将打开与源服务器的连接以转发请求。

TCP 连接与 Keep-Alive

HTTP(超文本传输协议)是在 TCP 上运行的第 7 层应用协议。默认情况下,HTTP 为每个请求-响应周期打开新的 TCP 连接,由于重复建立和拆除连接,可能导致性能开销。

Keep-Alive 是连接 TCP 和 HTTP 的机制,允许单个 TCP 连接保持打开以处理多个 HTTP 请求和响应。这最小化了为每个 Web 资源建立新 TCP 连接的开销和延迟。Keep-Alive 通过促进现有连接的复用、减少网络流量并提升用户体验,提高 Web 应用的效率和响应速度。

TCP 连接即使在 HTTP 请求结束后仍可保持。但是,为高效管理资源,空闲连接通常在一段时间不活动后终止。为增强连接复用并最小化连接开销,采用 Keep-Alive 机制。这些机制共同优化 Web 应用的性能和可靠性,同时节省网络资源。

如果用户或源站对两次 Keep-Alive 均无响应,Cloudflare 将通过发送 TCP Reset(RST)数据包断开连接。

对于与用户的连接,Cloudflare 的默认空闲超时为 400 秒。400 秒后,Cloudflare 将每 75 秒发送一次 Keep-Alive 探测。如果连续九次探测均无响应,Cloudflare 将通过发送 RST 数据包断开连接。

Enterprise 客户可以自定义用户与 Cloudflare 之间、以及 Cloudflare 与源站之间的 TCP 连接设置。请联系您的账户团队了解更多详情。

TCP Fast Open(TFO)

TCP Fast Open(TFO)是一种协议扩展,通过在初始 SYN 数据包中发送数据(而非在数据传输开始前需要单独的握手),可以显著提高建立 TCP 连接的速度。TFO 可以降低延迟并提高网站和应用性能,尤其在高延迟网络上。Cloudflare 在用户连接上支持 TFO。

当客户端发起与 Cloudflare 保护的 Web 服务器的连接时,它发送 TCP SYN 数据包请求连接。Cloudflare 作为反向代理拦截 SYN 数据包并以 SYN-ACK 数据包响应以建立连接。启用 TFO 后,Cloudflare 还可以在 SYN-ACK 数据包中发送初始数据(例如 HTTP 请求数据),无需额外往返即可传输数据。客户端收到带数据的 SYN-ACK 数据包并以 ACK 数据包确认。这加快了连接建立。

这篇文档对您有帮助吗?