两个不同网段的IP地址能ping通,但是为什么不能在ARP上找到另一个的MAC地址?
网友解答: 要理解这个问题的原因,首先要了解下OSI七层模型he TCP/IP协议族的对应关系,请参考下表内容:从上图中可以看到,IP协议是工作在网络层,而ARP协议(将网络层的IP地址
要理解这个问题的原因,首先要了解下OSI七层模型he TCP/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请求,声这个过程就好像你在大喊道: 老王,你在哪里?而老王听到之后就会给你个回复,说im here
如果是跨网段通讯,那么靠的是路由这个功能
你所说的不同网段就是指通过了路由器。这个时候你是通过网关,也就是路由器代理和对方通讯的,所以你只有网关的mac地址。
举例说明,比如当你要和老刘同学,你发现老刘和你不是同一个公司的,就相当于跨网段,这个时候你要通过路由器,也就是说你要通过公司的外联给你捎个话给别人。这个时候你只会大声喊道,网关路由器,你在哪里?帮我把这个话带给老刘
也就是说,你并不知道老刘在他所在的公司的具体哪个座位上坐着,这个过程是由你的网关帮你完成的,所以你没有老刘的物理地址。