ARP协议
ቤተ መጻሕፍቲ ባይዱ
同一网络中,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数据报
三、为什么我们不直接 使用硬件地址进行通信?
• 由于全世界存在着各式各样的网络,它们使用不同 的硬件地址。要使这些异构网络能够互相通信就必 须进行非常复杂的硬件地址转换工作,因此几乎是 不可能的事。 • 连接到因特网的主机都拥有统一的 IP 地址,它们之 间的通信就像连接在同一个网络上那样简单方便, 因为调用 ARP 来寻找某个路由器或主机的硬件地 址都是由计算机软件自动进行的,对用户来说是看 不见这种调用过程的。
ARP协议应当注意的问题
1. ARP将保存在高速缓存中的每一映射地址项 目都设置生存时间 生存时间,凡是超过生存时间的 生存时间 项目就从高速缓存中删掉。 2. 从IP地址到硬件地址的解析是自动进行的 解析是自动进行的, 解析是自动进行的 主机的用户对这种地址解析过程是不知道 的。 3. ARP 是解决同一个局域网上 同一个局域网上的主机或路由 同一个局域网上 器的 IP 地址和硬件地址的映射问题。
地址解析协议 (ARP协议): 功能:就是把IP地址解析成你的MAC地址 <1>:首先,ARP高级缓存,存放:IP<-- MAC
IP.C IP.D MAC.C MAC.D
<2>:如果没有,运行ARP进程。工作过程:
1) A的ARP进程广播发送ARP请求分组 2) 不是B,不理睬,丢弃 3) B响应,向A发送ARP响应分组 4) 主机A收到,得到MAC.B,写入缓存
2.间接交付:主机A把该数据报交给本地路由器
A 间接交付 R B
IP.A → IP.B
MAC.R
…
IP.A → IP.B
…
IP.R
ARP协议(ARP缓存、ARP请求、ARP响应) ARP协议(ARP缓存、ARP请求、ARP响应) 协议 缓存 请求 响应
MAC.R
3. 路由器进行转发
A 间接交付
R1 帧中继网
四、逆地址解析协议 RARP
• 逆地址解析协议 RARP 使只知道自己硬件 地址的主机能够知道其 IP 地址。 • 这种主机往往是无盘工作站。 因此 RARP 协议目前已很少使用。
五、总结
6.2.3 地址解析协议 (ARP) 和逆地址解析协议( RARP)
网络层实现的功能就是从主机A B传输IP数据报
A B
B
?问题:怎样把数据报交付给B计算机,现在我们仅知 问题: 道B的标识:IP.B IP 数据报 IP.B IP.A
一、先讨论A和B在同一个局域网内情况
在同一个网络内,IP数据报是直接交付 ?问题:A怎样把数据报直接交付给你B主机
X
209.0.0.5 A
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
209.0.0.6 Y B 08-00-2B-00-EE-0A Z
<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 的硬件地址 ARP 请求 ARP 请求 ARP 请求 209.0.0.6 Y B Z
2
1
MAC.B
这样,该IP数据报就最终到达了B主机
A->B的IP数据报传输过程
A 直接交付 间接交付 间接交付 直接交付 B
网络层
在A主机的网络层运行的IP进程, • 首先判断A和B是不是在同一个局域网内 • 是,直接交付,直接交给 B主机(使用ARP协议) • 不是,主机A把该数据报交给本地路由器(ARP) • 中间路由器进行一步步转发,最后到达目的网络 • 目的网络路由器进行直接交付(又使用ARP协议)
二、A和B不在同一个网内的情况
不在同一个网络内,要间接交付 ?间接交付
A 间接交付 间接交付 C 直接交付
直接交付 B
1.首先判断A和B是不是在同一个局域网内
IP地址
网络地址
主机地址
子网掩码
111111111111111111111111 00000000
举例:A的IP: 209.100.100.5 子网掩码:255.255.255.0 若 B的IP: 209.100.100.25 若 B的IP: 209.100.200.5 =>A和B在同一个网络内,直接交付 =>A和B不在同一个网络内,间接交付
B 间接交付
路由表 1 2 … 分组处理 1 2 输入端口 3 交换结构 3 2 输出端口 1 3 转发表 3 2 1
4. 目的网络路由器进行直接交付
A 间接交付
R1
直接交付 间接交付
R
B
到达目的网络 端口 3 网络层: ARP协议 ARP协议 IP.B 数据链路层:
MAC.B MAC.R … IP.A->IP.BB IP数据报 IPA → IP
交换机 路由器 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