计算机⽹络实验三:分析ARP及IP协议
⼀、实验⽬的:
1.学会使⽤PacketTracer进⾏包跟踪及数据包协议格式分析。
2.理解ARP⼯作机制,熟悉ARP协议格式。
3.熟悉典型的IP协议格式。
4.理解IP分段机制。
⼆、实验环境:
Windows下PacketTracer(5.3或以上版本)
三、实验内容:
1、⽤PacketTracer(5.3或以上版本)打开⽂件31_ARP&IP_Testing.pkt.pkt。注意:Router1的Eth1/0的MTU=1420Byte,其余均为1500Byte。
2、分析ARP的⼯作原理。
(1)在Realtime模式下,尽量清除所有设备(PC机及路由器)中的ARP缓存信息,对于不能清除(有些路由器中的ARP缓存信息不能清除)的记录下相关缓存信息。
注:PC机中查看ARP缓存的命令为arp –a,清除ARP缓存的命令为arp –d。
路由器中查看ARP缓存的命令为Router#show arp,清除的命令为Router#cleararp-cache。
(2)在simulation模式下,由PC(1.10)向PC(1.20)发送⼀个Ping包,观察包(ICMP及ARP)的传递过程,同时注意相关PC机、路由器的ARP缓存变化情况,记录下相关信息,并对其中的ARP包进⾏协议格式分析。注意:在Filter中同时选中ICMP及ARP。
(3)重复(2)⼀次,观察结果有何不同,分析原因。
第⼆次发送数据包的时候,数据包到达交换机后,直接到达PC1.20,并不会传送到路由器了。
(4)在simulation模式下,由PC(1.10)向PC(3.11)发送⼀个Ping包,观察包的传递过程,同时注意相关PC机、路由器的ARP缓存变化情况,记录下相关信息,并对其中的ARP包进⾏协议格式分析。
(5)重复(4)⼀次,观察结果有何不同,分析原因。
重复(4),发现数据包能够通过路由器,到达交换机1,并且直接到达PC机3.11。
如何查看ip地址(6)试分析此时,由PC(1.20)向PC(12.12)发送⼀个Ping包的处理过程,并验证之。
第⼆次:
直接到达。
(7)总结ARP⼯作机器,包括什么时候启动ARP、APR⾼速缓存更新机制、ARP数据包协议格式,
总结:PC主机中都有⾃⼰的ARP缓冲区,⽤来表⽰IP地址和MAC地址的对应关系,当主机发送数据包到⽬的主机时,就启动ARP协议,它⾸先会查看⾃⼰的ARP列表中是否有⽬的主机的ARP对应的IP地址,如果有,就直接将数据包发送出去;如果没有,就向它所在的⽹段发起⼀个ARP请求的⼴播包,查询能够到达该⽬的主机的对应的MAC地址。
ARP更新机制:主机发送数据包后,此⽹段的主机就会检查数据包中的⽬的IP地址是否和⾃⼰的IP地址⼀致,如果不相同就忽略此数据包,如果相同,则该主机就把源主机的MAC地址和IP地址添加到⾃⼰的ARP列表中;如果ARP列表中已经存在该IP地址,就直接覆盖,以完成ARP的更新。
ARP数据包协议格式:路由器的ARP列表中包括三个信息:⼀个是主机的IP地址,⼀个是主机所在的物理地址,另⼀个是接⼝名称。IP地址包括源主机的IP地址和主机的默认⽹关,还包括该主机所在的⽹段。
3、IP协议格式分析:在simulation模式下,由PC(1.10)向PC(3.11)发送⼀个Ping包(开始⼏次有可能失败,试分析原因),从其中随机取⼏个包,分析该包的MAC⾸部及IP⾸部信息,特别注意该包进⼊该设备及离开该设备时相关信息的变化情况。注意:在Filter中仅选中ICMP或者仅选中IP。
源IP地址和⽬标IP地址不变,分别是PC机1.10的IP地址和PC机3.11的IP地址。但是MAC地址是变化的,因为数据包经过了不同的设备。
4.IP分段机制分析。
(1)在Realtime模式下,由PC(1.10)向PC(12.12)发送⼀个Ping包。(试分析此步骤的作⽤)
⾸先:制定数据包发送路线
(2)在simulation模式下,由PC(1.10)向PC(12.12)发送⼀个⾃定义Ping包(长度为2000字节),跟踪数据包的流动情况,特别注意:该包在PC(1.10)出来时是否进⾏了分段,该包在Router1出来时是否进⾏了分段,该包在Router2出来时是否进⾏了重组,该包到达PC(12.12)后是否进⾏了重组,回复的Ping命令包是否在PC(12.12)处进⾏了分段,回复的Ping命令包是否在Router2出来时进⾏了分段。在每⼀处发⽣了分段的地⽅,观察包中与分段有关的⼏个字段的信息(数据包长度、标识号、标志、偏移值),并记录下必要的信息。
数据包到达R1时:
数据包到达R2时:
(3)总结IP分段的条件与⽅法。
当数据包超过规定MTU时,系统将数据包分为段发送。
4.测试TTL的作⽤。
(1)在Realtime模式下,由PC(1.10)向PC(12.12)发送⼀个Ping包。
(2)在simulation模式下,由PC(1.10)向PC(12.12)发送⼀个⾃定义Ping包(长度为32字节,TTL的值为1),跟踪数据包的流动情况,观察TTL的值的变化情况,并记录下必要的信息。
发送失败。
发送之前的:
发送之后的:
(3)在simulation模式下,由PC(1.10)向PC(12.12)发送⼀个⾃定义Ping包(长度为32字节,TTL的值为2),跟踪数据包的流动情况,观察TTL的值的变化情况,并记录下必要的信息。
(4)在simulation模式下,由PC(1.10)向PC(12.12)发送⼀个⾃定义Ping包(长度为32字节,TTL的值为3或更⼤),跟踪数据包的流动情况,观察TTL的值的变化情况,并记录下必要的信息。
(5)总结TTL的变化规律及其作⽤。
TTL的值代表着可通过路由的数量,TTL值越⼤,能传送数据包在不同的⽹络更多。
5.进⾏其它你认为必要的测试。
四、实验后应能回答的问题
1.关于ARP协议:
(1)ARP请求数据包内容是什么,ARP应答数据包内容是什么?
请求内容是主机的IP地址和物理地址,以及⽬的主机的IP地址和物理地址;应答内容是:将⽹络层地址解析为数据链路层的mac地址,并且把经过的ARP地址记录下来。
(2)ARP协议的⼯作⽅式是怎样的?⽐如:谁发出ARP请求,谁回复ARP应答。
当主机发送数据包时,就启⽤ARP协议,如果⽬的主机在同⼀⽹段,则可以直接通信;如果不在同⼀⽹段,则不能直接通信,需要保存⼀条能够通往⽬的主机的MAC地址。在同⼀⽹段的主机,如果数据包的⽬的地址不是它,则它会显⽰拒绝接收数据包的错误请求。
(3)什么时候会调⽤ARP?调⽤ARP时是希望获取谁的MAC地址?⽐如:在不考虑⾼速缓存影响的情况下,PC(1.10)访问PC(1.30)时,会调⽤ARP吗,若调⽤ARP是⽤来获得谁的MAC地址;PC(1.10)访问PC(3.22)呢;PC(1.10)访问PC(12.12)呢。
当源主机发送数据包请求时,就启⽤了ARP协议;希望获取的是⽬的主机的MAC地址;PC机1.10访问PC机1.30时,会调⽤ARP,它希望来获取PC机1.30的MAC地址。其它的访问依然如此。
2.关于ARP⾼速缓存:
(1)ARP⾼速缓存中每条记录包含哪些信息?
包含了源主机的IP地址,源主机所在的⽹段,源主机的默认⽹关,⽬的主机的IP地址,以及⽬的主机所在的⽹段和默认⽹关。
(2)什么时候会向ARP⾼速缓存中添加记录,添加的记录是什么?
主机发送数据包后,此⽹段的主机就会检查数据包中的⽬的IP地址是否和⾃⼰的IP地址⼀致,如果不相同就忽略此数据包,如果相同,则该主机就把源主机的MAC地址和IP地址添加到⾃⼰的ARP列表中;如果ARP列表中已经存在该IP地址,就直接覆盖,以完成ARP的更新。
(3)ARP⾼速缓存可以起到什么样的作⽤,是如何起作⽤的?
PC主机中都有⾃⼰的ARP缓冲区,⽤来表⽰IP地址和MAC地址的对应关系,当主机发送数据包到⽬的主机时,就启动ARP协议,它⾸先会查看⾃⼰的ARP列表中是否有⽬的主机的ARP对应的IP地址,如果有,就直接将数据包发送出去;如果没有,就向它所在的⽹段发起⼀个ARP请求的⼴播包,查询能够到达该⽬的主机的对应的MAC地址。
3.关于IP协议:
(1)IP数据包中MAC⾸部及IP⾸部的格式是怎样的,相关信息是如何获得的?
MAC⾸部格式是:000n(n代表不同数字),IP⾸部是占4位,可表⽰的最⼤⼗进制数值是15。主要是通过主机所在的局域⽹决定的。
(2)若PC(1.10)⽤IP包传输信息到PC(12.12),整个过程中MAC⾸部及IP⾸部中哪些信息会发⽣变化,是如何发⽣变化的?
从PC机1.10发送到PC12.12过程中,MAC⾸部不断发⽣变化,因为数据包要经过不同的⽹络设备,⽽每个⽹络设备的物理地址都是不相同的。IP⾸部不会发⽣变化,因为数据包的IP地址就是PC机12.12的IP地址。
4.关于IP分⽚与重组:
(1)什么条件下,在什么地⽅会发⽣IP分⽚?⽐如:当PC(1.10)向PC(12.12)发送⼀个长度为2000字节(包括IP⾸部,但不包括MAC⾸部)时,在哪些地⽅会发⽣分⽚;若是PC(12.12)向PC(1.10)发送数据呢。
数据链路层具有最⼤传输单元MTU这个特性,它限制了数据帧的最⼤长度,如果IP层有数据包要传送,⽽且数据包的长度超过了MTU,那么IP层就要对数据包进⾏分⽚,是每⼀个⽚的长度都⼩于或者等于MTU;分⽚后的IP数据包,只有到达⽬的主机才进⾏重新组装。
(2)⼀个IP数据包如何进⾏分⽚?⽐如:分⽚时哪些信息会被继承,哪些信息会发⽣改变;如何识别同⼀个IP数据包的多个分⽚;如何对同⼀个IP数据包的多个分⽚进⾏排序。
对于发送端发送的每份IP数据包来说,其标识符字段都包含⼀个唯⼀值,该值在数据包分⽚时被复制到每个⽚中。除了最后⼀⽚外,其他每个组数据包的⽚都要把该⽚的⾃⼰置为1。分⽚时,除最后⼀⽚外,其它每⼀⽚中的数据部分,必须是8字节的整数倍。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论