Ping / 跟踪路由

dba*_*ett 1 networking ping

我越来越多地看到程序员开发基于我所说的“ping-then-do”心态的基于 Web 的应用程序。一个例子是在发送邮件之前 ping 邮件服务器的应用程序。在另一个论坛的一场相当激烈的辩论中,我发表了这样的声明,“如果你要编写使用互联网的程序,你至少应该对基础有一个基本的了解。“ping-then-do”的愿望告诉我那么多人,不要。”

在这个论坛和 Stack Overflow 上,我看到很多关于 ping/trace route 的问题,想知道为什么?如果可以在这里讨论它是可以接受的,我想听听其他人的想法。如果没有,我认为它会迅速关闭。

一个澄清 - 我想明确一点,我在谈论互联网流量,而不是私有网络。

小智 8

以我的经验,很多程序员不明白什么是ping,什么不是。我经常遇到那些认为如果他们可以ping通一个东西,他们就可以使用运行在那个东西上的X服务。还有一些人认为,如果他们不能ping通,那么他们就不能使用它。这两个假设都是错误的。

话虽如此,我们不能再将网络应用程序限制为完全了解网络的人,就像我们可以将数据库应用程序限制为完全了解数据库的人一样。如果我们这样做了,我们会看到更少的应用程序,程序员会遇到更少的可教时刻。

  • 我在一个阻止 ICMP 的论坛上进行了此讨论。当我告诉他们关闭浏览器并 ping 论坛时,它就结束了。当它恢复时,我们可以继续讨论。其中一名参与者在灯光熄灭前离开了 15 分钟。 (3认同)

Mat*_*ons 5

我不相信这不属于元数据,但这是一个缓慢的早晨,那么有什么危害呢?

尤其是 ping,它是那些入门门槛低且只需少量工作即可提供高度有用性的工具之一。它也是人们在网络中学习的第一个诊断工具之一。这意味着许多不同技能水平的人都接触过它。

底层机制完全没有直接暴露给 ping 的最终用户。新用户可以立即判断主机是否已启动。至少,那是他们认为他们看到的。作为有经验的用户,您知道情况并非总是如此。这是使用 ping 作为唯一诊断工具的问题。

它不是某事上升或下降的指标。它是响应时间的指标。缺少回复与主机是否接收流量无关,但这就是它的使用方式,因为大多数主机都会响应 ICMP 数据包。我仍然有相对知识渊博的用户发誓如果远程服务器不响应 ICMP,他们就会关闭。

结果是,只要不了解其用途的用户使用它,就会有问题。好处是这些问题让我们有机会提高提问者的知识。

至于traceroute,它是一个非常复杂的工具,看起来非常简单。“如果我跟踪路由这个 IP,我会看到它和我之间的所有计算机”,就好像互联网是一系列管道,就像地铁一样,在那里你可以看到你自己和目的地之间的站点。

如您所知,互联网不是那样工作的。路线一直在变化。不能保证两个数据包将遍历相同的路径(甚至 ICMP 响应将遍历源所采用的相同路径)。这并不意味着 traceroute 没有用,而是它需要更高水平的知识来解释。

同样,当人们提出 traceroute 问题时,我们应该将其视为教育的机会,而不是滥用他们的借口。