理解上述知识点所涉及的基本概念与原理并能运用于分析实际网络,达到对数据包的传送过程深入理解。
实验环境为window10系统,软件为Cisco Packet Tracer
。
此实验环境有问题,结果存在错误!可能是操作问题,也可能是实验软件版本过低
在实验中,利用ping
命令来检验主机间能否进行正常的双向通信。在"ping
"的过程中,源主机向目标主机发送ICMP
的Echo Request
报文,目标主机收到后,向源主机发回ICMP
的Echo Reply
报文,从而可以验证源与目标主机能否进行正确的双向通信。
步骤1:设置主机的IP地址与子网掩码:
(1) A(1号机): 202.192.31.机号 255.255.248.0。
(2) B(2号机): 202.192.30.机号 255.255.248.0。
(3) 两台主机均不设置缺省网关。
(4) 用arp -d
命令清除两台主机上的ARP表,然后在A与B上分别用ping命令与对方通信,记录实验显示结果。
(5) 用arp -a
命令可以在两台PC上分别看到对方的MAC地址,记录A、B的MAC地址。
(6) 分析实验结果。
步骤2:
(1) 将A的子网掩码改为:255.255.255.0,其他设置保持不变。
(2) 用arp -d
命令清除两台主机上的ARP表,然后在A上"ping"B,记录显示结果。
(3) 用arp -a
命令能否看到对方的MAC地址。
(4) 分析操作1的实验结果。
(5) 接着在B上"ping"A
,记录B上显示的结果
(6) 此时用arp -a
命令能否看到对方的MAC地址。
(7) 分析操作2的实验结果。
步骤3:
(1) 在前面实验的基础上,把A的缺省网关设为:202.192.31.235
(2) 在A与B上分别用ping
命令与对方通信,记录各自的显示结果
(3) 在A与B上分别用tracert
命令追踪数据的传输路径,记录结果
(4) 分析(3)的实验结果。
步骤4:
(1) 用arp -d命令清除A中的ARP表,在A上ping
一台外网段的主机,如广大的WWW Server。
(2) 再用arp -a可观察到A的ARP表中只有缺省网关的MAC地址信息。分析实验结果。
设置主机的IP地址与子网掩码:
A(1号机): 202.192.31.1机号 255.255.248.0
B(2号机): 202.192.30.2机号 255.255.248.0
两台主机均不设置缺省网关。
用arp -d
命令清除A主机上的ARP表,然后在A机上用ping
命令与B机通信,结果截图如下:
用arp -d
命令清除B主机上的ARP表,然后在B机上用ping命令与A机通信,结果截图如下:
用arp -a
命令在两台A上看B的MAC地址:
用arp -a
命令在两台B上看A的MAC地址:
实验分析:
计算机A获取计算机BMAC地址的过程:
在A 不知道B 的MAC地址的情况下,A就广播一个ARP请求包,请求包中填有B的IP(202.192.30.2) ,以太网中的所有计算机都会接收这个请求,而正常的情况下只有B 会给出ARP应答包,包中就填充上了B的MAC地址,并回复给A。A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。
由于主机将各自通信目标的IP 地址与自己的子网掩码相"与"后,发现目标主机与自己均位于同一网段(202.192.31.0),因此通过ARP 协议获得对方的MAC 地址, 从而实现在同一网段内网络设备间的双向通信。
步骤2:
将A的子网掩码改为:255.255.255.0,其他设置保持不变
用arp -d
命令清除两台主机上的ARP表,然后在A上"ping"B,结果截图如下:
用arp -a
命令看不到对方的MAC地址,结果截图如下:
分析:A将目标设备的IP地址(202.192.30.2)和自己的子网掩码(255.255.255.0)相与得202.192.30.0,和自己不在同一网段(A所在网段为:202.192.31.0),则A必须将该IP分组首先发向缺省网关。由于A的缺省网关没有配置,无法对分组进行正确发送,因此显示请求超时。
接着在B上"ping
"A,请求超时,结果截图如下:
此时用arp -a
命令不能看到对方的MAC地址:结果截图如下:
结果显示:B上"ping"A显示连接超时,而且在B上也看不到A的MAC地址。
分析:将目标设备的IP地址(202.192.31.1)和自己的子网掩码(255.255.248.0)相“与”,发现目标主机与自己均位于同一网段(202.192.30.0),因此,B是可以通过ARP协议获得A的MAC地址。但是大量实验中B都没有获得A的MAC地址。可能是由于实验软件存在Bug或者是缺少正确的操作方法指导所致。
但是理论上B是可以通过ARP协议获得A的MAC地址,并可以正确地向A发送Echo Request报文。但由于A不能向B正确地发回Echo Reply报文,故B上显示ping的结果为“请求超时”。
步骤3:在前面实验的基础上,把A的缺省网关设为:202.192.31.235
在A与B上分别用ping命令与对方通信,结果截图如下:
实验结果显示:A ping B显示请求超时,但是在A ping B后用arp -a命令能看到网关的MAC地址。而B ping A显示请求超时,但是在B ping A后用arp -a命令能看到网关的MAC地址。理论上瓶盖可以ping 通的,但是经过多次实验结果都是请求超时,这里可能是由于实验软件的Bug所致。
在A与B上分别用tracert命令追踪数据的传输路径,结果截图如下:
这里由于实验所用的软件存在bug,所以请求失败。
分析:由于A认为B与其不在同一个网段,故从A发向B的报文需要经过网关转发;而B认为A与其在同一个网段,故B不需要经过网关直接向A发送报文,理论上可以观察到A与B双向通信时传输路径的不对称性。由于ping命令结果显示的是从目标主机返回的Echo Reply报文的TTL的值,而B收到从A返回的Echo Reply报文经过了网关的转发,所以在B中显示该IP报文的TTL值降为127(从A发出的IP分组的TTL的初始值为128,每经过一个网关,TTL值减1)。
步骤4:用arp -d
命令清除A中的ARP表,在A上ping一台外网段的主机,如广大的WWW Server,再用arp -a可观察到A的ARP表中只有缺省网关的MAC地址信息。分析实验结果。
实验结果:用arp -a命令后在A的ARP表中没有观察到缺省网关的MAC地址信息。
分析:理论上应该可以在A的ARP表中观察到缺省网关的MAC地址信息。因为当源主机要和外网段的主机进行通信时,它并不需要获取远程主机的MAC地址,而是把IP 分组发向缺省网关,由网关IP分组的完成转发过程。如果源主机没有缺省网关MAC地址的缓存记录,则它会通过ARP 协议获取网关的MAC地址,因此在A的ARP 表中只观察到网关的MAC 地址记录,而观察不到远程主机的MAC 地址。
导致这样的结果可能是因为实验软件存在bug等问题。
由于实验过程中使用了模拟软件,而软件又存在bug,所以有多个实验经过很多次操作后实验结果依然和理论结果不一样,经过和老师以及同学的讨论、上网查询后分析实验结果。