1
计算机网络技术理论与实践
1.6.1.5 5.1.5 以太网数据传输实践

5.1.5 以太网数据传输实践

本实践主要是学会使用Wireshark协议分析工具,并能够利用Wireshark分析ARP协议和ICMP协议的工作原理,以及以太网中数据包的传输过程。

(1)实践目的

掌握Wireshark协议分析工具的使用方法,能够在实际网络环境中分析ARP协议的工作过程和ICMP协议的工作过程,并能够通过ARP协议和ICMP协议分析实际以太网环境中数据包的传输过程。

(2)实践环境

在真实的网络环境中进行实践,需要用到如下设备:

·一台Cisco路由器(Cisco 2621);

·一台以太网交换机(8口以太网交换机);

·三台带有以太网接口的PC或者笔记本计算机;

·四条以太网双绞线。

(3)实践网络拓扑图

从图5-11可以看出,本实践中,由一台交换机将PC1和PC2组成一个局域网并连接到路由器的一个以太网接口上,而PC3单独组成一个局域网连接到路由器的另外一个以太网接口上。PC1、PC2和与这个网络相连的路由器接口的IP地址分别为:1.1.1.2/24,1.1.1.3/24和1.1.1.1/24,PC3和与其相连的路由器的接口的IP地址分别为:2.1.1.2/24和2.1.1.1/24。

img142

图5-11 以太网数据传输过程拓扑图

(4)实践步骤

本实践主要分为4个部分,第1部分是对ARP协议进行分析,第2部分是对ICMP协议进行分析,第3部分是分析一个局域网内部的数据传输过程,第4部分是分析两个局域网间的数据传输过程。

①ARP协议分析

步骤1

在PC1和PC2上使用arp-d命令删除所有ARP缓存表项。

步骤2

在PC1上ping PC2的IP地址1.1.1.3,以触发ARP过程。

步骤3

用Wireshark抓取ARP数据包,并分析ARP的交互过程。用Wireshark抓取ARP数据包时,在显示过滤器中输入arp,就可以将所有的ARP数据包显示出来,而屏蔽掉其他数据包,便于对ARP协议进行分析。

步骤4

在PC1和PC2上分别用arp-a观察ARP缓存表的变化情况,了解ARP解析过程。

步骤5

在PC1上设置IP地址1.1.1.2,然后在PC2上设置相同的IP地址,用Wireshark抓取所有的ARP包。可以看到PC1在设置完IP地址后,会发出三次无偿ARP请求,其中的源IP地址和目的IP地址都是1.1.1.2,在一段时间内没有收到ARP响应后,认为网络上没有其他主机配置了IP地址1.1.1.2,这时PC1的TCP/IP协议栈就可以完成初始化了。

在PC2设置完IP地址1.1.1.2后,也会发送一个无偿ARP请求,当PC1收到这个无偿ARP请求后,会向PC2回复ARP响应,PC2在收到回复后,可以确定网络内已经有主机设置了与自己相同的IP地址1.1.1.2,就无法初始化其TCP/IP协议栈了。

②ICMP协议分析

步骤1

在PC1上ping PC2的IP地址1.1.1.3。

步骤2

用Wireshark抓取ICMP数据包,并分析ICMP的回送请求和回送响应报文的交互过程。用Wireshark抓取ICMP数据包时,在显示过滤器中输入icmp,就可以将所有的ICMP报文显示出来,而屏蔽掉其他数据包,便于对ICMP协议进行分析。

步骤3

在一台能够接入Internet网络的PC上,用ping命令探测网络上较远的节点,但把TTL设置较小,如ping-i 3www.sina.com.cn,查看返回信息,并用Wireshark观看返回的ICMP超时信息。在有些情况下网络中不会返回ICMP超时报文。

③局域网内数据传输过程

步骤1

在PC1和PC2上使用arp-d命令删除所有ARP缓存表项。

步骤2

在PC1上ping PC2的IP地址1.1.1.3。

步骤3

用Wireshark抓取PC1和PC2之间交互的所有数据包,并分析PC1向PC2发送数据的完整流程。可以在显示过滤器中输入arp‖icmp,就可以将所有的ARP和ICMP的报文显示出来,而屏蔽掉其他数据包,便于对数据发送的流程进行分析。

④局域网间数据传输过程

步骤1

在PC1和PC3上使用arp-d命令删除所有ARP缓存表项。

步骤2

将PC1的网关配置为1.1.1.1,PC3的网关配置为2.1.1.1。

步骤3

在PC1上ping PC3的IP地址2.1.1.2。

步骤4

用Wireshark抓取PC1和PC3之间交互的所有数据包,并分析PC1向PC3发送数据的完整流程。在抓取数据包时,需要将Wireshark安装在PC1和PC3上,并且要结合两个Wireshark抓取到的数据包进行协作分析。可以在每个Wireshark的显示过滤器中输入“arp‖icmp”,就可以将所有的ARP和ICMP的报文显示出来,而屏蔽掉其他数据包,便于对数据发送的流程进行分析。

当没有路由器设备时,要想完成局域网间数据发送过程,可以通过ping www.sina.com.cn这样的方式来观察PC向外部网络发送数据的过程,以及路由器返回数据给PC的过程。通过这两个过程来推测出两台不在同一局域网中PC之间的通信过程。当然由于ARP缓存的问题,这两个过程会比真正的局域网间数据发送过程缺少一些步骤。

(5)问题和分析

问题1:为什么总是得不到超时报文和目标主机不可达报文?

解释:有些网络设备并不会产生超时报文和目标主机不可达报文,还有些网络设备会隔离ICMP报文,这就使得在有些网络中能够抓取到超时报文和目标主机不可达报文,而有些网络中抓取不到。

问题2:在同一个网络中的两台主机为什么总是无法ping通?

解释:如果一切配置都正确的话,通常是因为主机上开启了防火墙和杀毒软件,这些防护软件为了防止网络攻击,通常会过滤掉ICMP报文。做实验时,将这类软件关闭即可。