实验名称:编辑并发送ARP报文(同一子网)实验成绩学生姓名:学号:指导教师:班级:网络1301主机编号:2—C实验日期:2015.10.30实验目的:1.掌握ARP协议的报文格式2.掌握ARP协议的工作原理3.理解ARP高速缓存的作用实验原理:ARP报文格式下图为ARP数据报的报文格式:图2-1ARP报文格式ARP报文格式具有如下的一些字段:●硬件类型:这是16位字段,用来定义运行ARP的网络的类型。每一个局域网基于其类型被指派给一个整数。例如,以太网的硬件类型是1。ARP可用在任何网络上。●协议类型:这是16位字段。用来定义协议的类型。例如,对IPv4协议,这个字段的值是0x0800。ARP可用于任何高层协议。●硬件地址长度:这是一个8位字段,用来定义以字节为单位的物理地址长度。例如,以太网物理地址为6字节,所对应的硬件地址长度值为6。●协议地址长度:标识用于该数据包的逻辑地址的长度,用十进制标识,单位为一个字节,例如,IPv4为4个字节,所对应的协议地址长度值为4。●操作码:这是16位字段,用来定义数据包的类型。已定义了两种类型:为1时表示ARP请求,为2时表示ARP应答。●发送端硬件地址:这是可变长度字段,用来定义发送端的物理地址。对于以太网这个字段是6字节长。●发送端逻辑地址:这是可变长度字段,用来定义发送端的逻辑地址。对于逻辑地址为IP地址的网络,该字段长度为4字节。●目的端硬件地址:这是可变长度字段,用来定义目标的物理地址。对于ARP请求,字段是全0,因为发送端不知道目标的物理地址(该字段长度为可变,如以太网硬件地址为6个字节)。●目的端逻辑地址:这是可变长度字段,用来定义目标的逻辑地址(该字段长度为可变,如IPv4协议的逻辑地址为4个字节)。ARP封装ARP数据报直接封装在数据链路帧中。例如,在下图中,ARP数据包封装在以太网的帧中。类型字段值为0x0806指出了此帧所携带的数据是ARP数据包。.ARP的运行过程)数据包传输过程可分为如下步骤:1.发送端知道目的端的IP地址。2.IP要求ARP创建一个ARP请求报文,其中包含了发送方的物理地址、发送方的IP地址和目的端的IP地址。目的端的物理地址用0填充。3.将报文传递到数据链路层,并在该层中用发送方的物理地址作为源地址,用物理广播地址作为目的地址,将其封装在一个帧中。4.因为该帧中包含了一个广播目的地址,所以同一链路中的每个主机或路由器都接收到这个帧。所有接收到该帧的主机都将其传递到ARP层进行处理。除了目的端主机以外的所有主机都丢弃该报文。5.目的端主机用一个包含其物理地址的ARP应答报文做出响应,并对该报文进行单播。6.发送方接收到这个应答报文,这样它就知道了目标主机的物理地址。ARP地址解析过程如下图所示。图2-3ARP地址解析过程ARP高速缓存在真正的协议实现中,并不是每次发送IP报文前都需要发送ARP请求报文来获取目的MAC地址。在大多数的系统中都存在着一个ARP缓存表。记录着一段时间内曾经获取过的MAC地址和IP地址的映射关系,如下图所示:图2-4ARP高速缓存发送IP数据报前先对ARP缓存表进行查找,查看目的MAC地址是否存在于缓存表中,如果存在,则不需要发送ARP请求报文而直接使用此地址进行IP数据包的发送。如果不存在,则发送ARP请求报文,在收到ARP应答报文之后,使用应答报文中的目的MAC地址发送IP数据包,并将目的MAC地址存于ARP缓存表中供以后使用。另外,ARP缓存表采用老化机制,在一段时间内如果表中的某一项没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。下图描述了ARP高速缓存的使用与更新过程:图2-5ARP高速缓存的使用与更新过程实验环境(要求画出实验所用的拓扑结构)●主机A、C、D的默认网关是172.16.1.1;主机E、F的默认网关是172.16.0.1。●双网卡主机,左端物理接口为物理接口1,右端物理接口为物理接口2。实验步骤本练习将主机A、B、C、D、E、F作为一组进行实验。1.在主机E上启动协议编辑器,并编辑一个ARP请求报文。其中:MAC层:目的MAC地址:设置为FFFFFF-FFFFFF源MAC地址:设置为主机E的MAC地址协议类型或数据长度:0806ARP层:发送端硬件地址:设置为主机E的MAC地址发送端逻辑地址:设置为主机E的IP地址(172.16.0.2)目的端硬件地址:设置为000000-000000目的端逻辑地址:设置为主机F的IP地址(172.16.0.3)2.主机B、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ARP协议)。3.主机B、E、F在命令行下运行“arp-d”命令,清空ARP高速缓存。主机E发送已编辑好的ARP报文。4.主机B、F停止捕获数据,分析捕获到的数据,进一步体会ARP报文交互过程。实验数据及结构分析我是2—C,和E.F不在同一网段内,因此未收到任何报文消息。课后习题1.哪些主机收到了ARP请求包,哪个主机给出了ARP响应包?B,E,F主机收到了ARP请求包,A,C,D没收到。2.主机A、C、D是否收到ARP请求包,为什么?因为A,C,D和E,F不在同一网段。