网络设备二三层通信流程
首先,终端连接上网络设备,达成一个可以通信的硬件环境
假定主机是一台IP为192.168.1.1,掩码为255.255.255.0的电脑
首先,测试同网段地址,尝试ping 地址为192.168.1.2的电脑
本机首先会对192.168.1.2这个地址与自己本身的掩码进行运算
判定为同网段,于是查看自身的ARP表,是否有对应这个IP的MAC地址
若是存在,将目的MAC地址与目的IP封装进报文,发送出去
交换机与路由器在解封装后,会根据对应地址,查找自身的MAC表,从对应接口发出
若是主机ARP中不存在这个IP所对应的MAC,发送一个目的MAC地址全F的广播报文,询问与这个IP地址对应的主机是哪位。
此时,若是使用wireshark软件对交换机连接主机的端口进行抓包,可以看到
内容是 “who is 192.168.1.2,tell me” 的报文
交换机收到后,因为目的MAC是广播地址,所以也会接收,根据报文内容查找自己的ARP表
是否有对应的,若有,则回应主机一个对应的MAC地址
若无,在除这个发送来的接口外,所有属于同一个VLAN的接口转发这个报文
这个流程,也称为ARP解析协议,即根据目的IP地址查询目的MAC地址
然后是跨网段转发,这里需要有网关,因为要靠网关进行三层转发
这里假定ping 192.168.2.1
主机开头也会将目的IP与自身掩码运算,判断是否同一网段
发现是不同网段,于是发送目的IP为192.168.2.1,目的MAC地址为网关MAC地址的数据出去
*这里网关的MAC地址也是通过ARP解析协议获得的
网关收到后,发现目的MAC地址是自己,确认可以接收,于是解封装,去掉二层报文头部
发现目的IP地址与自己不同,于是查询路由表,根据目的IP地址重新封装后转发出去
这里封装的目的MAC地址,是下一跳地址的MAC
下一跳设备也重复这个流程,直到最后一跳设备,查询IP地址时发现和自己某个接口是直连网段
于是依据ARP表转发这个数据包
三层通信就完成了