计算机网络:网络层ARP协议

在实现IP通信时使用了两个地址:IP地址(网络层地址) 和MAC地址(数据链路层地址)

问题:已知一个机器(主机或路由器)的IP地址,如何找到相应的MAC地址?

为了解决上述问题,提出了地址解析协议ARP:用于解决++同一个局域网上++从IP地址到MAC地址的映射问题

ARP高速缓存(ARP cache)

主要功能:

·存放IP地址到MAC地址的映射表

·映射表动态更新(新增或超时删除)

作用:

①存放最近获得的IP地址到MAC地址的绑定②减少ARP广播的通信量③为了减少ARP通信量,主机A在发送其ARP请求分组时,就会将自己的IP地址到MAC地址的映射写入ARP请求分组④但主机B收到A的ARP请求分组时,将主机A的IP地址及其对应的MAC地址映射写入主机B自己的ARP高速缓存中。不必再发送ARP请求

ARP工作流程

使用ARP的四种典型情况

1.发送方是主机,要把IP数据报发送到本网络上的另一个主机,此时使用ARP找到目的主机的硬件地址

2.发送方是主机,要把IP数据报发送到另一个网络上的一个主机,此时使用ARP找到本网络上的一个路由器的硬件地址。其余工作由路由器完成

3.发送方是路由器,要把IP数据报发送到本网络上的一个主机,使用ARP找到目的主机的硬件地址

4.发送方是路由器,要把IP数据报转发到另一个网络上的一个主机,使用ARP找到本网络上另一个路由器的硬件地址。其余工作由该路由器完成

ARP工作流程图如下

两台主机不在同一个局域网问题

由于ARP可以实现的是同一个局域网内的IP地址到MAC地址的映射

因此存在问题:两台主机不在一个局域网上怎么办?

如上图所示,如果主机A要想主机B发送数据,则需要知道主机B的MAC地址才能在链路层发送数据报。

通信的路径是:A->经过R1转发->B

从A->路由器R1

因此主机A必须知道路由器R1的IP地址,并通过ARP协议解析出路由器R1的MAC地址,然后将IP数据报传送到路由器R1

从路由器R1->B

路由器R1在获取来自主机A的IP数据报后,需要知道主机B的MAC地址,才能转发IP数据报。因此路由器R1也需要通过ARP协议解析主机B的MAC地址

ARP查找IP地址对应的MAC地址

本局域网上广播发送ARP请求(路由器不转发ARP请求)

ARP请求分组:包含发送方的MAC地址、发送方IP地址、目标方MAC地址(未知时填0)、目标方IP地址

单播ARP响应分组:包含发送方的MAC地址、发送方IP地址、目标方MAC地址、目标方IP地址

ARP分组封装在以太网帧中传输
ARP报文格式

相关推荐
EasyDSS43 分钟前
连锁扩张管控难?一套视频会议/直播/点播/集群对讲EasyDSS音视频云平台打通门店全流程数字化
网络·音视频·easydss
比兔代理3 小时前
游戏、直播、远程办公遇到动态IP怎么办?
网络
Lzg_na3 小时前
ARP 地址解析协议详解
网络·网络协议
上海广测检测科技有限公司3 小时前
消费类智能联网设备安全分级国标征求意见要点解析:三级五维框架与跨境对标逻辑
网络·经验分享
QZ166560951594 小时前
金融数据流转监测排行:从看见到拦截的距离
网络·安全·网络安全·金融
zxanz17 小时前
SSL 证书申请下来快吗?
网络·网络协议·ssl
false_or_true7 小时前
一次由 tcp_tw_recycle 引发的“灵异”故障排查:基于双网闸架构的踩坑记
网络·tcp/ip·架构
爱写代码的倒霉蛋7 小时前
我用book-to-skill把尹圣雨的《TCP/IP网络编程》做成了知识库(适合快速入门网络编程)
网络·网络编程·知识库
..过云雨7 小时前
19.【网络】多路转接poll、epoll、Reactor反应堆 - 修正版
网络
Raas1008 小时前
MAI Gateway(魔芋企业级AI网关)功能全解:AI网关能做Prompt注入防护吗?一文看懂AI网关能力矩阵(v1.2.0)
网络·人工智能·gateway·prompt·mai gateway·企业级ai网关·企业级产品