这里主要考虑是交换网络--vlan的情况
        主机A要把IP数据包发送到网关地址(假设是192.18.1.1),必须把IP数据包在数据链路层进行封装,在以太网中,数据链路层的封装要源MAC和目标MAC地址,为了获取到网关地址的MAC地址,在TCP/IP网络中,采用ARP广播的形式来获取IP地址对应的MAC地址。
        主机A获取到网关地址的MAC地址后,就把IP数据包封装为帧,在帧头放入源MAC和目标MAC地址,然后再把帧转发为比特流通过物理层的传输介质发送到二层交换机;当数据帧到了交换机后,会检查该帧进来的端口号,再检查该端口号所在的VLAN,检查要发帧到目标MAC出去的端口号,并检查该端口号所在的vlaN,是不是一致。这里就有几种情况,如有一致,而且目标mac地址是在同一个二层交换机上,就直接在二层交换机上交换数据,如果不在同一个交换机上,就要通过trunk口来传输数据。如果不是不同vlan号的,而且没有三层交换机或者路由器的,就把这个包丢掉。如果有三层交换而且trunk口允许这个vlan号,就通过trunk口把数据发到三层交换机上,到了三层交换机,检查目标MAC是不是和vlan接口的一致,如果一致就接收下来。拆到网络层,检查本三层交换机的路由表(注意:如果在三层交换机上启用了int vlan 10之类的接口,则该MAC就是该vlan接口的MAC,而且这个mac地址就是网关地址,应该是交换机的操作系统给它的