第四章
ARP和 RARP
RFC826和 RFC903
TCP/IP详解卷 1,CH4,CH5
主要内容
? 4.1 ARP协议
? 4.2 RARP 协议
? 课下作业
4.1 ARP 协议
172.16.3.1 172.16.3.2
IP,172.16.3.2 =
I heard that broadcast,
The message is for me,
Here is my Ethernet
address.
I need the
Ethernet
address of
176.16.3.2.
ARP 协议
172.16.3.1
IP,172.16.3.2
Ethernet,0800.0020.1111
172.16.3.2
IP,172.16.3.2 =
I heard that broadcast,
The message is for me,
Here is my Ethernet
address.
I need the
Ethernet
address of
176.16.3.2.
ARP 协议
? IP MAC 也称为本地 ARP
172.16.3.1
IP,172.16.3.2
Ethernet,0800.0020.1111
172.16.3.2
IP,172.16.3.2 =
I heard that broadcast,
The message is for me,
Here is my Ethernet
address.
I need the
Ethernet
address of
176.16.3.2.
当输入, ftp 主机名, 时 ARP的操作
ARP高速缓存和 ARP命令
? 每一项的生存时间一般为 20分钟
? ARP命令, 显示和修改 ARP缓存
? ARP -s inet_addr eth_addr [if_addr]
? ARP -d inet_addr [if_addr]
? ARP -a [inet_addr] [-N if_addr]
? -a 显示当前的 ARP缓存信息,可以指定网络地址
? -g 跟 -a一样,
? -d 删除由 inet_addr指定的主机记录, 可以使用 * 来删除所有主机,
? -s 添加主机,并将网络地址跟物理地址相对应,这一项是永久生效
的。
ARP分组(以以太网为例)
? 以太网报头中的前两个字段是以太网的源地址和目的地址
? 两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或
应答来说,该字段的值为 0 x 0 8 0 6。
? 协议指请求分组询问协议地址( OX0800是 I P地址)
? 硬件地址指所要映射的硬件地址( 1是以太网地址)
? 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,
以字节为单位。对于以太网上 I P地址的 A R P请求或应答来说,它们
的值分别为 6和 4。
? 操作字段指出四种操作类型
? 1为 A R P请求
? 2为 A R P应答
? 3为 R A R P请求
? 4为 R A R P应答
对不存在主机的 ARP请求
? 多次进行 A R P请求
高速缓存超时设置
? 在 A R P高速缓存中的表项一般都要设置超时值
(手工添加的除外)
? 从伯克利系统演变而来的系统一般对完整的表项
设置超时值为 2 0分钟,
? Host Requirements RFC表明即使表项正在使
用时,超时值也应该启动,但是大多数从伯克利
系统演变而来的系统没有这样做 — 它们每次都是
在访问表项时重设超时值。
ARP代理
? 如果 A R P请求是从一个网络的主机发往另一个网络上的
主机,那么连接这两个网络的路由器就可以回答该请求,
这个过程称作委托 A R P或 A R P代理 (Proxy ARP)。
? 这样可以欺骗发起 A R P请求的发送端,使它误以为路由
器就是目的主机,而事实上目的主机是在路由器的, 另一
边, 。
? 路由器的功能相当于目的主机的代理,把分组从其他主机
转发给它。
免费 ARP
? 它是指主机发送 A R P查找自己的 I P地址。
? 通常,它发生在系统引导期间进行接口配
置的时候。
免费 A R P可以有两个方面的作用
? 一个主机可以通过它来确定另一个主机是否设置了相同的
I P地址。
? 如果发送免费 A R P的主机正好改变了硬件地址(很可能
是主机关机了,并换了一块接口卡,然后重新启动),那
么这个分组就可以使其他主机高速缓存中旧的硬件地址进
行相应的更新。
4.2 RARP 协议
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
RARP 协议
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
I heard that
broadcast,
Your IP
address is
172.16.3.25.
RARP 协议
Ethernet,0800.0020.1111
IP,172.16.3.25
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
I heard that
broadcast,
Your IP
address is
172.16.3.25.
RARP 协议
? MAC IP
Ethernet,0800.0020.1111
IP,172.16.3.25
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
I heard that
broadcast,
Your IP
address is
172.16.3.25.
RARP分组
? 与 ARP分组基本一样,只是类型代码为
0X8035
地址的转换
主机名 IP地址
IP地址
IP地址
MAC地址
MAC地址
DNS
RARP
ARP
课下作 业(必做)
1,分析 ARP请求和应答的过程及包内容
2,查资料,ARP欺骗及防御
并做相应的实验
课下作 业(选作)
1,在熟悉 ARP协议并了解 Winpcap编程的前提下,构
造 ARP包,选择并打开网卡,将 ARP包发送出去。
运行格式:程序名 源 IP地址 目的 IP地址
目的 MAC地址 flag
flag=0,ARP请求 flag=1,ARP应答
2,编程序,获取网络中的 ARP数据包,解析数据包的内
容,将结果显示在标准输出上,并同时写入日志文
件。
运行格式:程序名 日志文件
ARP和 RARP
RFC826和 RFC903
TCP/IP详解卷 1,CH4,CH5
主要内容
? 4.1 ARP协议
? 4.2 RARP 协议
? 课下作业
4.1 ARP 协议
172.16.3.1 172.16.3.2
IP,172.16.3.2 =
I heard that broadcast,
The message is for me,
Here is my Ethernet
address.
I need the
Ethernet
address of
176.16.3.2.
ARP 协议
172.16.3.1
IP,172.16.3.2
Ethernet,0800.0020.1111
172.16.3.2
IP,172.16.3.2 =
I heard that broadcast,
The message is for me,
Here is my Ethernet
address.
I need the
Ethernet
address of
176.16.3.2.
ARP 协议
? IP MAC 也称为本地 ARP
172.16.3.1
IP,172.16.3.2
Ethernet,0800.0020.1111
172.16.3.2
IP,172.16.3.2 =
I heard that broadcast,
The message is for me,
Here is my Ethernet
address.
I need the
Ethernet
address of
176.16.3.2.
当输入, ftp 主机名, 时 ARP的操作
ARP高速缓存和 ARP命令
? 每一项的生存时间一般为 20分钟
? ARP命令, 显示和修改 ARP缓存
? ARP -s inet_addr eth_addr [if_addr]
? ARP -d inet_addr [if_addr]
? ARP -a [inet_addr] [-N if_addr]
? -a 显示当前的 ARP缓存信息,可以指定网络地址
? -g 跟 -a一样,
? -d 删除由 inet_addr指定的主机记录, 可以使用 * 来删除所有主机,
? -s 添加主机,并将网络地址跟物理地址相对应,这一项是永久生效
的。
ARP分组(以以太网为例)
? 以太网报头中的前两个字段是以太网的源地址和目的地址
? 两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或
应答来说,该字段的值为 0 x 0 8 0 6。
? 协议指请求分组询问协议地址( OX0800是 I P地址)
? 硬件地址指所要映射的硬件地址( 1是以太网地址)
? 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,
以字节为单位。对于以太网上 I P地址的 A R P请求或应答来说,它们
的值分别为 6和 4。
? 操作字段指出四种操作类型
? 1为 A R P请求
? 2为 A R P应答
? 3为 R A R P请求
? 4为 R A R P应答
对不存在主机的 ARP请求
? 多次进行 A R P请求
高速缓存超时设置
? 在 A R P高速缓存中的表项一般都要设置超时值
(手工添加的除外)
? 从伯克利系统演变而来的系统一般对完整的表项
设置超时值为 2 0分钟,
? Host Requirements RFC表明即使表项正在使
用时,超时值也应该启动,但是大多数从伯克利
系统演变而来的系统没有这样做 — 它们每次都是
在访问表项时重设超时值。
ARP代理
? 如果 A R P请求是从一个网络的主机发往另一个网络上的
主机,那么连接这两个网络的路由器就可以回答该请求,
这个过程称作委托 A R P或 A R P代理 (Proxy ARP)。
? 这样可以欺骗发起 A R P请求的发送端,使它误以为路由
器就是目的主机,而事实上目的主机是在路由器的, 另一
边, 。
? 路由器的功能相当于目的主机的代理,把分组从其他主机
转发给它。
免费 ARP
? 它是指主机发送 A R P查找自己的 I P地址。
? 通常,它发生在系统引导期间进行接口配
置的时候。
免费 A R P可以有两个方面的作用
? 一个主机可以通过它来确定另一个主机是否设置了相同的
I P地址。
? 如果发送免费 A R P的主机正好改变了硬件地址(很可能
是主机关机了,并换了一块接口卡,然后重新启动),那
么这个分组就可以使其他主机高速缓存中旧的硬件地址进
行相应的更新。
4.2 RARP 协议
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
RARP 协议
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
I heard that
broadcast,
Your IP
address is
172.16.3.25.
RARP 协议
Ethernet,0800.0020.1111
IP,172.16.3.25
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
I heard that
broadcast,
Your IP
address is
172.16.3.25.
RARP 协议
? MAC IP
Ethernet,0800.0020.1111
IP,172.16.3.25
Ethernet,0800.0020.1111 IP =
What is
my IP
address?
I heard that
broadcast,
Your IP
address is
172.16.3.25.
RARP分组
? 与 ARP分组基本一样,只是类型代码为
0X8035
地址的转换
主机名 IP地址
IP地址
IP地址
MAC地址
MAC地址
DNS
RARP
ARP
课下作 业(必做)
1,分析 ARP请求和应答的过程及包内容
2,查资料,ARP欺骗及防御
并做相应的实验
课下作 业(选作)
1,在熟悉 ARP协议并了解 Winpcap编程的前提下,构
造 ARP包,选择并打开网卡,将 ARP包发送出去。
运行格式:程序名 源 IP地址 目的 IP地址
目的 MAC地址 flag
flag=0,ARP请求 flag=1,ARP应答
2,编程序,获取网络中的 ARP数据包,解析数据包的内
容,将结果显示在标准输出上,并同时写入日志文
件。
运行格式:程序名 日志文件