目前正在学习网络规划师,听到老师讲网络设备中的二层交换机,于是想把在学习这一过程中遇到的疑问记录下来。。。。。
首先,在老师之前讲到TCP/IP模型时,曾说过,跨网段实现数据交换必须使用三层设备,如路由器或者三层交换机。此时,我就有了一个问题,出现这个问题的思路如下:
1.首先在网络模型中的第三层,通过ip地址进行通信,在二层时,通过MAC地址进行通信。
2.如果两个不同网段的PC通过二层交换机相连接,如下图所示
3.这两个PC通过ARP协议,应该能知道对方的MAC地址。如果两个PC互相知道了对方的MAC地址,应该就可以进行通信。
4。但是这两个PC并没有通信成功。
带着这个问题,我在某度上查找资料,最终解答了我的问题。
为了能更好的解释为什么跨网段的设备在二层交换机上不能通信,首先要明白的是两个知识点:第一是,第二是以太网帧结构是什么。
问:第一是网络模型是什么样子?
答:现在大家熟知的网络模型有两种,第一种是,OSI七层模型,第二种是TCP/IP模型。在实际运用中,使用的是TCP/IP模型。在这里简单的给大家放张图,来解释两种模型的结构:
OSI模型
TCP/IP模型
能看懂的就懂,看不懂的先去百度学习一下,哈哈哈哈哈。
现在,我们明白了网络模型的结构,总结一点就是:从上到下,层层封装,再层层拆包。在二层数据链路层,我们的数据已经被层层封装为以太网帧结构。所以,现在有了下一个问题,以太网帧结构是什么?
问: 第二是以太网帧结构是什么?
先上一张,通过上一个问题,我们明白了,网络数据传输是,层层封装到层层拆包。
以太网帧结构
如果想要完全明白以太网帧结构,我只能说,请自行百度。哈哈哈哈
在这里,我们只要知道在以太网帧头中有,目的MAC地址和源MAC地址。源MAC地址就是设备自身的MAC地址,而目的MAC地址是通过ARP协议获得的。ARP协议是什么,我在这里就不说了。
好现在,到这一步,我们明白了网络模型是什么,以太网帧结构是什么,现在就要明白二层网络交换机的工作原理是什么。
在这里,举例说明来说:四个PC通过二层交换机连接,如图所示
第一步,当PC1想要与PC2的设备进行通信时,PC1只知道PC2的IP地址,但并不知道PC2的MAC 地址。所以首先,PC1首先发送ARP请求帧到二层交换机。
第二步,二层交换机得到他的目的地址为全F的广播地址,于是将该帧泛洪至所有接口并将源MAC地址记录到自己的MAC表中。
第三步,此时,其他的三个PC都收到了,来自PC1的数据包,PC3,PC4明白,PC1想要通信的IP地址并不是自己,便将PC1的包丢弃。PC2则返回ARP应答帧。
第四步,二层交换机通过PC2返回的ARP应答帧,将PC2的mac地址记录在自己的MAC地址表中。
第五步,在PC1知道PC2的MAC地址后,PC1传输数据时,在以太网帧的帧头,目的地址中将会将会写入PC2的MAC地址,当该帧到交换机后,交换机根据其目的MAC地址,查找自己MAC地址表中的地址对应的接口,实现数据的转发。
交换机中的MAC地址表如下图所示:
在192.168.1.1的ARP表中,可以看到已经存在192.168.1.2的表项
同样的,在192.168.1.2的ARP表中,也可以看到192.168.1.1的表项
现在通过,上面五步,已经明白了,二层交换机的工作原理,总结起来就是,交换机根据MAC地址表,进行数据的转发。
在了解到这些基础信息后,回过头来看最开始提出的问题,为什么二层交换机不能跨网段通信,要想跨网段通信只能通过三层设备。
以上图为例,当PC1想要去访问PC2时, PC1首先在第三层网络层通过IP协议,会判断目的地址是否为同一网段,若在同一网段就直接查找ARP缓存,查找目的MAC,如果目的IP地址是否和源IP不在同一网段,那么就将数据包发送到网关。此时若在PC1电脑上没有配置网关 ,数据包到这一步就丢弃了,若是配置了一个网关,IP协议也只知道网关IP,但是不知道网关MAC,所以会查找PC1中的ARP缓存,看里面有没有网关MAC,即使发送了ARP请求去寻找网关,也不会有任何响应,因为环境里并没有这个网关设备存在。所以最终IP协议无法知道目的MAC,就无法将数据包往下一个层数据链路层传递.
所以最终数据包停留在了第三层,并没有到达第二层。对于二层交换机来说,也是因为二层交换机,只能配置网管IP不能配置网关。
但是这种拓扑情况下,两台PC真的无法通信吗?
其实只要将两台PC的网关互相配置为对方的IP的地址,便能够使两台PC通信。
希望各位大佬指点!!!!