一、参考
二、名词解释
ARP:address resolution protocol 地址解析协议
RARP: reverse address resolution protocol 反向地址解析协议
三、内容
1. 概要
IP 地址仅仅在 TCP/IP 协议栈中被使用,如果一个数据链路层是以太网或者令牌环,则它们有自己的寻址结构(48 位)
网络中可能存在多种网络层协议同时运行
当以太网数据帧从某个主机发送到局域网中的另一台主机,48 位的网络地址决定了接收数据帧的网络接口,设备驱动程序不会寻找 IP 数据包中的目标 IP 地址
由图:
(1)FTP 客户端,调用 gethostbyname 函数,将主机名称转换为 IP 地址(32 位),在 DNS 中称为转化函数,此转换过程需要使用 DNS 协议或者在小型网络中,直接查找 /etc/hosts 静态文件
(2)FTP 客户端建立 TCP 连接,目标 IP 地址为(1)中获取的 IP 地址
(3)FTP 客户端发送连接请求数据,通过 IP 协议,发送 IP 数据包
(4)如果目标主机和源主机在同一个本地网络中(以太网、令牌环、点到点连接),IP 数据包可以直接发送到目标主机;如果目标主机位于远端网络中,IP 路由获取下一跳路由地址,将 IP 数据包发送到下一跳,最终,IP 数据包都会发送到本地网络中
(5)目标主机位于局域网中,需要将逻辑 IP 地址转为物理硬件地址(ARP 过程),ARP 也用于广播(多个主机和路由连接到一个网络中)
(6)ARP 协议,广播 ARP 请求(实际为一个以太网帧)到网络中的每个主机,ARP 请求中包含目标主机的 IP 地址,请求目的是接收请求的每个主机,判断自己 IP 地址是否是以太网帧中包含的目标 IP 地址,如果是,则返回硬件地址
(7)目标主机的 ARP 层,接收到广播,确认发送者请求自身硬件地址,目标主机返回 ARP 响应,其中包含 IP 地址和对应的硬件地址
(8)接收 ARP 响应
(9)发送 IP 数据包到目标主机