以太网交换机的信息处理方式以及ARP协议的用途

1、IP地址和MAC地址之间的关系

首先讲解IP地址和MAC地址之间的关系。如下图:

IP地址属于一个逻辑地址,通过软件实现IP地址的寻址和数据的交互,一个IP地址下可以有不同的硬件设备,也就是不同的MAC地址的设备。IP协议和TCP协议工作在网络层。但是MAC地址是每个硬件唯一的,一个MAC地址仅对应一个硬件。网卡会根据MAC帧中包含的MAC地址信息判断收到的数据包是应该向上层传输还是应该丢弃。MAC协议工作在数据链路层。

如下图,在主机H1与主机H2进行通信时,网络层的报头信息只需要包含主机H1的IP地址IP1,和主机H2的IP地址IP2。这是逻辑上的通信概念,也是为了简化用户的使用方式。

但是实际上的网络要复杂的多,如下图。在实际的硬件网络连接中,各硬件之间要通过MAC地址信息进行通信。首先主机H1会向路由器R1发送报头为HA1\HA3的MAC帧信息,路由器R1收到报文后,会向路由器R2发送报头为HA3\HA5的MAC帧信息。直至报文成功传输到主机H2。

(需要注意路由器R1由于连接两个不同的局域网,所以需要有两个MAC地址。一般的家用路由器每个LAN口都需要有一个独立的MAC地址,这样才能在转发报文的时候知道该向哪个LAN口发送报文。)

2、二级交换机

接下来讲解二级交换机的概念,二级交换机工作于数据链路层,以MAC地址作为依据实现对MAC帧数据的转发。

下面我们举一个例子说明这种转发行为:

现在我们有一个交换机,交换机中的交换信息表是空的,因为还没有设备连接在交换机上进行通信。

这时有一个MAC地址为1的设备连接在交换机的接口A上,并向MAC地址为2的设备发送一个数据。此时交换机便会进行查表,发现表中没有记录1这个MAC地址,便将端口A和MAC 1的组合存入交换信息表。

此时查表发现也没有发送端的MAC地址信息,所以交换机会向除A接口外的所有接口广播一条报文。加入MAC地址为2的设备接在接口B上,则接口B会收到一条MAC地址为2的设备发送的ack报文。此时交换机会向交换信息表中存入端口B和MAC 2的组合。从此以后交换机便知道1和2在通信时,如何转发报文,而不需要再向所有接口广播报文信息。

我们可以看到,二级交换机仅对MAC地址进行解析,所以二级交换机下用不到ARP协议。ARP协议工作在三级交换机的网络环境中。

3、ARP协议

现在正式开始讲解ARP协议的概念。

如果我们知道一个IP地址,但是不知道这个IP地址的MAC地址是多少,这时我们是无法在数据链路层发送报文的。ARP协议可以询问某个IP地址的硬件设备的MAC地址是多少。

首先发送端会广播一个ARP请求,向外界询问“IP地址是192.168.1.100的MAC地址是多少?”,局域网内其他设备不会响应此条请求,只有IP地址为192.168.1.100的设备会向发送端单播一个ARP响应报文,告知发送端“我的IP地址是192.168.1.100,我的MAC地址是AA:BB:CC:DD:EE:11"。此时发送端会在自己的内存中存入”IP地址是192.168.1.100的设备MAC地址是AA:BB:CC:DD:EE:11“的信息。

这时会遇到一个问题,如果网络内的某个设备网卡损坏了,更换新网卡,此时IP地址没有改变,但是MAC地址发生了变化。为了避免这种情况造成的通信失效,IP地址和MAC地址匹配信息表都有一个生命周期,一旦超过生命周期,就会从内存中删除这条匹配信息,从新发送arp报文询问目的IP地址的MAC地址信息。也就是说信息表中的内容是不断在新增和删除的。

注意ARP协议仅在局域网内有用,上文中提到的主机H1和主机H2如果在一个网络内,那么可以通过ARP协议直接询问彼此的MAC地址信息。如果主机两台主机不在一个局域网内,如下图:

情况①:主机H1和主机H3进行通信

此时H1会广播ARP协议,但是目的IP地址不存在于当前网络1内,所以路由器R1会响应H1发送的ARP请求,此时H1会存下路由器R1的MAC地址,后续的发送过程主机H1不再关注,由路由器R1完成。R1会在网络2上发送ARP请求,此时主机H3会响应该条请求,告知路由器R1 H3的IP地址。然后R1将报文送达主机H3,完成报文的发送。

情况②:路由器R1和主机H4进行通信

路由器R1会先广播ARP请求,询问得到路由器R2的MAC地址后,后续发送工作交由路由器R2完成。此时路由器R2会在网络3中广播ARP请求,得到主机H4的MAC地址,将报文送达主机H4,到此通信完成。

4、总结

总结:在以太网交换机眼中,报文只有MAC地址这么一个有效标识,其他例如IP地址等信息,都不在硬件接口上体现,均由上层软件处理。所以了解某个IP地址硬件的MAC地址信息显得尤为关键,此时需要用到ARP协议。


读完有收获的话,可以资助博主一点饭钱嘛,饿(⊙﹏⊙)。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值