环境是三层交换机有两个网段,10.0.0.1/24和192.168.0.1/24,pc1是10段的,pc2是192段的。pc1要与pc2通信。过程如下
1.pc1将要与pc2通信,首先根据网卡的ip地址与掩码算出pc2是否与pc1是同网段,如果是同网段直接二层转发,如果不是将跨网段转发
2.pc1算出pc2和自己不是同网段,所以要将数据包发送到网关由网关进行三层寻址转发。
3.pc1到网关为二层转发,也就是数据帧转发,数据帧转发需要知道对方mac地址,首先pc1会读电脑的arp缓存,看是否有网关ip与mac地址的对应关系,如果有将直接封装帧转发;如果没有将使用arp协议也就是广播,携带自己的ip地址与mac地址,目的地址为网关ip,mac地址为ffff-ffff-ffff。网关收到此arp广播后,将回复pc1自己的mac地址,数据包为源网关ip和mac地址目的为pc1ip和mac地址。
4.pc1收到数据包后会将此ip和mac地址写入到电脑的arp缓存表里,并直接封装数据包,三层ip头为源pc1-ip,目的为pc2-ip,二层帧格式为源pc1-mac,目的为网关mac地址(记住此包头)。
5.网关将收到pc1发来的数据包,进行拆包,根据其目的ip地址进行寻址(路由表),找到对应的路径(也就是192段vlan)。
6.三层交换机会根据其目的ip地址进行本机的arp缓存查找,如果查找到ip和mac地址的对应关系将直接封装转发,如果没有交换机将发送arp广播包获取目的ip地址的mac地址(广播包将只发送192段vlan,其他vlan不广播)。
7.三层交换机得知pc2-mac地址后将转发数据,三层包头为源pc1-ip,目的为pc2-i,二层帧包头为源192段网关mac,目的为pc2-mac。
8.pc2将收到三层交换发来的数据包,进行拆封即可获取数据,并回复pc1过程同上。
三层交换机等同于路由器。也就是说源ip和目的ip在数据包里一直不变(不经过nat的情况),mac地址将时刻改变。广播只存在二层。三层情况下是路由寻址。