要理解这个问题的原因,首先要了解下osi七层模型hetcp/ip协议族的对应关系,请参考下表内容:
从上图中可以看到,ip协议是工作在网络层,而arp协议(将网络层的ip地址解析为数据链路层的mac地址寻址)是工作在数据链路层的。
根据数据转发原理,两个不同网段的ip地址要进行通信,首先进行寻址,例如下图中的pc1要和pc3通信,pc1上先查找arp表没有发现pc3的mac地址,广播后也没有找到pc3,pc1首先要把自己的数据发往自己的网关设备r1,r1根据自己的路由表发现可以通过r2转发,于是数据到了r2。r2又根据自己的路由表发现目的ip可以通过r3转发,数据到达r3,最后r3根据自己的arp表直接转发到pc3,这就是一次简单的ip路由。
通过上图我们可以看到,不同网段的ip地址通信,需要用到路由的概念。而支持路由的设备一般是路由器或者三层交换机,这两种设备是可以隔离广播的(设备不同类型的接口下是不同的广播域)。当pc1想要通过arp协议来查找pc3的mac地址的时候发送的广播报文在r1处就被隔绝了,不会得到r1的响应。而局域网传输是不通过ip地址寻址的,而是通过mac地址,mac地址的学习就是通过arp协议来学习的,既然路由器都把arp广播报文隔绝了,那pc1自然就学习不到pc3的mac地址了。
以上就是个人的分析,如有不当之处还请留言指正!
网友解答:只有在局域网中通讯才会发送arp
你所说的相同网段,实际上就是指同一个局域网,所以在同一个局域网内通讯,会有arp会得到对方的麦克地址
举例说明,比如当你要和老王通讯,你发现你和老王是在一个公司的,就相当于在同一个网段,这个时候你并不知道老王在哪个工位上坐着,你就会发一个arp请求,声这个过程就好像你在大喊道:老王,你在哪里?而老王听到之后就会给你个回复,说imhere
如果是跨网段通讯,那么靠的是路由这个功能
你所说的不同网段就是指通过了路由器。这个时候你是通过网关,也就是路由器代理和对方通讯的,所以你只有网关的mac地址。
举例说明,比如当你要和老刘同学,你发现老刘和你不是同一个公司的,就相当于跨网段,这个时候你要通过路由器,也就是说你要通过公司的外联给你捎个话给别人。这个时候你只会大声喊道,网关路由器,你在哪里?帮我把这个话带给老刘
也就是说,你并不知道老刘在他所在的公司的具体哪个座位上坐着,这个过程是由你的网关帮你完成的,所以你没有老刘的物理地址。
原文标题:两个不同网段的IP地址能ping通,但是为什么不能在ARP上找到另一个的MAC地址?,如若转载,请注明出处:https://www.saibowen.com/tougao/23683.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。