tcp-window-scaling

动态 TCP 窗口大小
tcp-window-scaling

动态 TCP 窗口大小

在三次握手期间,发送方(10.16.0.128)和接收方(10.16.0.5)分别通告其窗口大小为 42340 和 65535。 从第 3 个数据包(syn+ack+ack)开始,发送方再次通告寡口大小为 166,而接收方通告寡口大小为 512。 您能告诉我为什么窗口大小在没有发送任何段的情况下减小了吗?每次确认时它都会不断变化吗?为什么他们在协商期间没有提交窗口大小。 10.16.0.128.59570 > 10.16.0.5.22: Flags [S], cksum 0x7da0 (incorrect -> 0xf0a5), seq ...

Admin

冻结的客户端连接中,传输中的字节数高于接收窗口
tcp-window-scaling

冻结的客户端连接中,传输中的字节数高于接收窗口

我正在处理一种“幽灵问题”。我们有一个端点 URL,有些人可以随时使用它而不会出现任何问题,但其他人在客户端有一个冻结的连接(使用 Java、Python C# 编写的多个客户端代码检查),该连接永远不会完成,而服务器可以看到重置连接。我已捕获了通过正常工作的网络进行的流量,并且它完全同步,我可以看到当发送方接近接收方窗口大小时它会回退,而出现故障的网络会使传输中的字节数超过计算的窗口大小的 3-4 倍。更令人困惑的是,我们有 2 个设置几乎相同的不同端点,其中一个会导致所述问题,另一个可以处理所有问题。(端点之间的唯一区别是集群上使用的 VM 类型)。似乎...

Admin

Windows 中的 localhost 环回 tcp 连接:增加每段 65535 字节的瓶颈
tcp-window-scaling

Windows 中的 localhost 环回 tcp 连接:增加每段 65535 字节的瓶颈

我遇到的情况是这样的:我有一个环回 TCP 会话,我想提高它的性能。我有类似套接字的对象(具体来说是 .NET Framework 中的 System.Net.Sockets),它们在 TCP 连接的两个方向上发送最多约 9MB 的消息。我观察到,这么大的消息到达另一端通常需要大约 20ms 的延迟。 使用 WireShark,我发现 TCP 流量限制为每段 65535 字节。我怀疑这是速度性能的瓶颈。在 TCP 标头中,启用了窗口缩放选项,并且计算出的窗口大小足够大。我怀疑 SYN 数据包中的“TCP 选项 - 最大段大小”(MSS) 限制了每个 TCP ...

Admin

当我们想要充分利用远程服务器的带宽时,我们是否仍然受到 TCP 窗口大小的限制?
tcp-window-scaling

当我们想要充分利用远程服务器的带宽时,我们是否仍然受到 TCP 窗口大小的限制?

根据这个网站一旦往返时间增加,使用默认的 64KB TCP 窗口大小,我们会对远程服务器损失一些实时容量吞吐量。 我的网络带宽为 240mb/60mb 下载/上传。我住在一个第三世界国家,所有可用的 CDN 服务器距离我都有 2000-4000 公里,我到最近的 CDN 服务器的往返时间为 82ms,这意味着由于距离的原因,我所能达到的最大速度约为 ~6Mbit/s(假设服务器使用默认的 64KB TCP 窗口大小)。 我知道向某个服务器开放多个下载流可以帮助实现最大带宽,但遗憾的是即使同时有 32 个流,我的...

Admin

如何调整 TCP 窗口大小?
tcp-window-scaling

如何调整 TCP 窗口大小?

我之前问过类似的问题,但我认为我没有清楚细节。 我的服务器存在一些问题,由于地理距离导致服务器和客户端之间的延迟过高。经过研究,我发现可以通过增加 TCP 窗口大小来解决这个问题。 问题是我真的不知道该怎么做,而且按照我在网上找到的说明做也没有任何帮助。 所以我希望有人可以分享一些文档/命令/说明或任何可以进一步改善这个问题的东西。 以下是一些信息: 操作系统:Ubuntu 20.04 (LTS) x64 服务器:Apache/2.4.41 应用程序类型:Python - Flask 主办公司:Digital Ocean 编辑:经过几次回复告诉我调整窗口...

Admin

解决路由器后面的 TCP 传输速率低的问题
tcp-window-scaling

解决路由器后面的 TCP 传输速率低的问题

我正在尝试调试主机(“lowHost”)上的低 TCP 传输速率。 作为参考,我将其与第二台主机(“highHost”)进行比较。 我正在进行两项速率测量: 使用 curl 从 Web 服务器下载大文件。 使用 iperf 与 highHost 相比,lowHost 要经过一个额外的网络跳数(“路由器”)。 lowHost ---(router)----->(fw)----> internet ----> webserver highHost ---------------->(fw)----> internet ----...

Admin

Windows 10 和 Linux 服务器之间 TCP 窗口缩放不起作用
tcp-window-scaling

Windows 10 和 Linux 服务器之间 TCP 窗口缩放不起作用

我们在运行 Windows 10 的几个客户端从我们的 HTTP 文件传送服务器下载文件时遇到了一些问题。 我们无法在我们这边重现该错误,但注意到 TCP 窗口缩放并未“增加”,并且 Linux 服务器和 Windows 10 客户端之间的吞吐量仍然很低。 我们在服务器上运行了 TCPDUMP,捕获来自客户端的数据包,并可以看到小窗口大小: 例子: 00:00:00.321292 IP 85.144.19.44.58799 > 195.224.144.66.80: Flags [.], ack 554881, win 1025, options...

Admin

为什么移动服务器后无法可靠地通过 TCP 发送或接收数据?
tcp-window-scaling

为什么移动服务器后无法可靠地通过 TCP 发送或接收数据?

我目前正在处理高延迟(100-400 毫秒)互联网链接的网络问题。我运行一个 Minecraft 网络,最近我将其移至一个单独的数据中心,以获得具有更好 CPU 和更多内存的服务器。该服务器的用户遍布世界各地。在切换之前,服务器位于蒙特利尔,欧洲用户的延迟约为 100-200 毫秒,澳大利亚用户的延迟约为 200-300 毫秒。切换后,服务器位于德国,北美用户的延迟约为 100-200 毫秒,南美和澳大利亚用户的延迟为 200-400 毫秒。总体而言,延迟非常相似,但谁的延迟很大,谁的延迟可以容忍,这一点各不相同(请注意,Minecraft 通常对延迟不太敏...

Admin

在 Ubuntu 1804 上查看/调整 TCP 窗口大小设置
tcp-window-scaling

在 Ubuntu 1804 上查看/调整 TCP 窗口大小设置

我有一个典型的长胖网络 - 客户端连接到具有大带宽的服务器,但由于 30 毫秒到 100 毫秒的地理距离而导致的延迟也很大,并传输大文件。 我注意到吞吐量的典型衰减 ~ 衰减率为 1 / 延迟。基于测试的典型吞吐量远低于客户端和服务器的理论带宽,并遵循此衰减规则。 我的文件传输测试似乎与 64KB 的 TCP 窗口大小一致,这表明未启用缩放功能。 我的服务器都运行 Ubuntu 1804。 如何查看和调整 Ubuntu 1804 服务器上的 tcp 窗口大小设置?我在之前的答案中找不到此信息。 ...

Admin

Windows Server 2012 TCP 窗口不缩放
tcp-window-scaling

Windows Server 2012 TCP 窗口不缩放

我有 2 台 Windows 2012 服务器,它们将连接速度限制在 1-3mBps 之间,这似乎与 TCP 窗口缩放有关。两台服务器都有这些设置 TCP Global Parameters ---------------------------------------------- Receive-Side Scaling State : enabled Chimney Offload State : disabled NetDMA State : di...

Admin

如何确定给定网络的瓶颈
tcp-window-scaling

如何确定给定网络的瓶颈

考虑一个接入点,其数据包队列可容纳最多 50 个数据包,并且网络的瓶颈是数据速率为 50 Mbit/s 的链路。 有相当多的节点无线连接到接入点,其中一个节点通过 FTP 将文件(1.5 GB)上传到远程服务器。观察 FTP 上传的平均吞吐量时,我注意到它大约为 13.7 Mbit/s。现在我想知道这是怎么可能的?瓶颈是 50 Mbit/s,对吗? 我能想到的唯一原因是:瓶颈一定在其他地方。由于网络的所有物理连接都支持更高的数据速率,所以瓶颈一定在接入点。 TCP MSS = 1460 字节,其公布的接收窗口缩放至 1,460,000 字节。是否可以通...

Admin

Server 2012 R2 上的 IIS 对远程客户端的服务非常缓慢
tcp-window-scaling

Server 2012 R2 上的 IIS 对远程客户端的服务非常缓慢

我们一直在尝试调试访问我们的 Web 服务器(2k12 R2 上的 IIS)的远程客户端的非常慢的传输速率。 到客户端的 RTT 约为 150ms,我们很难从 100Mbps 链路中获得超过 500kbps 的速度。客户端可以以超过 300MBit/s 的速度测试下载到本地速度测试服务器,因此我们认为问题不在于客户端,而在于发送端。 Wireshark 显示,发送方 (IIS) 从未发送超过 3 个数据包而不等待 ACK。我们看到的最大传输字节数约为 20KB。客户端公布的接收窗口约为 256kB,因此发送方根本没有填满窗口。 我们尝试了很多方法来解决...

Admin

如何改变tcp的窗口大小?
tcp-window-scaling

如何改变tcp的窗口大小?

我尝试通过修改net.ipv4.tcp_wmem和net.ipv4.tcp_rmem值来更改 tcp 的窗口大小,但是我所做的更改对实际窗口大小没有影响,我可以使用 wireshark 检查。 我尝试在 2 个不同的内核(3.2.69 和 2.6.38)上执行此操作,但完全没有任何效果。 我甚至尝试将最小/默认数字更改为荒谬的水平并禁用 window_scaling,但仍然没有效果 - 窗口大小保持完全相同。我做错了什么? -- 编辑 -- 我已将内核更新至 3.14.57,TCP 的窗口大小加倍,没有做任何其他更改。看起来这个值是在其他地方控制的,内...

Admin

Linux 中 tcp_syncookies 的更好替代品
tcp-window-scaling

Linux 中 tcp_syncookies 的更好替代品

为了防止 DDOS 攻击,我按照建议在我的 Linux 系统中将 /proc/sys/net/ipv4/tcp_syncookies 值设置为 1,以启用 TCP syncookies。 然而,当我查看这个 URL 时:http://ckdake.com/content/2007/disadvantages-of-tcp-syn-cookies.html 它告诉我,如果我启用 tcp_syncookies,那么一半的 tcp 功能(包括大窗口管理)将被禁用,这可能会降低性能。 我在其他地方读到,syn cookies 的部分目的是当更多数据包进入时将 ...

Admin