我想看一张延迟图,显示世界各地不同目的地之间实现的最低延迟。例如,丹麦和印度之间实现的最低延迟是什么。例如,这可以用于规划放置在线游戏服务器场的位置。
我们看到访问同一子网内远程资源的服务的延迟约为 100-300 毫秒,但是当我们使用 ping(ping 大小与正常发送的数据包大小相似)时,我们看到响应为 5 毫秒或更短。还有什么我们应该检查的吗?

人们可能期望tracert延迟总和等于 267 毫秒:

在我的研究小组中,我们最近将我们机器上的操作系统从 Red Hat 6.2 升级到 Debian 8.3,并观察到我们机器之间通过集成 Intel 1G NIC 的 TCP 往返时间从大约 110µs 增加到 220µs。
起初,我以为是配置问题,所以我将所有tcp_low_latency=1未升级的Red Hat机器的sysctl配置(例如)复制到Debian机器上,但并没有解决问题。接下来,我认为这可能是 Linux 发行版的问题,并在机器上安装了 Red Hat 7.2,但往返时间仍然在 220µs 左右。
最后,我认为问题可能出在 Linux 内核版本上,因为 Debian 8.3 和 Red Hat 7.2 都使用了内核 3.x,而 Red Hat 6.2 使用了内核 2.6。所以为了测试这一点,我安装了带有 Linux 内核 2.6 和宾果游戏的 Debian 6.0!时间再次加快,为 110µs。
其他人在最新版本的 Linux 中是否也遇到过这些更高的延迟,是否有已知的解决方法?
下面是一个 C++ 应用程序,可用于对延迟进行基准测试。它通过发送消息、等待响应,然后发送下一条消息来测量延迟。它使用 100 字节的消息执行 100,000 次此操作。因此,我们可以将客户端的执行时间除以 100,000 以获得往返延迟。要使用它首先编译程序:
g++ -o socketpingpong -O3 -std=c++0x Server.cpp
Run Code Online (Sandbox Code Playgroud)
接下来在主机(比如 192.168.0.101)上运行应用程序的服务器端版本。我们指定 IP 以确保我们托管在众所周知的接口上。
socketpingpong 192.168.0.101
Run Code Online (Sandbox Code Playgroud)
然后使用 Unix 实用程序time来测量客户端的执行时间。 …
当我说路由距离时,我的意思是在全球范围内。例如,如果我的目标受众在中国,我是否在中国寻找主持人?
您会推荐哪些资源(书籍、网页等):
netstat -s);我所知道的最接近的是这个文件,但它相当简短。
或者,欢迎您直接回答上述问题。
编辑需要明确的是,问题不仅仅是关于“异常”延迟,而是关于一般的延迟。此外,它专门针对以太网上的 TCP/IP 而不是其他协议(即使它们具有更好的延迟特性。)
卫星连接通常具有大约 500 毫秒的 RTT。尽管有大量带宽,但连接通常会遭受次优传输速度的影响,因为 TCP 确认需要很长时间才能到达。
我的理解是,解决 TCP 连接问题的一个好方法是将 TCP 窗口大小设置为连接速度(以位为单位)乘以 RTT(以秒为单位)。因此,通过卫星的 1mbps 连接应该具有 512kb 的窗口大小。
这其中有哪些陷阱?是否还有其他类似的调整可以优化卫星连接?我知道许多现代操作系统会自动修改窗口大小,但它们是否足够激进,使窗口大小足够大以用于卫星通信?
顺便说一句,我将假设在经常丢弃数据包的网络上不希望使用大窗口大小,因为重传将以窗口大小进行,并且您可能会将大部分带宽用于重传开销。
谢谢,我仍在学习很多关于网络的知识,感谢您的投入。
我收到用户关于大型仓库设施的两个部分之间网络应用程序性能不佳的投诉。该软件是一个运行在 Linux 服务器上的基于 curses 的终端应用程序。客户端是运行 telnet 或 SSH 客户端的 PC。问题开始于一天前,最近(已知)环境没有发生变化。
核心交换机是一个的Cisco Catalyst 4507R-E在MDF,挂钩2960个交换机在Cisco催化剂的4部件层叠IDF ...它们通过多模光纤连接。服务器位于 MDF 中。受影响的客户在 IDF 中。
从 Linux 应用服务器 Ping 到整个建筑的 2960 堆栈的管理地址显示高差异和大量延迟:
--- shipping-2960.mdmarra.local ping statistics ---
864 packets transmitted, 864 received, 0% packet loss, time 863312ms
rtt min/avg/max/mdev = 0.521/5.317/127.037/8.698 ms
Run Code Online (Sandbox Code Playgroud)
但是,从应用程序服务器到客户端计算机的 ping 更加一致:
--- charles-pc.mdmarra.local ping statistics ---
76 packets transmitted, 76 received, 0% packet loss, time 75001ms
rtt min/avg/max/mdev = 0.328/0.481/1.355/0.210 ms
Run Code Online (Sandbox Code Playgroud)
相关的 Linux 接口或交换机端口均未显示错误(请参阅问题底部)。 …
我正在寻找一个(便宜的)网络托管服务商。基本上,我能找到并符合我要求的所有托管服务提供商都位于美国。
但我的目标受众在(西-)欧洲,我肯定知道,因为该网站是荷兰语。
在美国托管我的网站会对用户的舒适度产生负面影响吗?我会失去什么表现?
我知道 TCP 封装在 TCP 上通常是一个糟糕的想法,但我可以处理偶尔降低的性能和 MTU 问题,并且 TCP 中的滚雪球效应 TCP 提供了在两个层上进行错误控制的地方。
Windows 7 x64 上最新的 OpenVPN 客户端存在严重的延迟问题,ping 隧道内的主机会导致 ping 时间超过 500 毫秒,并且总体性能非常糟糕。吞吐量看起来不错,实际上只是延迟。
但是,在同一台计算机上,Linux 64 位(ubuntu 10.04,相同的 OpenVPN 版本,相同的 OpenVPN 配置,没有不同的设置)上的 OpenVPN 客户端可以完美运行。~30ms,一切都非常好用。
在相同的交换机上,相同的 OpenVPN 客户端版本,相同的配置文件,在 Mac OS X 10.5 (PowerPC) 上也可以完美运行。
我根本无法解释这一点。我尝试了各种方法,例如将虚拟适配器的 MTU 值降低到 1400(因为可怕的商业交换机文档提到这不是在 Windows 上动态设置的,并推荐了这样的操作),我尝试过在全局 TCP 设置中禁用 ECN、烟囱和 CTCP,打开和关闭 lzo 压缩,牺牲一只山羊,没有什么比这更好的了。
有任何想法吗?起初我认为 Windows 上的 OpenVPN 中缺少 PMTU 支持是造成此问题的原因,但我尝试使用 Windows XP,它也可以完美运行。我从用户那里得到报告,它在 Windows 7 32 位上也能完美运行。此外,文档似乎还说 MTU 设置对于 TCP 连接毫无价值,并且适用于 UDP。
tl; dr:TCP 上的 OpenVPN 速度很慢,但仅在 Windows 7 x64 中,其他一切正常。是什么赋予了? …
latency ×10
networking ×6
hosting ×2
linux ×2
tcp ×2
windows ×2
cisco ×1
ethernet ×1
internet ×1
mtu ×1
openvpn ×1
performance ×1
ping ×1
satellite ×1
tcp-window ×1
tcpip ×1
web-hosting ×1
windows-7 ×1