You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TCP连接的本质是什么?长连接场景下的运作与成本疑问

TCP连接的本质与长连接场景解析

一、TCP连接的核心定义

TCP连接不是一条物理链路,而是客户端和服务器两端操作系统内核中维护的一组专属状态集合,包含双方IP地址、端口号、传输序列号、滑动窗口大小、重传计时器等关键参数。这组状态是两端可靠通信的"上下文",确保数据能按序、无丢失地传输。

二、跨洲际连接建立后发生了什么?

当亚洲客户端和美国服务器完成三次握手、建立TCP连接后:

  • 两端内核会为该连接分配专属内存资源(比如套接字收发缓冲区、连接状态结构体),并将连接标记为"已建立"状态。
  • 双方可以通过这个连接双向传输数据,数据包会经过中间的路由器、交换机等设备转发,但这些中间设备完全不保存TCP连接的状态——它们只根据IP头部的地址信息做转发,根本不知道"连接"的存在。

三、长轮询保持一分钟的实际情况

如果连接保持一分钟(比如长轮询场景),默认状态下:

  • 只要没有数据传输,两端不会主动发送任何数据包,中间路由器也不会有所谓的"心跳"操作。
  • 但要注意:部分网络设备(如NAT网关、防火墙)有连接超时机制——如果一段时间内没有数据包通过,它们会删除内部的转发映射表,导致后续数据无法正常送达。这时通常是应用层自己实现心跳(比如发送空HTTP帧、自定义心跳包),目的是让中间设备维持转发映射,而非保持TCP本身的连接状态。

四、为什么TCP连接建立成本高?

所谓"连接建立成本高",主要来自这几个方面:

  • 网络延迟开销:亚洲到美国的往返延迟(RTT)通常在200-300ms,三次握手至少需要1.5个RTT的时间(客户端发SYN→服务器回SYN+ACK→客户端发ACK),光是握手就需要几百毫秒的等待。
  • 系统资源开销:两端内核都要为新连接分配内存、创建状态结构体、维护各类计时器,高并发场景下大量短连接会快速消耗CPU和内存资源。
  • 拥塞控制初始化开销:TCP连接建立后,拥塞窗口(cwnd)会从初始值缓慢增长,初始阶段数据传输速率较低,要等到窗口扩容到合适大小才能达到理想传输效率。

内容的提问来源于stack exchange,提问作者mohammad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:03:22