mac表arp表路由表(路由器可以维护路由表和MAC地址表)
本文以两个案例为例,深入讲解我们在网络中经常用到的mac地址表、ARP表、路由表。掌握了这三表,就基本掌握了网络中数据通信的原理,成为网络中的武林高手!
数据的本质是传输数据。如前所述,数据通信的基础是TCP/IP参考模型。图5示出了PC通过使用TCP/IP参考模型访问WEB服务器的数据通信过程。
媒体存取控制
MAC地址表:简单来说,MAC地址表就是交换机等网络设备记录的MAC地址与端口的映射关系(见下图),代表交换机从哪个端口获知了某个MAC地址。交换机记录这些信息,后续交换机可以根据MAC地址表,按照报文的目的MAC地址转发数据。
在华为的网络设备上,可以通过dis mac-address查看本地mac的地址表信息。从下图的显示中,我们可以知道mac地址5489-98b1-79f4是从G0/0/2端口获知的。
ARP表
ARP表:简单来说,ARP表就是路由器等网络设备记录IP地址和MAC地址对应关系的表项(如下图)。
当我们需要转发数据时,我们需要知道对方的MAC地址以及对方的目的IP地址。一般情况下,我们会先检查本地ARP表中是否有目的IP对应的MAC地址。
在华为的网络设备上,可以通过dis arp查看本地arp表的信息。从下图的显示可以知道,mac地址5489-98b1-79f4是对应的IP地址192 . 168 . 1 . 2;
路由列表
路由表:简单来说,路由表是路由器用来指导数据包如何转发的表项,记录了到达目的IP的下一跳去了哪里(如下图所示)。
路由表的作用类似于我们生活中的地图,指引我们到达一个目的地。
在华为的网络设备上,您可以通过显示ip路由表来查看本地路由表的信息。从下图的显示中,我们可以知道到达目的地192.168.2.0/24的下一跳是10 . 1 . 1 . 2;
案例PC1和PC2在二层互访的通信过程的详细说明
如上图网络拓扑所示,PC1和PC2通过交换机SW1互联,PC1的IP地址为192.168.1.1/24,PC2的IP地址为192.168.1.2/24,因此PC1和PC2之间的通信是简单的二层通信(二层通信不涉及路由表)。下面我们从ARP表和MAC地址表的角度来详细分析一下这个通信。
下面我们来详细分析一下:
1.如果PC1要访问PC2,除了需要知道目的IP 192.168.1.2外,还需要知道PC2的mac地址,因为所有的数据通信都是基于TCP/IP参考模型,需要进行数据封装。
首先,PC1会查找自己的ARP条目,看是否有目的IP 192.168.1.2对应的MAC地址,发现是空;
2.我们知道,如果不知道对方的mac地址,PC1会发送ARP广播报文,询问谁知道目的IP 192.168.1.2对应的MAC地址(如下图所示)。PC2收到ARP广播报文后会做出响应,告诉PC1自己的MAC地址;
附:
当PC1发送ARP广播报文时,交换机SW1接收该报文,并根据报文的源mac地址在mac地址表中记录PC1的MAC地址与GE0/0/1的映射关系;当PC2发送响应报文时,交换机SW1也会记录PC2的mac地址与GE0/0/2的映射关系(如下图);
3.您可以看到,PC2的mac地址是从PC1的本地ARP条目中获知的;
4.这样,PC1就可以根据PC2的MAC地址封装数据并发送给交换机SW1,交换机SW1会查找自己的MAC地址表,发现该MAC地址到PC2的出接口是GE0/0/2,这样PC2就可以接收报文并解封装;
案例二:PC3与PC4互访沟通过程详解。
在上图所示的网络拓扑中,PC3和PC4通过路由器R1和R2互连。PC3的IP地址是192.168.1.2/24网关192.168.1.1,PC4的IP地址是192.168.2.2/24网关192.168.2.1,然后PC1和
下面我们来详细分析一下:
1.如果PC3想要访问PC4,PC3需要首先将数据包发送到PC3的网关,因为它是跨网段通信的。3 PC会查找自己的ARP条目,看是否有网关IP192.168.1.1对应的MAC地址,发现是空;
2.我们知道,如果不知道对方的mac地址,PC3会发送ARP广播报文,询问谁知道目的IP 192.168.1.1对应的MAC地址(如下图所示)。R1收到ARP广播消息后会做出响应,告诉PC3他网关的MAC地址;
3.可以看到,在PC3本地的ARP条目中已经学习到了网关的mac地址;
4.这样,PC3就可以根据网关的MAC地址封装数据并发送给R1,R1收到数据包后会解封装。解封装后发现目的IP是PC4,不是发给自己的,于是会查找自己的路由表,发现到PC4的下一跳是10 . 1 . 1 . 2;
5.R1需要封装数据并发送到R2的10.1.1.2,所以需要请求10.1.1.2对应的MAC地址进行封装(我们可以看到R1的ARP表中已经有10.1.1.2对应的MAC地址,所以可以直接封装);
6.R2需要解封来自R1的数据包。解封装后发现目的IP是PC4。通过查找自己的路由表,发现它是自己直接连接到PC4的端口。
7.R2需要封装数据并发送给PC4,所以需要请求PC4 192.168.2.2对应的MAC地址进行封装(我们可以看到R2的ARP表中已经有192.168.2.2对应的MAC地址,所以可以直接封装);
8.最后PC4收到消息,解封装后发现是发给自己的,通信结束;
-结束-