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

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


本文我们以两个案例为例,深度来讲解一下网络中我们经常要用到的mac地址表、ARP表、路由表,掌握了这3张表,基本上就能够掌握了网络中数据通信的原理,成为网络中的武林高手!


数据网络的本质就是为了传递数据,前面我们就讲到过数据通信的基础就是TCP/IP参考模型。 15图利用TCP/IP参考模型详解PC访问WEB服务器的数据通信过程




MAC地址表


MAC地址表 :简单的说,MAC地址表是交换机等网络设备记录MAC地址和端口的映射关系(见下图),代表了交换机从哪个端口学习到了某个MAC地址,交换机把这个信息记录下来,后续交换机需要转发数据的时候就可以根据报文目的MAC地址去根据MAC地址表转发数据。



在华为网络设备上可以通过 dis mac-address 查看本地mac的地址表的信息,通过下图的显示我们可以知道mac地址 5489-98b1-79f4 是从G0/0/2端口学习到的;




ARP表


ARP表 :简单的说,ARP表就是路由器等网络设备记录 IP地址和MAC地址对应关系的表项 (如下图)。



当我们需要转发数据的时候除了 需要对方的目的IP地址,还需要知道对方的MAC地址 ,那么正常情况下我们优先会在本地ARP表中查看是否有目的IP对应的MAC地址。


在华为网络设备上可以通过 dis arp   查看本地arp表的信息,通过下图的显示我们可以知道mac地址 5489-98b1-79f4 是对应的IP地址是19216812 ;




路由表


路由表 :简单点说路由表就是路由器用于指导数据包如何转发的表项,记录了去往目的IP的下一跳去哪里(如下图)。



路由表的作用类似于我们生活中的地图,指引我们去往一个目的地该如何走


在华为网络设备上可以通过 display  ip routing-table 查看本地路由表的信息,通过下图的显示我们可以知道去往目的19216820/24 的下一跳是10112 ;



案例一:PC1和PC2二层互访通信过程详解




如上图的网络拓扑,PC1和PC2通过交换机SW1互联,PC1 的IP地址为19216811/24 ,PC2的IP地址为19216812/24 ,那么PC1和PC2的通信就是简单的二层通信(二层通信不涉及路由表),下面我们从ARP表和MAC地址表的角度详细解析下这个通信过程。


下面我们来详细分析下:


1 PC1要想访问PC2,除了需要知道目的IP 19216812 以外,还需要知道PC2 的mac地址,因为所有的数据通信都是基于TCP/IP参考模型的,需要对进行数据封装。


首先PC1会查找自己的ARP表项看是否有目的IP 19216812 对应的MAC地址,查看发现是空的;




2、我们知道如果不知道对方的mac地址,PC1会发送ARP广播报文,询问谁知道目的IP 19216812 对应的MAC地址(如下图所示)。PC2收到ARP广播报文会进行回应,告诉PC1他的MAC地址;


附:


在PC1发送ARP 广播报文的时候,交换机SW1收到该报文,会在MAC地址表中根据报文的源mac地址记录下PC1 的mac地址和GE0/0/1的映射关系;PC2发送回应报文的时候 交换机SW1也会记录下PC2 的mac地址和GE0/0/2的映射关系(如下图);




3、可以看到PC1的本地ARP表项中学习到了PC2的mac地址;



4、这样PC1就可以根据PC2的MAC地址封装数据发送给交换机SW1,交换机SW1会查找自己的MAC地址表,发现去往PC2的MAC地址的出接口为GE0/0/2,从而PC2就可以收到报文,并进行解封装;



案例二:PC3和PC4三层互访通信过程详解




如上图的网络拓扑,PC3和PC4通过路由器R1、R2互联,PC3 的IP地址为19216812/24 网关19216811 ,PC4 的IP地址为19216822/24 网关19216821,那么PC1和PC2的通信就是跨网段三层通信,下面我们从ARP表、MAC地址表、路由表的角度详细解析下这个通信过程。


下面我们来详细分析下:


1 PC3要想访问PC4,由于是跨网段通信,PC3需要首先把数据包发送给PC3的网关。PC3会查找自己的ARP表项看是否有网关IP19216811对应的MAC地址,查看发现是空的;



2、我们知道如果不知道对方的mac地址,PC3会发送ARP广播报文,询问谁知道目的IP 19216811 对应的MAC地址(如下图所示)。R1收到ARP广播报文会进行回应,告诉PC3 他的网关的MAC地址;


3、可以看到PC3的本地ARP表项中学习到了网关的mac地址;



4、这样PC3就可以根据网关MAC地址封装数据发送给R1,R1收到数据包会进行解封装,解封装发现目的IP是PC4,不是发给自己的,从而会查找自己的路由表,发现去往PC4的下一跳是10112;


5、R1需要把数据进行封装发送给R2的10112 ,因此需要请求10112 对应的MAC地址用于封装(我们可以看到R1的ARP表中已经有10112 对应的MAC地址,因此可以直接封装);



6、R2收到R1的数据包,需要进行解封装,解封装发现目的IP是PC4,通过查找自己的路由表,发现去往PC4是自己的直连端口;




7、R2需要把数据进行封装发送给PC4 ,因此需要请求PC4 19216822  对应的MAC地址用于封装(我们可以看到R2的ARP表中已经有19216822对应的MAC地址,因此可以直接封装);




8、最后PC4收到报文进行解封装发现就是发送给自己的,通信结束;


---END---







可以做到的,但是一般不使用。一般只记录你登录时的 IP 地址。
就目前的形势,考虑到一般人的专业水平,如果在网上闯了祸(比如:乱说话),不用网站找你,警察叔叔早就上门服务了。
如果你对这个问题感兴趣 看一下下面的文章吧!
用asp获取访问者MAC地址的方法>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13213936.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-21
下一篇 2023-06-21

发表评论

登录后才能评论

评论列表(0条)

保存