如果你每天都和他吵架 延迟、卡顿和高延迟你并不孤单。在线游戏、视频通话或远程办公体验不佳的背后,有一个非常明确的罪魁祸首:你的家庭网络以及你的设备和服务器上 TCP/IP 协议的配置方式。
优化 TCP/IP 延迟 这不仅仅是调整几个“神奇”设置那么简单。你需要理解诸如此类的概念是如何运作的。 MTU、MSS、TCP窗口、延迟或缓冲区膨胀然后对您的电脑、路由器、Wi-Fi 网络,甚至云服务器或虚拟机进行相应的更改。让我们一步一步地来,但要注重实际操作:了解每项操作的作用,以及您可以采取哪些措施来加快连接响应速度。
影响延迟的关键 TCP/IP 概念
为了充分利用您的网络连接,了解一些事情会很有帮助。 TCP/IP 基本参数 直接影响游戏、视频通话或远程访问的延迟、稳定性和性能。
MTU、碎片化和LSO
La MTU(最大传输单元) 这是数据包在不被分片的情况下可以从网络接口发出的最大大小(以字节为单位)。在绝大多数以太网(以及 Azure 或 Google Cloud 上的虚拟机)中,默认值为 1500 字节,其中包括网络头部和数据。
当数据包超过最大传输单元 (MTU) 时,IP 层会将其拆分成几个较小的片段。 IP碎片化 这会增加CPU和内存的使用,无论是在数据分片的机器上,还是在数据碎片到达后重新组装碎片的机器上。这会导致额外的延迟和性能损失,尤其是在高流量情况下。
此外,还有那段著名的插曲。 “不要分裂”(DF) 在 IP 报头中。如果启用此功能,并且中间路由器收到一个大于其 MTU 的数据包,它不会对其进行分片,而是丢弃该数据包并发送 ICMP“需要分片”消息。这用于…… MTU路由检测(PMTUD)但如果防火墙阻止了这些 ICMP 数据包,发送方将继续尝试发送过大的数据包,从而导致延迟和重传。
在 Azure 或 Google Cloud 等环境中,碎片化的软件包也往往会失去其优势。 加速网络SR-IOV 和 SmartNIC。它们通过虚拟机管理程序的慢速路由进行处理,并且更多 抖动延迟更高,每秒数据包数量更少。因此,一般建议是: 通过适当调整 MTU 和 MSS 来避免碎片化。 如果中间有防火墙或 VPN,则不要过度增加 MTU。
另一方面,函数 大型发送卸载 (LSO) 这使得操作系统的 TCP/IP 协议栈能够生成大型“超级数据包”,然后由网卡根据 MTU 值进行内部分片。这显著降低了 CPU 负载,尽管在流量捕获中可能会看到看似巨大的帧,但这并不意味着网络分片,而是表明分片发生在网卡内部。
MSS、PMTUD 和 VPN
El TCP MSS(最大段大小) 这定义了每个 TCP 段(不包括 IP 和 TCP 头部)中可容纳的可用数据字节数。通常,系统按以下方式计算 MSS:
MSS = MTU - (tamaño cabecera IP + tamaño cabecera TCP)
MTU 为 1500,IPv4+TCP 报头为 20+20 字节,典型的 MSS 为 1460字节这个值是在 TCP 三次握手期间协商确定的,每一端都会提出自己的值。连接最终会采用两者中较低的值。
然而,途中可能会遇到一些设备(防火墙、路由器等)。 VPN网关等等)使用较小的 MTU,这实际上强制降低了 MSS。这就是…… 路径 MTU 发现 (PMTUD)当路由器无法转发数据包(因为数据包太大且设置了 DF 位)时,它会丢弃该数据包,并发送 ICMP“需要分片”消息,指示其支持的最大 MTU,以便源服务器减小数据包的大小。
如果这些 ICMP 数据包被阻塞,连接就会进入转发和丢包的循环,导致…… 延迟、重传和无休止的加载时间因此,在不检查整个路径或防火墙策略的情况下,随意增加计算机或虚拟机的 MTU 并不总是明智之举。
在社交媒体上 IPsec VPN 对于其他隧道,额外的头部会减少可用于数据的空间,因此建议使用较小的 MTU 和 MSS(例如,典型隧道中的 MTU 为 1400,MSS 为 1350),以避免隧道碎片化和相关的延迟。
延迟、往返时间 (RTT) 和 TCP 窗口
著名的“叮”声只不过是…… 往返延迟(RTT) 在两点之间。从物理层面来说,它受限于光在光纤中的传播速度(约200公里/毫秒)以及数据实际传输的路径。它很少是直线。
在 TCP 协议中,单个连接的最大理论吞吐量由以下基本公式决定:
rendimiento máximo ≈ tamaño de ventana TCP / RTT
La TCP窗口 这是发送方在尚未收到确认 (ACK) 的情况下可以“传输”的数据量。如果窗口大小为 65.535 字节,最大共享大小 (MSS) 为 1460,则在等待 ACK 之前只能发送大约 45 个数据包。如果往返时间 (RTT) 较高(例如,洲际之间的往返时间为 80-160 毫秒),则未缩放的窗口大小远不足以充分利用高容量链路。
默认情况下,TCP 报头中的窗口字段为 16 位,其最大值限制为 65.535 字节。对于现代网络而言,这显然不合理,因此多年前就引入了 [此处信息缺失 - 可能指特定功能或方法]。 TCP窗口缩放它将乘数 2^na 应用于该值,从而允许数百 MB 甚至 GB 的窗口。
在 Windows 或 Linux 等系统中,窗口缩放由预定义设置自动管理(自动调整),可以使用诸如 `tfs` 之类的命令查看或修改。 Get-NetTCPSetting o sysctl更激进的级别(例如,“实验性”)允许使用更大的窗口,并且可以大大提高长距离网络的性能,前提是丢包率不太高。
加速网络、RSS 和 GRO/TSO
在云平台(Azure、Google Cloud 等)上,传统网络接口严重依赖主机 CPU 来处理每个数据包、应用规则、封装和解封装。这导致…… 对虚拟机管理程序的巨大压力 当网络流量很大时,会产生不稳定的延迟。
这就是为什么所谓的 加速网络这些方案基于SR-IOV和带有FPGA的智能网卡等技术。其理念是,软件定义网络协议栈的大部分运行在网卡硬件上,数据流量几乎可以直接从虚拟机传输到网卡,绕过主机的虚拟交换机。
这提供了几个 优点:
- 延迟越低,帧率越高。
- 减少抖动
- 降低主机和虚拟机的 CPU 占用率。
然而,还有一些重要的细节需要考虑。例如,许多加速网络系统不会通过快速路由处理分片数据包;如果存在 IP 分片,则该流量会通过慢速路由传输,从而影响性能。
在客户操作系统方面,启用诸如此类的技术至关重要。 接收端缩放 (RSS)它将传入数据包的处理分配到多个 CPU 核心上,并进行分段和聚合下载,例如: TSO(传输分段卸载)和 GRO/LRO(通用接收卸载)这样就减少了 CPU 需要直接处理的数据包数量。
TIME_WAIT 和套接字重用
另一个鲜为人知但至关重要的 TCP 性能因素是状态。 等待时间当 TCP 连接正常关闭时,发送最后一个 ACK 的端点会进入 TIME_WAIT 状态,持续数十秒甚至数百秒。在此期间,系统会保留该套接字,以确保来自旧连接的延迟数据包不会重新出现并与新会话混淆。
在高负载的服务器或机器上,很容易积累 TIME_WAIT 中存在成千上万个套接字这可能会耗尽临时端口的范围,并在建立新连接时导致错误。因此,许多系统允许用户调整 TIME_WAIT 的持续时间、端口范围以及某些重用策略。
一种更激进的技术,由某些内核(例如 Azure 上的 Windows Server)支持,称为 TIME_WAIT 暗杀如果收到序列号远高于旧连接的新 SYN 数据包,系统可以在 TIME_WAIT 期间强制关闭套接字并立即接受新连接。这提高了可扩展性,但如果配置错误,则可能导致 互操作性问题 以及某些较为保守的 TCP 协议栈。

为什么ping在你的日常生活中如此重要
除了理论层面,延迟对我们如今几乎所有的在线活动都有直接影响。仅仅拥有“600 Mbps”的网速是不够的;如果响应速度慢,用户体验就会大打折扣。让我们来看一些例子: 一个“正常”的ping值至关重要。.
在线游戏和“可玩”的延迟水平
在竞技游戏中,每一毫秒都至关重要。 ping 值低于 20 毫秒 这几乎是理想状态:操作几乎实时响应,你几乎感觉不到任何延迟。延迟在 20 到 50 毫秒之间时,体验非常流畅。当延迟达到 50 到 100 毫秒时,你可能会注意到轻微的同步问题,尤其是在连接远距离服务器时。
从 100-300毫秒 严重的问题开始出现:射击延迟、动作延迟、赛车游戏中车辆“弹跳”等等。超过 300 毫秒后,游戏体验就变成了一种折磨,尤其是在射击游戏、赛车游戏或体育游戏中。
游戏类型也有很大影响。 第一人称射击游戏和赛车游戏 要想在竞技游戏中取得好成绩,延迟必须低于 50 毫秒;在在线体育游戏中,最好也保持在 30-40 毫秒以下。然而,在 大型多人在线游戏或回合制策略游戏即使延迟在 150-200 毫秒之间,游戏也能勉强流畅运行,不会影响游戏体验。如果你在 Windows 系统上玩游戏,或许会想了解一下具体方法。 减少 Windows 11 中的输入延迟 提高竞技游戏中的反应速度。
视频通话、屏幕共享和 VoIP 通话
在使用 Zoom、Teams、Skype 或类似平台进行视频通话时,ping 值也至关重要。理想情况下,ping 值应该稳定在…… 20-40毫秒对话流畅自然,互不干扰。大多数用户能容忍大约 100 毫秒的延迟,但说话时即使是轻微的延迟也能被察觉。
当 ping 值超过 100毫秒你开始无意中打断对方。对方的回应会短暂地出现“回声”,尴尬的沉默也变得频繁。此外,如果网络连接带宽有限或Wi-Fi信号差,还会出现视频和音频中断的情况。
连接器 屏幕共享或远程控制 效果类似。每次点击和鼠标移动都需要时间才能在远程屏幕上显示。延迟过高时,会感觉电脑运行缓慢。这对于任何想要高效工作的人来说都极其令人沮丧。
物联网、家庭自动化和远程办公
在生态系统中 物联网和智能设备 (例如扬声器、灯泡、摄像头、插座、机器人、宠物喂食器等),延迟也起着关键作用。虽然500毫秒的开灯延迟并不明显,但当需要连续执行多个操作或与语音助手(例如Alexa、Google Assistant)交互时,这种延迟就会变得非常明显。
远程办公时,访问远程桌面、服务器或云应用程序时持续的延迟会让任何任务都变得异常繁琐。许多人认为这是“速度不够快”,但实际上他们遇到的问题是…… 高延迟和/或高度不稳定的延迟(抖动) 由 WiFi 拥堵、路由器故障或服务器路由错误引起。
延迟和安全性:间接影响
高延迟本身并不意味着 直接安全风险然而,这也会带来一些副作用。如果监控系统、入侵检测系统或防火墙接收信息过晚,它们可能对攻击的反应也太慢,甚至会错过关键事件。
此外,当用户对网络延迟感到绝望时,他们往往会“绕过”安全控制: 他们会禁用防火墙、卸载杀毒软件或随意打开端口。 在路由器上进行设置以尝试使其“更快”。糟糕的网络体验最终可能会为真正的威胁打开不必要的方便之门。
家庭网络高延迟的主要原因
你在游戏或测速中看到的延迟是多种因素的总和:运营商、互联网路由、目标服务器……但在家里,有很多常见问题是你可以自己控制的。
WiFi覆盖范围差且存在干扰
现在我们大多数人几乎完全通过Wi-Fi连接网络,而问题也由此开始。 信号微弱或充满干扰 它不仅会降低速度,还会增加延迟和抖动,因为设备需要重新传输数据包、降低调制、等待信道空闲等等。
如果你离路由器很远,隔着好几堵墙,或者周围都是使用同一信道的邻近网络,你的延迟就会很高。此外,连接到接入点的客户端越多,每个客户端“轮流”通信的等待时间就越长。而速度慢的客户端也会对其他客户端造成负面影响。 查看您的 WiFi 网络上有多少台设备 识别问题客户。
这些功能在这里非常有用。 通话时间公平它会在设备间分配通话时间,避免速度较慢的设备独占无线电资源。即便如此,在玩游戏和使用固定电话办公时,如果可能,还是应该使用[替代方案]。 以太网电缆 把WiFi留给其他人吧。
过时或过载的路由器
老旧的路由器,尤其是固件过时或硬件配置非常基础的路由器,可能会成为严重的性能瓶颈。当路由器的处理器因管理NAT、防火墙、QoS和P2P流量而过载时,就会出现问题。 队列延迟和缓冲区膨胀数据包会在巨大的缓冲区中积聚,并以明显的延迟发送出去,从而破坏 ping 测试结果。
更新固件,禁用不必要的功能,如有必要,请向运营商申请更换设备或购买新设备。 最强大的中立路由器 这通常标志着一个转折点。偶尔重启一下程序也是个好主意,这样可以清除内存状态和潜在的内存泄漏。
下载和其他消耗带宽的设备
如果您的网络中有多台设备正在进行大量下载(P2P 下载、更新、4K 流媒体播放、云备份),这是正常的。 你的延迟峰值问题不在于“兆字节用完了”,而在于路由器如何管理出站队列。
解决方案包含两条路径:
- 一方面,更好地控制后台下载的内容(PC、手机、游戏机、NAS……)。
- 另一方面,激活并正确调整 服务质量和反缓冲膨胀 从路由器发出请求,以便交互式流量(游戏、VoIP、视频通话)优先于大量下载。
VPN、代理、防火墙和后台程序
该 VPN 它们对于加密流量或绕过地理限制非常有用,但几乎总是会增加延迟,因为你的连接会经过中间服务器。如果 VPN 是免费的或质量很差,则可能会严重影响网络延迟。某些 VPN 也存在同样的问题。 代理.
无论是电脑上的防火墙还是路由器上的防火墙,都会检查每个数据包,从而增加延迟;如果配置错误,还会严重降低连接速度。此外…… 后台程序 (Windows 更新、云客户端、游戏下载补丁等)会在不知不觉中占用大量带宽。
恶意软件和受感染的设备
感染恶意软件的计算机可能会产生隐藏流量(垃圾邮件、DDoS 攻击、挖矿、数据下载)或消耗大量 CPU 和磁盘资源,从而影响连接质量。如果您发现 所有操作都很慢,而且延迟会无缘无故地飙升。建议使用可信赖的杀毒软件对所有设备进行全面扫描。此外,建议遵循以下最佳实践: 维护健康的网络基础设施 并避免使用受损设备。

用于测量延迟和检测问题的工具
在进行任何更改之前,务必进行精确测量。不要仅仅依赖浏览器的速度测试:有一些专门的工具可以帮助您精确定位延迟飙升的原因,并确定问题出在您的本地网络、互联网服务提供商还是目标服务器上。
基本 ping 和 traceroute
效用 平所有操作系统都具备此功能,这是起点。只需简单操作即可。 ping 8.8.8.8 例如,您可以查看到特定目的地的平均延迟、最小延迟和最大延迟,以及是否存在丢包。如果您 ping 路由器的网关,则可以获得本地网络的延迟。
如果你添加一个 -t 在 Windows 上(ping 8.8.8.8 -t你可以让它运行一段时间,看看是否有任何峰值、丢包或抖动。而且 traceroute/tracert 你要检查数据包经过了哪些跃点,以及延迟在哪个点开始出现异常增加。
高级工具:WinMTR、PingPlotter 等
像这样的程序 港铁 它们结合了路由追踪和连续ping测试,显示信号丢失百分比以及每一跳的最小、平均和最大响应时间。这些工具对于确定问题是出在你的网络服务提供商的第一跳、中间骨干网还是游戏服务器本身非常有用。
其他实用程序,例如 网络延迟视图 (NirSoft) 可以测量您电脑打开的 TCP 连接的实际延迟。还有一些类似的软件套件。 NetScan 工具 集成了图形化 ping 工具、端口扫描器、路由追踪和 DNS 解析功能。所有功能合一。
测量移动设备的延迟:适用于 Android 和 iOS 的应用程序
在智能手机和平板电脑上,您还可以使用诸如 之类的应用程序来测量延迟。 Fing,He.net 网络工具,NetX 或者使用 iOS 上的特定 ping 工具。这些工具非常适合检查问题是出在特定房间的 Wi-Fi、移动网络,还是固定电话本身的质量不佳。
服务器和云上的高级 TCP/IP 优化
如果您管理服务器、云虚拟机或要求苛刻的 Web 项目,则可以调整更多 TCP/IP 和内核参数。 降低延迟,提高性能。 尤其是在高速网络上。
Linux 内核和 TCP 协议栈设置
在 Linux 系统上,使用 sysctl 和工具之类的 tc o ethtool 您可以应用一些高级优化,例如:
- 降低最低RTO(恢复运营时间)。 (
net.ipv4.tcp_rto_min_us在低延迟的内部网络中,延迟时间应设置为安全值,例如 5000 微秒(5 毫秒),以便更快地从丢包中恢复。 - 激活 公平排队(FQ) 同
tc qdisc replace dev <iface> root fq.为了更好地在不同数据流之间分配带宽,避免单个连接产生过多的突发流量。 - 禁用 不活动后启动缓慢 (
net.ipv4.tcp_slow_start_after_idle=0对于使用持久连接的服务器,这样做可以避免每次从睡眠模式唤醒后都从极低的带宽重新开始连接。 - 禁用有问题的那部分 HyStart Cubic TCP 中的 ACK 序列检测。防止拥塞误报减缓窗口增长速度。
- 增加 TCP缓冲区 (
tcp_rmem, tcp_wmem, rmem_max, wmem_max为了能够在具有高 RTT 的链路上维持高吞吐量,防止套接字内存不足。 - 限制
tcp_notsent_lowat这样可以防止内核中积累过多的未发送数据,从而保护系统免受过度内存消耗的影响。 - 启用 硬件 GRO/LRO 在兼容的网卡上(
ethtool -K <iface> rx-gro-hw on)对数据包进行分组,以减少每次中断的 CPU 负载。
大 MTU 和高性能网络
在提供支持的内部云网络(例如,Google Cloud VPC)中 巨型 MTU 最大可达约 8900 字节强烈建议增加 MTU(例如增加到与 4 KB 内存页兼容的约 4082 字节),以减少每秒处理的数据包数量并提高 CPU 效率。
但是,对于出站到互联网或通过 VPN 的流量,您必须格外小心:在这种情况下,最好保持 1500 的标准 MTU 值,或者根据路由进行调整(ip route change 同 mtu y advmss) 以便外部通信不会因数据包过大而出现碎片化或丢失。
Web服务器、HTTP/2/3和缓存
在 Web 服务器(Nginx、Apache 等)上,除了调整 TCP 之外,还可以通过启用以下功能来大幅降低感知延迟: HTTP/2 和 HTTP/3 (QUIC)这样就可以通过单个连接复用多个请求,从而降低握手成本。
启用 GZIP 压缩或 Brotli使用 内存缓存 (Redis、Memcached),压缩 CSS/JS 并通过以下方式提供静态内容 CDN 与附近的接入点 对用户而言,TTFB(首字节响应时间)和网络 RTT 节省的每一毫秒,都会让网站在访客眼中响应得“更快”。
持续监控和延迟指标
最后,如果你真的重视绩效,就需要持续不断地衡量它。像 ApacheBench、wrk、JMeter 或者,可观测性套件(Prometheus + Grafana、New Relic、Datadog 等)允许您进行监控 往返时间 (RTT)、第一字节到达时间 (TTFB)、延迟百分位数、吞吐量和错误率 巴霍卡尔加
设置 TTFB 超过特定阈值、服务间内部 ping 值激增或丢包率增加时的警报,有助于在延迟到达最终用户之前主动检测网络问题、CPU 饱和、路由更改或瓶颈。
考虑到所有这些概念和设置,从 MTU 和 MSS 到路由器 QoS、加速云网络和 Web 服务器配置,很明显,延迟并非单一因素造成的。它是众多网络组件以及 TCP/IP 协议本身共同作用的结果。只有当这些组件和协议进行适当调整时,才能保证游戏、视频通话、远程办公和网站都能流畅响应。 即时感 这是我们所有人都在追求的,而这往往是通过调整和理解网络来实现的,而不是简单地增加“更多兆字节”。