ICMP (ping) 请求中包含哪些数据?

问题描述 投票:0回答:4

我知道 ICMP 请求包含 IP 地址。 ICMP 请求中是否包含客户端 MAC 地址? ping 请求中还包含哪些其他信息(如果有)?

ping icmp
4个回答
12
投票

ICMP 请求是通过互联网发送的分层数据包。它包含以太网层,其中包含目标和源 MAC 地址。它还包含 IP 层,其中包含源 IP 和目标 IP,以及一些标志。最后它包含 ICMP 数据。它包含一个类型、一个子类型、一个校验和以及标头的其余部分,这些标头可能因类型和子类型而异(例如,echo 的代码为 8,reply 为 0)。

网络数据包中包含大量信息。另请注意,ICMP 是 IPv4 协议的一部分,因此不能正式由其他协议承载。虽然IP协议可以承载在与以太网协议不同的协议上。

每次经过路由器后,MAC地址都会改变。所以这绝不是互联网上源IP地址的MAC地址。但 IP 地址肯定是包含在内的,并且在本地网络上,客户端的 MAC 地址仍然包含在 Ether 层的数据包中。

维基百科有一些关于 ICMP 数据包的可读文章:icmp 消息 以及具有可读图表的不同协议。

如果您想查看一些实时请求,您可以安装wireshark,它将为您显示和剖析所有网络流量。这是一个非常方便和酷的工具。


2
投票

ICMP“ping”数据包,正式称为“回显请求”,包含原始 ping 可执行文件想要回显的任何内容。在互联网刚刚启动的糟糕的旧时代,他们拥有的路由器(实际上是所有计算机)都受到随机内存故障的影响。为了检测两个系统之间的路径是否畅通,它们会发送回显请求数据包并将请求的内容与答复进行比较。如果内容不同,他们就知道所涉及的任何一台机器或之间的路由器有问题。

在这里不可能准确地明确说明任何给定 ping 数据包中的内容,因为它在 ping 的实现之间会发生变化。


0
投票

人们通常不可能仅从计算机的 IP 地址获取计算机的 MAC 地址。这两个地址来自不同的来源。简单地说,计算机自身的硬件配置决定了它的 MAC 地址,而它所连接的网络的配置决定了它的 IP 地址。 但是,连接到同一 TCP/IP 本地网络的计算机可以确定彼此的 MAC 地址。

查看 RFC 792 了解完整的 ICMP 字段。


0
投票

Ping 涉及向目标主机发送 ICMP 回显请求并等待 ICMP 回显回复。该程序报告错误、数据包丢失和结果的统计摘要,通常包括最小值、最大值、平均往返时间和平均值的标准偏差。

© www.soinside.com 2019 - 2024. All rights reserved.