为什么 ping 使用 ICMP 而不是 TCP?

Why does ping use ICMP not TCP?

在我们的办公室,我们有一个 Amazon VPC 链接到我们的办公室网络,中间有一个堡垒服务器。

当我尝试 ping servers within the VPC it doesn't work. The answer I got from a co-worker was that "ping won't work because ICMP 时,我们的路由配置中没有链接,只有 TCP。"

(我可以 ping 通本地业务网络和互联网网站上的服务器)。

我的问题是:为什么 ping 使用 ICMP 而不是 TCP?

有些 ping 实用程序通过 TCP 或 UDP 使用类似 ping 的功能来测试目标主机是否应答连接尝试。其中之一是 Mark Russinovich 的 psping (https://technet.microsoft.com/en-us/sysinternals/psping.aspx),它可以使用 ICMP 或 TCP。从技术上讲,它与 ICMP 不同,因为它建立在 TCP 握手之上;实际上,您可以像 ICMP ping 一样使用它。

它们属于 OSI 模型中的不同层。 ICMP 是第 3 层,用于网络。 而TCP,UDP是第4层,用于传输。

Ping 是回声 request/reply,第 3 层的一部分。