一、实验项目名称
实验二地址解析协议(ARP)
二、实验目的及要求
1、掌握ARP协议的报文格式
2、掌握ARP协议的工作原理
三、实验主要硬件软件环境
PC机,Windows操作系统,网络协议仿真教学系统。
四、实验内容及步骤
练习一:领略真实的ARP(同一子网)
各主机打开工具区的“拓扑验证工具”,选择将主机A、B、C、D、E、F作为一组的网络结构,配置网卡后,进行拓扑验证,如果通过拓扑验证,关闭工具继续进行实验,如果没有通过,检查网络连接。
1.主机A、B、C、D、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条
件(提取ARP、ICMP)。
2.主机A、B、C、D、E、F在命令行下运行“arp -d”命令,清空ARP高速缓存。
3.主机A ping 主机D(172.16.1.4)。
主机B ping 主机C(172.16.1.3)。
主机E ping 主机F(172.16.0.3)。
4.主机A、B、C、D、E、F停止捕获数据,并立即在命令行下运行“arp -a”命令察看
ARP高速缓存。
●ARP高速缓存表由哪几项组成?
答:主要由:IP地址、MAC地址
●结合协议分析器上采集到的ARP报文和ARP高速缓存表中新增加的条目,简述ARP协
议的报文交互过程以及ARP高速缓存表的更新过程。
答:假设网络中的主机A要和主机B交换数据,首先主机A要得到主机B的IP地址和MAC地址的映射关系,工作过程如下:
①ARP模块接收来自上层的协议(IP)的数据报后,提取其目的的IP地址。
②主机A检查自己的高速缓存中的ARP表,判断ARP表中是否存有主机B的IP地
址与MAC地址的映射关系。如果找到,则完成ARP地址解析;如果没有找到,则转至③。
③主机A广播含有自身IP地址与MAC地址映射关系的请求信息包,请求解析主机B
的IP的地址与MAC地址映射关系。
④主机A等待接收ARP应答。
⑤如果主机A没有收到ARP应答,则停止发送数据报;
如果收到ARP应答,执行○6。
○6主机A收到主机B的响应信息,使用应答中的物理地址(MAC)作为数据报的mac 地址,并将主机B的IP地址与MAC地址的映射关系存入自己的ARP表中,从而完成主机B的ARP地址解析。
练习二:编辑并发送ARP报文(同一子网)
本练习将主机A、B、C、D、E、F作为一组进行实验。
1、在主机E上启动协议编辑器,并编辑一个ARP请求报文。其中:
MAC层:
目的MAC地址”设置为FFFFFF-FFFFFF
源MAC地址”设置为主机E的MAC地址
协议类型或数据长度:0806
ARP层:
发送端硬件地址:设置为主机E的MAC地址
发送端逻辑地址:设置为主机E的IP地址(172.16.0.2)
目的端硬件地址:设置为000000-000000
目的端逻辑地址:设置为主机F的IP地址(172.16.0.3)
2、主机A、B、C、D、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ARP协议)。
3、主机B、E、F在命令行下运行“arp -d”命令,清空ARP高速缓存。主机E发送已编辑好的ARP报文。
4、主机A、B、C、D、E、F停止捕获数据,分析捕获到的数据,进一步体会ARP报文交互过程。
思考题:
1.那些主机收到了ARP请求包,哪个主机给出了ARP响应包?
答:主机A、B、C、D、F都收到ARP请求包,主机F给出了ARP响应包。
2. 主机A、C、D是否收到ARP请求包,为什么?
答:主机A、C、D都能收到ARP请求包,因为主机B、C、D与主机E处于同一网段,ARP请求包进行广播,所以主机A、C、D都能收到ARP请求包
练习三:跨路由地址解析(不同子网)
本练习将主机A、B、C、D、E、F作为一组进行实验。
1、主机B在命令行下输入staticroute_config命令,开启静态路由服务。
2、主机A、B、C、D、E、F在命令行下运行“arp -d”命令,清空ARP高速缓存。
3、主机A、B、C、D、E、F重新启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ARP、ICMP)。
4、主机A ping 主机E(172.16.0.2)。
5、主机A、B、C、D、E、F停止数据捕获,察看协议分析器中采集到的ARP报文,并回答以下问题:
●单一ARP请求报文是否能够跨越子网进行地址解析?为什么?
答:不能,由于ARP请求是以广播的方式进行,而广播报文不能跨越子网,因此,单一ARP请求报文不能够跨越子网进行地址解析。
●ARP地址解析在跨越子网的通信中所起到的作用?
答:作用是解析网关的MAC地址,ARP本身无法跨跃不同的网段。
6、主机B在命令行下输入recover_config命令,停止静态路由服务。
思考问题:
1、哪些主机收到了ARP请求?哪台主机给出了ARP响应包?
答:主机B、C、D、E、F都收到了ARP请求,主机E给出了ARP响应包。
2、比较ARP协议在同网段内解析和跨网段的解析有什么异同?
答:相同点:都是广播发送ARP请求报文。不同点:主要在于网关的作用发挥。如果ARP请求是跨网段时由路由器来回答该请求
3、ARP分组的长度是固定的吗?试加以解释。
答:不是。ARP报文格式对任何协议和硬件地址都是充分通用的,对于不同的网络,ARP分组的长度可能不同。ARP分组中含有HTYPE(硬件类型)字段,用来定义运行ARP的网络类型(例如以太网是类型1),ARP分组中包含HLEN(硬件长度)字段,用来定义以字节为单位的物理地址长度(例如以太网为6)。ARP分组中包含SHA(发送端硬件地址)和THA(目标硬件地址)用来定义物理地址,这两个字段都是可变长度字段。
4、试解释为什么ARP高速缓存每存入一个项目就要设置10-20分钟的超时计时器。这个
时间设置得太大或太小会出现什么问题?
答:超时计时器用来维护ARP高速缓存,在一段时间内如果表中的某一项没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。时间设置得太大就会导致ARP缓存表的长度过长或者过旧,IP地址与MAC地址的映射关系可能已经发生改变,但ARP缓存表却还没更新。时间设置得太小会导致ARP高速缓存更改过于频繁,从而导致ARP广播数据包在网络上大量出现,增加网络流量,并降低了工作速度。
5、至少举出两种不需要发送ARP请求分组的情况。
答:当目的IP在ARP高速缓存中有对应的项目或者目的IP是广播地址时都不用发送ARP请求。