【发布时间】:2011-06-21 21:59:26
【问题描述】:
好吧,我知道这个问题的答案是 ICMP——我所有的教科书都这么说,互联网这么说,每个人都这么说……除了我的 TA。根据这个 TA ping 不仅与 ICMP 一起使用,而且还与 IP、arp 和其他一些一起使用。那么... 用于 ping 的协议是什么?除了 ICMP?
【问题讨论】:
标签: networking protocols ping
好吧,我知道这个问题的答案是 ICMP——我所有的教科书都这么说,互联网这么说,每个人都这么说……除了我的 TA。根据这个 TA ping 不仅与 ICMP 一起使用,而且还与 IP、arp 和其他一些一起使用。那么... 用于 ping 的协议是什么?除了 ICMP?
【问题讨论】:
标签: networking protocols ping
ICMP 表示 Internet 控制消息协议,总是与 IP 协议耦合(有 2 种 ICMP 变体,一种用于 IPv4,一种用于 IPv6。)
echo request和echo response是ICMP用来实现ping的两个操作码。
除了原始的 ping 程序之外,ping 可能只是意味着检查远程节点是否响应的操作,这可能在协议栈的多个层上完成 - 例如ARP ping 用于测试本地网络上的主机。术语 ping 也可能用于更高的协议层和 API,例如检查数据库是否启动的行为,在数据库层协议中完成。
ICMP 位于 IP 之上。您下面的内容取决于您所在的网络,它们本身与 ping 操作无关。
【讨论】:
Ping 可用于多种协议。协议值可以是 appletalk、clns、ip(默认)、novell、apollo、vines、decnet 或 xns。某些协议要求远端的另一台 Cisco 路由器来应答 ping 数据包。 ...(Cisco field manual: router configuration, By Dave Hucaby, Steve McQuerry. Page 64)
... 对于 IP。 ping 使用 ICMP 类型 8 请求和 ICMP 类型 0 回复。 traceroute(通过使用 UDP)命令可用于沿着数据包到达目的地的路径发现路由器。 ...(Page 63)
【讨论】:
互联网控制消息协议
http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol
ICMP 建立在一堆其他协议之上,因此从这个意义上说,您的 TA 是正确的。但是,ping 本身就是 ICMP。
【讨论】:
常用的命令行ping 工具使用ICMP Echo,但确实也可以使用其他协议,它们对于调试不同类型的网络问题很有用。
我至少记得arping(用于测试ARP请求)和tcping(尝试建立TCP连接并立即关闭它,它可用于检查流量是否到达主机上的某个端口)在我的脑海中,但我相信还有其他人。
【讨论】:
Netscantools Pro Ping 可以做 ICMP、UDP 和 TCP。
【讨论】: