为什么 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 层的一部分。
在我们的办公室,我们有一个 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 层的一部分。