20张图深度详解MAC地址表、ARP表、路由表

本文我们以两个案例为例 , 深度来讲解一下网络中我们经常要用到的mac地址表、ARP表、路由表 , 掌握了这3张表 , 基本上就能够掌握了网络中数据通信的原理 , 成为网络中的武林高手!
数据网络的本质就是为了传递数据 , 前面我们就讲到过数据通信的基础就是TCP/IP参考模型 。 15图利用TCP/IP参考模型详解PC访问WEB服务器的数据通信过程
20张图深度详解MAC地址表、ARP表、路由表
文章图片
MAC地址表:简单的说 , MAC地址表是交换机等网络设备记录mac地址和端口的映射关系(见下图) , 代表了交换机从哪个端口学习到了某个MAC地址 , 交换机把这个信息记录下来 , 后续交换机需要转发数据的时候就可以根据报文的目的MAC地址去根据MAC地址表转发数据 。
20张图深度详解MAC地址表、ARP表、路由表
文章图片
在华为网络设备上可以通过dismac-address查看本地mac的地址表的信息 , 通过下图的显示我们可以知道mac地址5489-98b1-79f4是从G0/0/2端口学习到的;
20张图深度详解MAC地址表、ARP表、路由表
文章图片
ARP表:简单的说 , ARP表就是路由器等网络设备记录IP地址和MAC地址对应关系的表项(如下图) 。
20张图深度详解MAC地址表、ARP表、路由表
文章图片
当我们需要转发数据的时候除了需要对方的目的IP地址 , 还需要知道对方的MAC地址 , 那么正常情况下我们优先会在本地ARP表中查看是否有目的IP对应的MAC地址 。
在华为网络设备上可以通过disarp查看本地ARP表的信息 , 通过下图的显示我们可以知道mac地址5489-98b1-79f4是对应的IP地址是192.168.1.2;
20张图深度详解MAC地址表、ARP表、路由表
文章图片
路由表:简单点说路由表就是路由器用于指导数据包如何转发的表项 , 记录了去往目的IP的下一跳去哪里(如下图) 。
20张图深度详解MAC地址表、ARP表、路由表
文章图片
路由表的作用类似于我们生活中的地图 , 指引我们去往一个目的地该如何走?
在华为网络设备上可以通过displayiprouting-table查看本地路由表的信息 , 通过下图的显示我们可以知道去往目的192.168.2.0/24的下一跳是10.1.1.2;
20张图深度详解MAC地址表、ARP表、路由表
文章图片
20张图深度详解MAC地址表、ARP表、路由表
文章图片

如上图的网络拓扑 , PC1和PC2通过交换机SW1互联 , PC1的IP地址为192.168.1.1/24 , PC2的IP地址为192.168.1.2/24 , 那么PC1和PC2的通信就是简单的二层通信(二层通信不涉及路由表) , 下面我们从ARP表和MAC地址表的角度详细解析下这个通信过程 。
下面我们来详细分析下:
1.PC1要想访问PC2 , 除了需要知道目的IP192.168.1.2以外 , 还需要知道PC2的mac地址 , 因为所有的数据通信都是基于TCP/IP参考模型的 , 需要对进行数据封装 。
首先PC1会查找自己的ARP表项看是否有目的IP192.168.1.2对应的MAC地址 , 查看发现是空的;
20张图深度详解MAC地址表、ARP表、路由表
文章图片
2、我们知道如果不知道对方的mac地址 , PC1会发送ARP广播报文 , 询问谁知道目的IP192.168.1.2对应的MAC地址(如下图所示) 。 PC2收到ARP广播报文会进行回应 , 告诉PC1他的MAC地址;
20张图深度详解MAC地址表、ARP表、路由表
文章图片
附:
在PC1发送ARP广播报文的时候 , 交换机SW1收到该报文 , 会在MAC地址表中根据报文的源mac地址记录下PC1的mac地址和GE0/0/1的映射关系;PC2发送回应报文的时候交换机SW1也会记录下PC2的mac地址和GE0/0/2的映射关系(如下图);