实验二:ARP协议以及IP地址和MAC地址关系
一、实验目的
- 掌握ARP协议常用命令;
- 掌握ARP协议的工作过程;
- 掌握IP地址和MAC地址的关系;
二、实验要求
-
掌握ARP协议常用命令;
- 见计算机网络实验教材-2.7网络命令
-
掌握ARP协议的工作过程;
- 学习:视频学习Cisco Packet Tracer中的集线器和交换机的区别
- 配置一个包括两个网络的互联网(可参照下图1),并将IP地址和MAC地址相应信息进行标记;
- 网络1中某主机向本网络中某主机发送数据(例如PC5向PC6发送ICMP数据), 要求此时产生ARP请求数据包,查看ARP请求和应答的过程。查看和标记ARP请求包和ARP应答包的源MAC地址和目的MAC地址;查看ICMP数据包的源IP地址和目的IP地址;源MAC地址和目的MAC地址;
- 网络1中某主机向网络2中某主机发送数据(例如PC5向PC9发送ICMP数据), 要求此时产生ARP请求数据包,查看ARP请求和应答的过程。查看和标记ARP请求包和ARP应答包的源MAC地址和目的MAC地址;查看ICMP数据包的源IP地址和目的IP地址;源MAC地址和目的MAC地址;
图1 两个网络互联的拓扑图
三、实验环境
左侧网络的三个主机的默认网关是:198.168.0.4
右侧网络的两个主机的默认网关是:198.169.0.3
四、实验结果
- 网络1中某主机向本网络中某主机发送数据
事件列表如图所示,两个处于同一以太网的两个主机之间发送消息。初始状态下,PC5的ARP表中不存在目的IP地址主机的表项,所以发送ARP请求报文,交换机的交换表中没有目的主机的表项,所以记录源主机的表项后。洪泛转发。PC6主机正确接受了ARP请求报文,并回复ARP响应报文,交换机直接交付PC5主机。此时交换机还记录了PC6表项。
主机5获得目的主机MAC地址后正式发送ICMP报文。此时转发交换机不需要洪泛,而是直接交付。
上图是从源主机发出的ARP请求报文。ARP数据包中,源MAC地址为自身MAC地址,目的MAC地址为0000.0000.0000.0000。源IP与目的IP是双方主机的IP地址
上图是目的主机收到ARP请求报文后,接受与发出报文的格式。在ARP响应报文中,源MAC与源IP地址是PC6 的地址,目的地址是PC5 的地址。此时PC6记录了PC5的MAC地址
如上图所示,ICMP报文的询问与应答报文的MAC地址与IP地址都是双方的真实地址。且检查双方主机的ARP表可知,此时双方都已获得对方的MAC地址
- 网络1中某主机向网络2中某主机发送数据
开始试验前,清空PC5和9的ARP表,事件列表如图所示。
首先源主机ARP表中没有目的主机的MAC地址,发送ARP请求报文。但是目的主机和源主机不在同一个以太网中,所以ARP是路由器和源主机之间的请求和应答。
获得路由器MAC地址后,ICMP询问报文通过路由器发送到另一个以太网中,通过交换机洪泛,ICMP报文到达目的主机
目的主机的ARP表为空,同样需要在路由器和目的主机之间进行ARP的的请求和应答。
目的主机获得路由器MAC地址后发送ICMP应答报文,最终到达源主机。
上图是PC5发出的ARP的请求报文以及它的应答报文。
PC5发出的ARP请求报文,源MAC地址与IP地址是自己的MAC地址IP地址。目的MAC地址是0000.0000.0000.0000,目的IP地址是默认网关的IP地址。
应答报文的源MAC地址是路由器与该网段接口的MAC地址,IP地址是该网段中路由器的IP地址,目的MAC地址与IP地址是询问报文中的源MAC地址与源IP地址。
上图是主机PC9发出的ARP请求报文以及它的应答报文。原理和主机PC5与路由器之间的相似。
上图是由PC5发出的ICMP请求报文。源IP地址和目的IP地址是双方主机的IP地址。源MAC地址是源主机的MAC地址,目的MAC地址是路由器一个接口的MAC地址。
上图是由路由器转发的ARP请求报文。此时源MAC地址已经成为路由器另一个接口的MAC地址。目的MAC地址是目的主机的MAC地址。
这里其实假定路由器已经知道了目的主机的MAC地址。若路由器不知道,路由器将会丢弃这个ICMP报文,发送ARP报文获得MAC地址。
上图是由PC9发出的ICMP应答报文。源IP地址与源MAC地址是主机PC9的地址。目的IP地址是目的主机的IP地址,目的MAC地址是路由器一个接口的MAC地址。
上图是由路由器转发的ICMP应答报文。路由器将源MAC地址更换为另一个接口的MAC地址,目的MAC地址更换为目的主机的MAC地址。IP地址不变。
五、思考题
-
上述步骤2.掌握ARP协议的工作过程的(4)完成后,哪些PC的缓存中拥有了PC5的IP地址与MAC地址的映射关系?
就实验结果部分设计的第一个实验而言,只有PC6主机拥有了该映射关系
-
主机使用ARP能查询到其他网段的MAC地址么?为什么?
不能,ARP是数据链路层协议,不能跨网段查询,只能查询到本网段的MAC地址,若跨网段的话,它可以获取路由器与本网段接口的MAC地址
-
在上述步骤2.掌握ARP协议的工作过程的(4)中,如果所有设备的ARP表都是空的,则执行 PC5 ping PC9一共出现了几次ARP请求?分别是谁发送的,请求的是谁(哪个IP地址)的MAC地址?
两次ARP请求,分别是PC5发出的,请求的是与该网段相连的路由器接口的MAC地址
路由器发送的,请求的是目的主机的MAC地址。
-
在上述步骤2.掌握ARP协议的工作过程的(4)中,PC5 ping PC9时,数据传输经过了哪些设备?ICMP数据包的源IP地址和目的IP地址;源MAC地址和目的MAC地址是否发生了变化,如果有变化,发生了怎样的变化?
经过了交换机和路由器。
经过交换机时MAC地址和IP地址没有发生变化。
经过路由器时IP地址没有变化,MAC地址变化,源MAC地址变化为转发出去的端口的MAC地址,目的MAC地址变为下一路由器或目的主机的MAC地址。
六、实验心得体会
由器。
经过交换机时MAC地址和IP地址没有发生变化。
经过路由器时IP地址没有变化,MAC地址变化,源MAC地址变化为转发出去的端口的MAC地址,目的MAC地址变为下一路由器或目的主机的MAC地址。
六、实验心得体会
了解到交换机与路由器在数据链路层工作的区别,以及ARP协议的工作原理。对数据包的转发过程有了整体上的认识。