记录受控起点和非受控终点之间的延迟

网络工程 故障排除 潜伏
2021-07-24 20:02:55

这可能是一个非常基本的故障排除问题,但值得询问以确保我以正确的方式测试事物并有效地解释结果。

我有一个受控的起点(我控制的服务器集群)和一个不受控制的端点(我没有物理或远程访问权限的数据中心)。作为正常故障排除的一部分,我经常需要建立延迟数字。

目前,我一直在使用ping 绘图仪或只是一个很好的老式连续pingtracert

如果我试图建立更现实的端到端数字(我正在使用的软件是数据库软件),我有时会使用Fiddler 2来捕获网络流量并比较那里的一些计时器(例如ClientDoneRequest-> ServerBeginResponse)获得完整的端到端时间。

在确定直接网络延迟的数字时,你们怎么看?

4个回答

您的问题的后半部分似乎表明您正在寻找考虑到形成应用层数据的过程的延迟数字,在这种情况下,“ping”将无济于事,因为 ping 中没有太多数据要形成包。

网络人员通常依赖 ping,因为它是一种相对轻便且可靠的方法,可以生成一定数量的随机数据来测试给定路径的可达性和延迟。例如,使用 HTTP 调用的应用程序的行为会有所不同,因为 HTTP 与 ICMP 不同。

如果您关心一般网络延迟数据,在任何特定于应用程序的上下文(这是最好的测试方法)之外,ping 工作得很好。

您是否可以选择在每个点的两个路由器之间使用 IP SLA?我不确定您在远程端的拓扑结构,因此不确定您是否在另一端有服务器,或者该服务器是否连接到理论上可以运行 IP SLA 的路由器

我只想提几件事。延迟在很大程度上取决于您的主机。确保它是您正在测试的服务器,而不是您的笔记本电脑。根据操作系统(Windows 或 Linux),您的 ping 延迟时间可能会有所不同。我曾有过 Windows 系统在相同网络路径上显示出比 Linux 系统更慢的延迟的经验。

Ping 作为一个合理的测试。但是,如果您可以执行从服务器到该数据中心的端点的 TCP 会话,您将获得更准确的数字,而无需控制端点。我会在您的 TCP 会话建立时运行数据包捕获。然后按照 TCP 流查看增量时间。您的初始 TCP 数据包和下一个序列之间的时间差是多少?这与您看到的实时延迟有关。

您是否试图发现网络是否运行良好或服务器是否在执行其工作?

测量延迟可能是一件有趣的事情 - 特别是准确。Ping 在大致了解您的网络延迟情况方面做得足够好,但是当涉及到非常低的数字时,它可能成为该工作的错误工具。它对更高级别的测试(如网站响应时间)也没有任何作用。

为了严格测量网络性能(延迟/带宽/损耗/等),我喜欢Exfo 的测试设备这只是一种偏好,老实说它是我使用的第一个设备,所以我相信竞争设备也能正常工作。JDSU 也是此类设备的主要供应商。

还有PCHAR,它是一种开源工具,可以比 ping 更准确地测量延迟。我没有直接使用它,但我知道有人使用它并喜欢它。

这篇文章很好地概述了 ICMP Echo 可以/不能做得好的一些事情。