博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
系列TCP/IP协议-ARP与RARP
阅读量:5788 次
发布时间:2019-06-18

本文共 2012 字,大约阅读时间需要 6 分钟。

一、引言

在真实的网络上传输的数据帧不是IP地址来传的,是通过每一个网卡的特有的物理地址(MAC地址)来传输的。上层协议一般是只知道IP地址,不知道MAC地址的。因此需要有通过IP地址知道MAC地址的方法,这就是ARP(Addess Resolution Protocol)。   有时候知道一台机器的物理地址,而不知道该机器的IP地址(如,具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机/无盘工作站,则需要采用其他方法(RARP)来获得 I P地址)。通常是某主机发送一份RARP数据包到网络上,另一主机(RARP服务器)响应该RARP数据包,告诉当前主机他的IP地址。

二、ARP与RARP数据包

  这是是一个完整的以太网ARP/RARP数据帧(图1中,每一域的长度单位是字节),该帧去掉了CRC校验和,前三个区域为前面介绍的链路层以太网帧格式。ARP与RARP的数据包格式是相同的,只是某些区域字段值(以太帧类型、操作数)不相同而已。除去以太帧首部外的其他域解释如下:

  • 以太帧帧类型:长度2个字节,0x0800-IP数据包,0x0806-ARP请求/应答数据包,0x8035-RARP请求/应答数据包。
  • 硬件类型(Hardware type):指明该ARP数据包的网络硬件类型,长度2个字节,0x0001-以太网。
  • 协议类型(Protocol type):指明该ARP数据包的使用协议,长度2个字节,0x0800-IP地址协议。协议类型与硬件类型共同确定后面数据存储结构,这里只是以太网ARP/RARP。
  • 硬件地址长度(Hardware Size): 指明之后的硬件地址长度,长度1个字节。0x06-以太网地址长度(6个字节),该长度的单位是字节。
  • 协议地址长度(Protocol Size):指明之后的协议地址长度,长度1个字节。0x04-IP地址长度(4个字节),该长度的单位是字节。
  • 操作码(Opcode):指明该数据包是干嘛的,长度2个字节。0x0001-ARP请求包,0x0002-ARP应答包;0x0003-RARP请求包,0x0004-RARP应答包。
  • 源以太网MAC地址(Sender MAC Address):发送端以太网物理地址,长度6个字节。
  • 源IP地址(Sender IP Address):发送端IP地址,长度4个字节。
  • 目的以太网MAC地址(Target MAC Address):目的以太网MAC地址,长度6个字节。ARP发送包初始化为0,ARP应答包为具体MAC地址;RARP发送包初始化为需要解析的MAC地址。
  • 目的IP地址(Target IP Address):目的IP地址,长度为4个字节。ARP发送包初始化为需要解析的IP地址。RARP发送包初始化为0,RARP应答包填充对应的IP地址。

ARP与RARP数据包既可以单播(以太网目的地址为具体的某个机器的MAC地址),也可以广播(以太网目的地址为全为1的MAC地址)。

三、ARP与RARP特性

1. ARP特性

  • ARP高速缓存:ARP能够高效运行的原因是每一个主机都有一个ARP高速缓存。这个高速缓存存放了最近的IP地址与硬件之间的映射关系。高速缓存一般设置的生存时间是20分钟。起始时间是从被创建时候开始算起。在命令行中,我们可以通过arp命令查看这些缓存。
  • ARP代理(Proxy ARP):有时候需要将网络A中的数据包发送到网络B中某主机,当在网络A中发送ARP请求包的时候,网络A与网络B之间的路由器会响应该ARP包。这样就让ARP请求包发送端,误认为路由器是目的主机。
  • 额外的ARP(gratuitous ARP):指的是主机A发送查找主机A的IP地址对应MAC的ARP请求包。发送查找自己的ARP包怪吗?不怪,因为可以通过这种方式:(1).该网络上是否具有相同IP地址的主机。(2).如果主机A的物理地址发生变化,可以通过这种方式更新其他主机中相应的ARP高速缓存。

2.RARP特性

  • RARP的响应需要RARP服务器的。该服务器记录了IP地址与物理地址的对应关系。通常一个网络中有多个RARP服务器。
  • 当服务器的数目增加时(以提供冗余备份),网络流量也随之增加,因为每个服务器对每个RARP请求都要发送RARP应答。发送RARP请求的无盘系统一般采用最先收到的 RARP应答(对于 ARP,我们从来没有遇到这种情况,因为只有一台主机发送 ARP应答)。另外,还有一种可能发生的情况是每个 RARP服务器同时应答,这样会增加以太网发生冲突的概率。

四、ARP抓包

上面,两图是一对。我们可以看到这是一个单播的ARP。

都看到这里了,要不要扫二维码关注一下微信公众号林湾村龙猫

转载于:https://juejin.im/post/5cb68a93518825324c44ed8c

你可能感兴趣的文章
[SpringBoot] - 配置文件的多种形式及优先级
查看>>
chrome浏览器开发者工具之同步修改至本地
查看>>
debian7 + wheezy + chromium + flashplayer
查看>>
AOP
查看>>
进阶开发——文档,缓存,ip限速
查看>>
vue中子组件需调用父组件通过异步获取的数据
查看>>
uva 11468 - Substring(AC自己主动机+概率)
查看>>
Mysql 数据备份与恢复,用户创建,授权
查看>>
沉思录
查看>>
Angular.js中的$injector服务
查看>>
构建之法读书笔记01
查看>>
linux - lsof 命令最佳实践
查看>>
kafka性能测试
查看>>
现实世界的Windows Azure:h.e.t软件使用Windows Azure削减50%的成本
查看>>
深入.net框架
查看>>
聚合类新闻client产品功能点详情分析
查看>>
js设置定时器
查看>>
数据库除运算
查看>>
LeetCode--112--路径总和
查看>>
DeviceIOControl与驱动层 - 缓冲区模式
查看>>