PING使用哪些协议?

38

好的,我知道这个问题的答案是ICMP。我的所有教科书都这么说,互联网上也是如此,每个人都这么说......除了我的TA。根据这个TA的说法,ping不仅与ICMP一起使用,还与IP、arp和其他一些协议一起使用。那么......用于ping的协议有哪些?除了ICMP之外?

好的,我知道这个问题的答案是ICMP。我的所有教科书都这么说,互联网上也是如此,每个人都这么说......除了我的TA。根据这个TA的说法,ping不仅与ICMP一起使用,还与IP、arp和其他一些协议一起使用。那么......用于ping的协议有哪些?除了ICMP之外?
5个回答

30

ICMP代表Internet控制报文协议,常常与IP协议一起使用(有两个ICMP变体,一个用于IPv4,另一个用于IPv6)。

ICMP使用的echo请求和echo响应是实现ping的两个操作码。

除了原始的ping程序外,ping可能仅意味着检查远程节点是否响应,这可以在协议栈的多个层上完成 - 例如检测本地网络中的主机的ARP ping。ping术语也可能在更高的协议层和API中使用,例如在数据库层协议中检查数据库是否在线的操作。

ICMP位于IP之上。下面所述的内容取决于您所在的网络,并且本身与ping的操作无关。


4
Ping可以与各种协议一起使用。协议值可以是appletalk、clns、ip(默认)、novell、apollo、vines、decnet或xns。某些协议需要在远程端有另一个Cisco路由器来响应ping数据包。对于IP,ping使用ICMP类型8请求和ICMP类型0回复。可以使用traceroute(通过使用UDP)命令来发现数据包到达目的地所经过的路由器。(思科实战手册:路由器配置, Dave Hucaby, Steve McQuerry. 第64页) (第63页)

3

如果TA是正确的,那么当我被问及ping及其协议(我即将参加考试)时,我应该回答ICMP、IP、ARP,还是应该加上TCP、UDP、RARP? - Izumi

1
通常的命令行ping工具使用ICMP Echo,但其他协议也可以使用,并且它们在调试不同类型的网络问题时非常有用。
我至少记得arping(用于测试ARP请求)和tcping(尝试建立TCP连接并立即关闭它,可用于检查流量是否到达主机上的某个端口),但我肯定还有其他的。

我们有ping的UDP版本吗?RARP呢?如果我们有ARP的版本,那么RARP也应该有一个版本,对吧? - Izumi
1
@Izumi:”ping“是一个程序的名称,并且也代表着检查网络连接活跃性的概念。因此,在我看来,询问它使用了哪些协议不够准确。实际上,我可以通过向某人扔石头来实现“ping”操作(并且我已经这样做过)。确实,这甚至会发出类似“ping”的声音。 - President James K. Polk
哈哈,是的,我知道这是一个程序,这就是为什么我最初感到困惑(课程中的所有其他人也是如此)。但这是我的一个朋友被问到的问题,当他回答“ICMP”时,TA说-不正确,你应该添加IP、ARP、TCP和其他我不知道的内容。这就是我问的原因。 - Izumi

0

Netscantools Pro Ping 可以执行 ICMP、UDP 和 TCP。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接