网络学习笔记之ARP协议

主机A通过ARP协议获取主机B的MAC地址,首先查找ARP缓存表,若无则广播ARPRequest,主机B响应ARPReply。交换机根据MAC地址表转发数据,完成通信。通信后,主机和交换机的ARP缓存表更新。
摘要由CSDN通过智能技术生成

网络中的一台主机A想和另一台主机B通信时,数据需要经过一层一层地封装,在网络层,需要将

源IP(主机A的IP)和目的IP(主机B的IP)封装到数据包里,继续往下封装,在数据链路层也就

是以太网中,需要将源mac地址(主机A的mac)和目的mac地址(主机B的mac)封装到数据帧

中。经过封装后的数据才通过物理层进行传输,实现网络通信。

这样,就产生了以下问题:

1、主机A怎么获取主机B的mac地址?

2、数据到达交换机,交换机怎么找到主机B,进行数据转发?

一、ARP协议

问题1的答案,就是本节的主题,ARP(Address Resolution Protocol)地址解析协议。

主机A本地会维护一个ARP缓存表,内容是IP地址和mac地址的对应关系。如图所示:

当主机A想要获取主机B的mac地址时,会首先从本地的ARP缓存表中进行查询,如果有主机B的

mac地址,则进行数据封装;如果没有,就需要通过ARP协议来获取。

ARP协议过程:

  • 主机A发送ARP Request报文,由于不知道接收方的mac地址,需要将数据帧的目的mac设置为FF-FF-FF-FF-FF-FF,也就是广播数据帧。
  • 交换机收到ARP Request报文,由于是广播数据帧,交换机会执行泛洪操作,把该报文转发到其他所有端口,同时交换机也会把主机A的IP地址和mac地址学习到自己的mac地址表。
  • 连接该交换机的所有主机收到这个广播报文,会进行数据解封装,比对目的IP。如果目的IP不是自己,直接丢弃。主机B发现目的IP是自己,就进行处理,回复ARP Reply报文。
  • 主机B会把主机A的IP地址和mac地址学习到自己的ARP缓存表中,所以进行回复时是通过单播的方式,ARP Reply报文是单播报文。
  • 交换机收到主机B发送的ARP Reply报文,会把主机B的IP地址和mac地址学习到自己的mac地址表,然后转发到主机A。
  • 主机A收到ARP Reply报文,把主机B的IP地址和mac地址学习到自己的ARP缓存表中,然后就可以根据arp缓存表的信息进行数据封装,主机A和主机B就可以进行通信。

二、交换机的mac地址表

       工作在数据链路层的二层交换机进行数据转发时,是根据其维护的一张mac地址表进行的。

mac地址表内容是交换机端口和所连接各个主机的mac地址的映射关系。当交换机收到数据时会进

行解封装,读取到数据帧里的目的mac,然后查询mac地址表找到对应的端口,把数据通过对应的

端口发送出去,这样就完成了数据的转发。

三、实验

1、配置

主机A:IP地址10.0.0.1,mac地址00-00-00-00-00-01

主机B:IP地址10.0.0.2,mac地址00-00-00-00-00-02

 

2、通信前: 

主机A的ARP缓存表:

 

 主机B的ARP缓存表:

 交换机的mac地址表:

 3、通信后:

主机A通过ping命令和主机B通信:

 ping命令执行完后,主机A的arp缓存表:

 主机B的arp缓存表:

 交换机mac地址表:

 4、抓包分析:

可以看到,在ping命令(属于ICMP协议)执行之前,有两条ARP报文,包括主机A发送的ARP

Request报文和主机B回复的ARP Reply报文。

 在ARP Request报文内部,有四个参数,

Sender IP:10.0.0.1                             --主机A的IP

Sender MAC:00-00-00-00-00-01       --主机A的mac

Target IP:10.0.0.2                              --主机B的IP

Target MAC:FF-FF-FF-FF-FF-FF,  --正确应该是全0,起填充作用

注意:此处是ensp软件的问题,Target MAC应该是00-00-00-00-00-00。

ARP报文内部的Target MAC和数据链路层封装的目的MAC是不同的,前者是全0,后者是全F(代

表广播数据帧)。

 ARP Reply报文中,四个参数分别为

Sender IP:10.0.0.2                           --主机B的IP

Sender MAC:00-00-00-00-00-02     --主机B的mac

Target IP:10.0.0.1                            --主机A的IP

Target MAC:00-00-00-00-00-01      --主机A的mac

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值