假设有两台设备A和B在不同的网段,并同时连接在路由器上,当A向B发送ping包时,有以下过程:
1)A查找本地arp表,没有发现B的mac,则A网络内广播arp,arp的源ip和源mac是A自己,目标ip是B的ip。
2)当网关接收到该arp包后,检查到目标ip在另一个网段,则从另一个端口向该网段发送arp,源mac填写的是路由器自己的地址。
4)同时网关会向A发送arp回复,arp回复包里面的源ip和源mac都是网关本身。
3)当B接收到路由器转发的arp包时,回复arp包,该包源ip和源mac是B的 地址,目标ip和mac是路由器的地址。
当arp发布和应答过程结束后,如果A再向B发送ping包,则A根据arp表,填写的目的地址是网关的mac,网关收到后,检查路由端口,并从路由端口发送给B。网关根据自己的mac表将目的ip和mac地址发送给B。
从上面看出,arp是二层转发的,不能够出局域网,而交换机在转发数据时必须有mac地址。因此,当数据在两个网段之间传输时,需要分段建立好mac和ip的映射关系。而两端通过 分段的查找转发,最终实现分网段的数据转发。