当前位置:首页 > TAG信息列表 > 什么是MAC地址和IP地址?子网掩码有什么作用?

什么是MAC地址和IP地址?子网掩码有什么作用?

什么是mac地址(知道对方mac地址可以干嘛)

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

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

mac地址表

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

什么是mac地址(知道对方mac地址可以干嘛)

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

arp表

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

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

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

路由表

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

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

在华为网络设备上可以通过displayiprouting-table查看本地路由表的信息,通过下图的显示我们可以知道去往目的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,除了需要知道目的ip192.168.1.2以外,还需要知道pc2的mac地址,因为所有的数据通信都是基于tcp/ip参考模型的,需要对进行数据封装。

首先pc1会查找自己的arp表项看是否有目的ip192.168.1.2对应的mac地址,查看发现是空的;

2、我们知道如果不知道对方的mac地址,pc1会发送arp广播报文,询问谁知道目的ip192.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、可以看到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地址为192.168.1.2/24网关192.168.1.1,pc4的ip地址为192.168.2.2/24网关192.168.2.1,那么pc1和pc2的通信就是跨网段三层通信,下面我们从arp表、mac地址表、路由表的角度详细解析下这个通信过程。

下面我们来详细分析下:

1.pc3要想访问pc4,由于是跨网段通信,pc3需要首先把数据包发送给pc3的网关。pc3会查找自己的arp表项看是否有网关ip192.168.1.1对应的mac地址,查看发现是空的;

2、我们知道如果不知道对方的mac地址,pc3会发送arp广播报文,询问谁知道目的ip192.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,因此需要请求pc4192.168.2.2对应的mac地址用于封装(我们可以看到r2的arp表中已经有192.168.2.2对应的mac地址,因此可以直接封装);

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

---end---


车品汇 彼得兔优选

  • 关注微信关注微信

猜你喜欢

微信公众号