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

时间:2013-10-23 20:57:50

标签: ping icmp

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

3 个答案:

答案 0 :(得分:10)

ICMP请求是通过Internet发送的分层数据包。它包含Ether层,其中包含目标和源MAC地址。它还包含IP层,它具有源IP和目标IP以及包含的几个标志。最后它包含ICMP数据。它包含一个类型,一个子类型,然后是校验和以及标题的其余部分,它可以根据类型和子类型而变化(例如,echo的代码为8,回复为0)。

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

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

维基百科有一些关于ICMP数据包的可读文章:icmp message和带有可读图表的不同协议。

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

答案 1 :(得分:0)

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

查看RFC 792完整的ICMP字段。

答案 2 :(得分:0)

ICMP“ ping”数据包(正式称为“ echo request”)包含原始ping可执行文件想要回显的所有内容。在互联网第一次启动的坏日子里,他们拥有的路由器(实际上是所有计算机)都遭受随机内存故障。为了检测两个系统之间的路径是否畅通,他们将发送回显请求数据包,并将请求的内容与答复进行比较。如果内容有所不同,他们知道所涉及的机器或两者之间的路由器存在问题。

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