ARP协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

同一网络中,A->B的IP数据报传输过程
B 交换机
路由器
hub
hub
A
hub
B
在A主机的网络层运行的IP进程, 封装IP数据报 网络层
IP.B
如果B是在本网络中,运行ARP,由IP得到MAC地址;
MAC.B 交给数据链路层,封装MAC帧; … IP.B …
交给物理层,转换成信号,发送出去; B主机就能接收到该MAC帧,得到A交付的IP数据报
④输入模块
ARP设计(续)
等待到ARP分组到达,工作流程如下:
输入模块 1.睡眠,直到ARP分组(请求或应答)到达。 2.检查高速缓存表,寻找对应于这个ARP分组(源IP、源物理地址)的项目。 3.若(找到) (1)若(状态是PENDING) ①更新项目。 ②当队列非空时 将分组从队列中取出,连同硬件地址一起发给数据链路层。 (2)若(状态是RESOLVED) 更新项目(包括硬件地址和超时字段) 4.若(未找到) (1)创建一个项目。 (2)将此项目放入高速缓存表中。 5.若(分组是一个请求且本机负责应答) 单播发送对应ARP应答报文。 6.返回
四、逆地址解析协议 RARP
• 逆地址解析协议 RARP 使只知道自己硬件 地址的主机能够知道其 IP 地址。 • 这种主机往往是无盘工作站。 因此 RARP 协议目前已很少使用。
五 ARP设计
ARP软件包由5个构件组成:
– – – – – 高速缓存表 队列 输出模块 输入模块 高速缓存控制模块
209.0.0.6
Y
B 08-00-2B-00-EE-0A
Z
地址解析协议 (ARP协议):
功能:就是把IP地址解析成你的MAC地址
<1>:首先,ARP高级缓存,存放:IP<--MAC
IP.C IP.D MAC.C MAC.D
<2>:如果没有,运行ARP进程。工作过程:
1) A的ARP进程广播发送ARP请求分组
三、为什么我们不直接 使用硬件地址进行通信?
• 由于全世界存在着各式各样的网络,它们使用不同 的硬件地址。要使这些异构网络能够互相通信就必 须进行非常复杂的硬件地址转换工作,因此几乎是 不可能的事。 • 连接到因特网的主机都拥有统一的 IP 地址,它们之 间的通信就像连接在同一个网络上那样简单方便, 因为调用 ARP 来寻找某个路由器或主机的硬件地 址都是由计算机软件自动进行的,对用户来说是看 不见这种调用过程的。
ARP设计(续)
②队列 用于在ARP试图解析硬件地址时保留待 发的IP分组。输出模块将未解析的分组 发送到相应的队列中。输入模块从一个 队列中取出分组并将解析出的物理地址 一起发送给数据链路层来传输。 ③输出模块
ARP设计(续)
从IP软件等待IP分组,工作流程如下:
输出模块 1.睡眠,直到从IP软件收到分组。 2.检查高速缓存表,寻找对应于这个IP的项目。 3.若(找到) (1)若(状态是RESOLVED) ①从项目中提取硬件地址。 ②将分组连同硬件地址一起发给数据链路层。 ③返回。 (2)若(状态时PENDING) ①将分组放入相应的队列。 ②返回 4.若(未找到) (1)创建一个队列。 (2)将分组放入该队列。 (3)创建一个高速缓存项目,状态为PENDING且尝试ATTEMPTS置为1。 (4)广播发送ARP请求。 5.返回
ARP设计(续)
11. ARP举例 12. 设ARP超时时间为900,每隔一分钟高速缓存控制模块将 已解析项目超时值减去60。ARP高速缓存表初始如下:
状态 R P 队列 5 2 2 尝试 超时 900 协议地址 180.3.6.1 129.34.4.8 硬件地址 ACAE32457342
P
R P
ARP 请求
209.0.0.5 A
ARP 请求
ARP 请求
209.0.0.6
X
Y
B
Z
00-00-C0-15-AD-18
主机 B 向 A 发送 ARP 响应分组
我是 209.0.0.6 硬件地址是 08-00-2B-00-EE-0A ARP 响应
X
209.0.0.5 A 00-00-C0-15-AD-18
14
8 12 9 18
5
450 1 60 3
201.11.56.7
114.5.7.89 220.55.5.7 19.1.7.82 188.11.8.71 4573E3242ACA 457342ACAE32
F
R P
ARP设计(续)
问:
①ARP输出模块收到一个IP数据报(从IP层),其目的地 址为114.5.7.89,ARP将如何操作,并给出修改后地高 速缓存表? ②ARP输出模块收到一个IP数据报(从IP层),其目的地 址为116.1.7.22,ARP将如何操作,并给出修改后地高 速缓存表? ③ARP输入模块收到一个ARP应答分组,其源协议地址为 188.11.8.71、源物理地址为E34573242ACA ,ARP将如 何操作,并给出修改后地高速缓存表? ④1分钟后,高速缓存控制模块更新每一个项目,更新后的 高速缓存表每个项目值是多少?
ARP设计(续)
⑤高速缓存控制模块 负责维持高速缓存表,周期性地检查高速缓存 表。
高速缓存控制模块 1.睡眠,直到周期性地计时器到时间。 2.对高速缓存表中的每个项目 (1)若(状态是FREE) 继续 (2)若(状态是PENDING) ①将尝试值加1。 ②若(尝试大于最大值) 将状态改变为FREE撤销相应的队列。 ③若(不是) 重新发送ARP请求 ④继续 (3)若(状态是RESOLVED) ①将超时字段减去已经过的时间。 ②若(超时字段小于等于零) 将状态改变为FREE撤销相应的队列。 3.返回
子网掩码:255.255.255.0
若 B的IP: 209.100.100.25 若 B的IP: 209.100.200.5 =>A和B在同一个网络内,直接交付 =>A和B不在同一个网络内,间接交付
2.间接交付:主机A把该数据报交给本地路由器
A 间接交付 R B
IP.A → IP.B
MAC.R

IP.A → IP.B
<2>:如果没有,运行ARP进程。工作过程:
1) A的ARP进程广播发送ARP请求分组
2) 不是B,不理睬,丢弃
3) B响应,向A发送ARP响应分组 4) 主机A收到,得到MAC.B,写入缓存
主机 A 广播发送 ARP 请求分组
ARP 请求
我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道主机 209.0.0.6 的硬件地址
– 状态:表示项目的状态。其值为FREE(已超时)、PENDING (已发送请求但未应答)或RESOLVED(已经应答)。 – 硬件类型、协议类型、硬件地址长度、协议地址长度:与ARP 分组中的相应字段相同。 – 接口号:对应路由器的不同接口。 – 队列号:ARP使用不同的队列将等待地址解析的分组进行排队。 发往同一个目的地的分组通常放在同一个队列中。 – 尝试:表示这个项目发送出了多少次的ARP请求。 – 超时:表示一个项目以秒为单位的寿命。 – 硬件地址:目的硬件地址,应答返回前保持为空。 – 协议地址:目的高层协议地址如IP地址。
地址解析协议 (ARP) 和逆地 址解析协议( RARP)
网络层实现的功能就是从主机AB传输IP数据报
A B
B
?问题:怎样把数据报交付给B计算机,现在我们仅知 道B的标识:IP.B IP 数据报 IP.B IP.A
一、先讨论A和B在同一个局域网内情况
在同一个网络内,IP数据报是直接交付 ?问题:A怎样把数据报直接交付给你B主机
2) 不是B,不理睬,丢弃
3) B响应,向A发送ARP响应分组 4) 主机A收到,得到MAC.B,写入缓存
ARP协议应当注意的问题
1. ARP将保存在高速缓存中的每一映射地址项 目都设置生存时间,凡是超过生存时间的 项目就从高速缓存中删掉。 2. 从 IP 地址到硬件地址的解析是自动进行的, 主机的用户对这种地址解析过程是不知道 的。 3. ARP 是解决同一个局域网上的主机或路由 器的 IP 地址和硬件地址的映射问题。
六 实践:arp命令的使用
1.arp命令的功能
查看、添加和删除高速缓存区中的ARP表项
2.Windows 2000 ARP高速缓冲区
(1)包含动态和静态表项

动态表项:随时间推移自动添加和删除 静态表项:一直存在,直到人为删除或重新启动
(2)动态表项的计时器:潜在生命周期10min
6.1 显示高速cache中的ARP表
R
到达目的网络 端口 3 网络层: ARP协议 IP.B 数据链路层:
MAC.B MAC.R … IP.A->IP.B IPA → IPB IP数据报
2
1
MAC.B
这样,该IP数据报就最终到达了B主机
A->B的IP数据报传输过程
A 直接交付 间接交付 间接交付 直接交付 B
网络层
在A主机的网络层运行的IP进程, • 首先判断A和B是不是在同一个局域网内 • 是,直接交付,直接交给 B主机(使用ARP协议) • 不是,主机A把该数据报交给本地路由器(ARP) • 中间路由器进行一步步转发,最后到达目的网络 • 目的网络路由器进行直接交付(又使用ARP协议)
6.2 添加ARP静态表项
6.3 删除ARP表项
二、A和B不在同一个网内的情况
不在同一个网络内,要间接交付 ?间接交付
A 间接交付 间接交付 C 直接交付
直接交付 B
1.首先判断A和B是不是在同一个局域网内
IP地址
网络地址
主机地址
子网掩码
111111111111111111111111 00000000
举例:A的IP: 209.100.100.5
ARP设计(续)
IP 分组
ARP
高 速 缓 存 控 制 模 块
输出模块
高速缓存表
队列
输入模块
ARP 分组 (请求)
Fra Baidu bibliotek
ARP 分组 (请求或应 答)
ARP 分组 (应答)
具有已解析 硬件地址的 IP 分组
ARP 分组 (请求)
具有已解析 硬件地址的 IP 分组
ARP设计(续)
①高速缓存表: 高速缓存表用项目数组来实现,每个项目包括以下字 段:
交换机 路由器 hub
hub
A
hub
B
要在实际的链路上传输,必须遵循链路的帧格式
MAC.B MAC.A … IP.B IP.A …
现在关键的问题: ? MAC.B
地址解析协议 (ARP协议):
功能:就是把IP地址解析成你的MAC地址
<1>:首先,ARP高级缓存,存放:IP<--MAC
IP.C IP.D MAC.C MAC.D

IP.R
ARP协议(ARP缓存、ARP请求、ARP响应)
MAC.R
3. 路由器进行转发
A 间接交付
R1 帧中继网
B 间接交付
路由表 1 2 … 分组处理 1 2 输入端口 3 交换结构 3 2 输出端口 1 3 转发表 3 2 1
4. 目的网络路由器进行直接交付
A
间接交付
R1
直接交付
B
间接交付
相关文档
最新文档