如果你的路由器(ip为192.168.1.1, mac为xxxx)先发包, 交换机中的arp表就会更新为192.168.1.1 at xxxx on port1,然后回来的包就通过查找arp表将包发给port1
但是在你路由器包返回之前,你的电脑(ip为192.168.1.1, mac为yyyy)发了一个包,这导致交换机中的arp表更新为192.168.1.1 at yyyy on port2, 然后这时候如果路由器的报回来了,查找arp后将包发到port2(即电脑),然后电脑就收到了本应路由器收到的包,这当然是错误包,电脑丢弃了.而路由器由于没有收到回来的包,超时重传,然后下一个轮回.
本来就是可以的,只不过不能同时上网(路由器和电脑不能在相同的时刻都发包)
局域网是通过mac地址通信的,跟IP地址没有什么关联,谁先发包已谁的为准. 这是因为交换机中维护着一张arp表, 交换机中包转发到哪里是通过查找这张表实现的, 这张表大致信息如下:
意思就是IP为
10.165.63.249
mac地址为40:55:39:08:81:41
的包要通过eth0转发.现在,你有你有两个相同的IP,mac地址却不同
如果你的路由器(ip为192.168.1.1, mac为xxxx)先发包, 交换机中的arp表就会更新为
192.168.1.1 at xxxx on port1
,然后回来的包就通过查找arp表将包发给port1但是在你路由器包返回之前,你的电脑(ip为192.168.1.1, mac为yyyy)发了一个包,这导致交换机中的arp表更新为
192.168.1.1 at yyyy on port2
, 然后这时候如果路由器的报回来了,查找arp后将包发到port2(即电脑),然后电脑就收到了本应路由器收到的包,这当然是错误包,电脑丢弃了.而路由器由于没有收到回来的包,超时重传,然后下一个轮回.这就是为什么可以上网,但丢包会很大的原因