【笔记】tcp/ip illustrated <4 ARP>

1、参考

2、名词解释

ARP:address resolution protocol 地址解析协议
RARP: reverse address resolution protocol 反向地址解析协议缓存

3、内容

1. 概要网络

clipboard.png

IP地址仅仅在TCP/IP协议栈中被使用,若是一个数据链路层是以太网或者令牌环,则它们有本身的寻址结构(48位)
网络中可能存在多种网络层协议同时运行
当以太网数据帧从某个主机发送到局域网中的另外一台主机,48位的网络地址决定了接收数据帧的网络接口,设备驱动程序不会寻找IP数据包中的目标IP地址函数

clipboard.png

由图:
(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数据包到目标主机spa

2. ARP缓存3d

ARP转换最有效的方式是在每一个主机上保存转换缓存,缓存中包含IP地址和硬件地址之间的映射,每一条缓存记录有效期为20分钟(从记录建立开始计时)
arp -a 查看全部arp缓存记录代理

clipboard.png

以太网地址为48位,展现成6个16进制数字,中间使用冒号分隔blog

3. ARP包结构接口

clipboard.png

以太网头部开始的两个字段为以太网源目地址,若是目的地址所有都是1,表示为广播地址,电缆上以太网接口均可以接收到数据帧
frame type字段,值0x0806标识是ARP(请求或者是响应)ip

hard type字段,指定硬件地址类型,值1标识以太网类型地址
prot type字段,指定将要映射的协议地址的类型,IP地址值为0x0800路由

hard_size, prot_size指定硬件和协议地址占用的字节数量
(例如:ARP请求或者ARP响应,对于以太网地址和IP地址,hard_size, prot_size = 6, 4)
op字段指定该数据是ARP请求(值为1),ARP响应(值为2),RARP请求(值为3),RARP响应(值为4)
最后四个字段,分别是发送者硬件地址,发送者协议地址,接收者硬件地址,接收者协议地址,发送者硬件地址在以太网头部和ARP请求中都有记录

对于一个ARP请求,除了接收者硬件地址,其余字段都有值,当系统接收到ARP请求后,将填充硬件地址,而后转换接收者和发送者,将op字段值变为2,而后发送ARP响应

4. ARP缓存超时

伯克利实现的ARP缓存,对完整的ARP记录20分钟,不完整的ARP记录3分钟,多数伯克利实现,当从新使用记录中ARP时候,超时时间会被从新计时

5. 代理ARP

代理ARP容许路由器在一个网络中,接收另外一个网络主机发送的ARP请求
使用代理ARP,ARP请求中的目的主机为路由器地址,但实际上目标主机是路由器后面的主机,路由器充当了目标主机的代理,做为数据包的中转

clipboard.png

由上图:

(1)在子网140.252.1某个主机(例如:gemini)有一个IP数据包,发送到sun主机(主机IP: 140.252.1.29)
(2)gemini判断网络ID和子网ID,广播ARP请求到相同网络ID、子网ID的以太网中
(3)netb路由器,发现ARP请求中的IP地址属于其拨号主机之一,响应ARP请求,返回网络接口(子网140.252.1)的硬件地址
注意:每一个拨号主机不须要使用惟一的IP地址来链接到路由器中,全部拨号主机使用140.252.1.183做为SLIP连接的目标地址

ARP代理,也称为 promiscuous ARP or the ARP hackARP代理能够隐藏两个物理网络,在二者之间起到路由做用

相关文章
相关标签/搜索