ARP协议工作原理

本文详细阐述了R1通过TCP/IP模型访问R2的过程,包括应用层PDU到物理层比特流的封装,重点讲解了ARP协议如何解决IP地址到MAC地址的映射问题,以及R1如何通过发送ARP请求获取R2的MAC地址并建立连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拓扑描述:

设备接口接口IP地址接口MAC地址
AR1GE 0/0/0192.168.1.100e0-fca2-4aa1
AR2GE 0/0/0192.168.1.200e0-fcef-6ead

1.数据封装

        当R1要访问R2时,需要根据TCP/IP模型进行依次的封装过程,应用层产生的原始数据叫PDU,经过下层协议的封装,最终通过传输介质,到达R2,每一层封装的信息都不相同。

                                  

应用层原始数据----PDU
传输层封装TCP头部-----数据段
网络层封装IP头部-----数据包
数据链路层封装以太帧头部----数据帧
物理层转换成二进制进行传输----比特流

        工作中用来测试网络连通性最常用的就是ICMP协议中的ping命令,当R1 ping R2时,R1需要先进行数据的封装。

数据ICMP封装:ICMP头部IP封装:SIP-192.168.1.1,DIP-192.168.1.2以太帧封装:SMAC-R1MAC,DMAC-?

        当进行二层封装时,R1并不知道R2的MAC地址,无法完成ICMP的完整封装过程,导致无法进行通信。

2.ARP协议

        ARP——地址解析协议,它的功能是可以根据已知IP地址,去获取目的MAC地址。工作原理如下:

  • R1访问R2,进行数据的封装,封装进行到二层,发现没有R2的MAC地址。
  • R1查看本地ARP缓存表,发现没有R2的IP和MAC地址映射。查看ARP表命令:dis arp all或者dis arp | include 192.168.1.2。

 

  •  R1开始封装ARP,发送ARP request 广播请求

ARP request

Sender IP:192.168.1.1

Sender mac:00e0-fca2-4aa1

Target ip:192.168.1.2

Target mac:00-00-00-00-00-00

ethernet II

SMAC:00e0-fca2-4aa1

DMAC:FF-FF-FF-FF-FF-FF

 

  •   以太帧的目的MAC地址用全F的广播地址代替,ARP报文中由于不知道R2的MAC地址,所以用全0补充,以比特流的形式发送出去。
  • R2收到R1的ARP request报文,进行解封装,去掉物理层头部,查看以太帧的目的MAC地址是广播地址,所以接收,由于type字段是0x0806,所以拆掉二层头部交由ARP协议处理。
  • 查看ARP头部信息,发现目的地址是自己的接口地址,并且获取到R1的IP和MAC,给R1回复单播ARP reply,同时将R1的IP和MAC缓存到本地ARP表中。

ARP reply

Sender IP:192.168.1.2

Sender mac:00e0-fcef-6ead

Target ip:192.168.1.1

Target mac:00e0-fca2-4aa1

ethernet II

SMAC:00e0-fcef-6ead

DMAC:00e0-fca2-4aa1

 

  • R1收到R2的ARP reply报文,经过解封装,获取到R2的MAC地址,将R2的MAC缓存到本地ARP表中,然后可以完成ICMP包的封装,进行数据转发。

 

 

 

### ARP协议工作原理 ARP (Address Resolution Protocol) 是一种用于局域网中解析 MAC 地址的协议[^2]。当一台设备需要与另一台位于同一网络中的设备通信时,发送方会广播一个 ARP 请求报文来询问目标 IP 对应的物理地址是什么。这个请求包含了源主机自己的 IP 和硬件地址以及目的主机的 IP 地址。 一旦拥有被查询 IP 地址的目标机器收到此广播消息,则该机会回应一个包含其 MAC 地址的信息给发起者。这样,原始发件人就可以知道如何通过第二层数据链路层直接寻址到达目的地了。此外,为了提高效率并减少重复查找的时间开销,每次成功获取到映射关系之后都会将其存储在一个称为 ARP 缓存表里的地方一段时间[^3]。 #### ARP 协议交互过程简化描述如下: 1. **发出 ARP 请求** 发送端构建一个 ARP 查询包,其中含有自身的 IP 及 MAC 地址,并指明想要获得哪个 IP 所属节点的 MAC 地址; 2. **等待响应** 此 ARP 请求会被扩散至整个本地子网内的所有计算机上;只有那个具有匹配 IP 的接收者才会做出反应; 3. **接收到 ARP 应答** 如果有符合条件的目的站点存在的话,那么它就会回复一条携带自己真实硬件地址的数据帧回传给提问者; 4. **更新 ARP 表项** 提问者的操作系统将新得到的信息加入到内部维护着的一张临时性的对照列表——即所谓的 ARP Cache 中去以便将来快速访问相同对象而不必再次经历上述繁琐的过程。 以下是 ARP 协议工作的简单图解表示形式: ```mermaid graph LR; A[HostA: 192.168.0.1, MAC_A] -->|Broadcast ARP Request| B((Subnet Broadcast)); C[HostC: 192.168.0.2, MAC_C]) -.-> |Listen but not respond|B; D[HostD: 192.168.0.3, MAC_D)] --|Unicast ARP Reply to HostA| A; ``` 在此图表中: - `HostA` 向所在子网上所有的成员广播了一个 ARP 请求。 - `HostC` 收到了这条信息但由于不是要找的对象所以保持沉默。 - 被指定为目标 (`192.168.0.3`) 的 `HostD` 则单独地向 `HostA` 返回了自己的实际硬件地址。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值