电子科技大学_TCPIP实验二_排错工具-Ping和Trace_实验报告

        

       2012019030027       学生姓名:      李贝     

课程名称:                 TCP / IP                          

    

任课老师:                                                  

实验项目名称        排错工具-PingTrace                                        

实验2:排错工具-Ping和Trace

【实验内容】

实验拓扑中VMware虚拟机PC2、PC3和PC4(未开机)分别位于由提供集线器功能的虚拟网卡VMnet1和VMnet2模拟实现的两个以太网Ethernet1和Ethernet2中,这两个以太网对应的IP子网A和子网B分别连在Dynamips软件模拟实现的路由器R1和R2的F0/0接口上。R1和R2经由Dynamips软件模拟实现的路由器R3和R4互联,R1、R2、R3和R4之间运行OSPF路由协议,没有缺省路由。

实验者在PC2上使用通信测试命令(ping)和路径跟踪命令(tracert),结合Dynamips软件的分组捕获功能以及Wireshark软件的捕获分组查看功能,测试子网A、B之间的连通性和通信路径,考察IP地址和分组长度对网络间通信的影响以及IP分组生存时间(TTL)对网络间IP分组交付的影响,体会ICMP协议的差错报告机制,理解并掌握PING和TRACE的工作原理和操作命令。

【实验步骤】

1、依次启动VMware Workstation中TCPIP组内的虚拟机PC2和PC3。(注:不开启PC4

2、启动Dynamips Server,然后运行lab2.net,在Dynagen窗口中提示符“=>”后依次输入以下命令启动路由器R1、R2、R3和R4:

=> start R1

=> start R2

=> start R3

=> start R4

3、在PC2上使用“route print”命令查看并记录该主机的路由表。

4、在PC2的cmd窗口键入“ping”命令,查看并记录选项-n-l-f的含义和功能。然后在PC2上ping PC3的IP地址确保整个实验网络运行正常。

5、在Dynagen窗口中提示符“=>”后依次输入以下命令捕获子网A和子网B中的分组:

=> capture R1 f0/0 aping.cap

=> capture R2 f0/0 bping.cap

6、在PC2上使用-n选项ping PC3的IP地址,记录ping回应信息。

ping  -n  1  <PC3IP地址>

7、在PC2上使用-n-l选项ping PC3的IP地址,记录ping回应信息。

ping  -n  1  -l  1500  <PC3IP地址>

8、在PC2上使用-n-l-f选项ping PC3的IP地址,记录ping回应信息。

ping  -n  1  -l  1500  -f  <PC3IP地址>

9、在PC2上ping未开机的PC4,记录ping回应信息。

ping  -n  1  192.168.22.4

10、在PC2上ping 10.1.1.1,记录ping回应信息。

ping  -n  1  10.1.1.1

11、在Dynagen窗口中提示符“=>”后依次输入以下命令重新捕获子网A和子网B的分组:

=>

=> no capture R2 f0/0

=> capture R1 f0/0 atrace.cap

=> capture R2 f0/0 btrace.cap

12、在PC2上trace PC3的IP地址,记录trace回应信息。

tracert  <PC3IP地址>

13、在Dynagen窗口中提示符“=>”后依次输入以下命令停止捕获子网A和子网B中的分组:

=> no capture R1 f0/0

=> no capture R2 f0/0

14、用Wireshark软件查看并分析捕获的分组文件(aping.cap、bping.cap、atrace.cap、btrace.cap)中的ping和trace通信分组,查看过滤条件为“ip.proto == 1”(在Wireshark主窗口界面“过滤工具栏”的“Filter:”域中输入)。

15、实验结束后,按照以下步骤关闭实验软件、上传实验数据、还原实验环境:

(1)在Dynagen窗口中提示符“=>”后依次输入以下命令关闭Dynagen窗口,然后再关闭Dynamips Server窗口:

=> stop /all

=> exit

(2)依次关闭PC2和PC3,再关闭VMware窗口;

(3)运行lab2.net所在目录下的“reset.bat”文件。

【实验数据和结果分析】

1、按照显示顺序记录步骤3中PC2的路由表信息:

【分析】

1)  请按照网关(gateway)地址分类分析主机路由表中每条路由表项的网关地址的特征,路由的目的地,以及所采取的分组交付方式。

第一条,        缺省路由。解释:当一个数据包的目的的网段不在你的路由记录中,数据包则发到这个地方。缺省路由的网管由default gatewat决定,它采用间接交付方式。

第二条,        本地环路,127.0.0.0网段内所有地址都指向自己的机器。

第三条,        直联网段的路由记录,当一个数据包的目的的网段是192.168.11.0,则机器将数据包通过192.168.11.2这个接口发出去,采用直接交付。。

第四条,        本地主机路由,当路由器收到发送给自己的数据包将如何处理

当机器接收到的数据包的目的网段是192.168.11.2时,机器会将这个数据包接收下来,因为这个数据包是发给此机器的。

第五条,        本地广播路由,当路由器收到发送给直联网段的本地广播时如何处理

当机器收到广播数据包的目的网段是192.168.11.255时,机器将这个数据包从192.168.11.2接口以广播的形式发送出去

第六条,        组播路由,当路由器收到一个组播数据包时该如何处理

当机器收到组播数据包时,机器将这个数据包从192.168.11.2接口以组播的形式发送出去

第七条,        广播路由,当路由器收到一个绝对广播时该如何处理

当机器收到绝对广播数据包时,将该数据包丢弃掉

2)  本实验中PC2将使用哪条路由发送对目的主机的ping报文?

第3条

2、记录步骤4中PC2上显示的PING命令选项-n、-l、-f的含义。

-n count   number of echo requests to send

-l size     send buffer size

-f         send don’t fragment flag in packet

3、记录步骤6中PC2上的ping命令回应信息,并按分组的捕获顺序记录该步骤在子网A和子网B上捕获的ICMP报文信息:

说明:IP地址用点分十进制表示,其他值均用十进制表示。

【分析】解释PING命令回应信息中的bytestimeTTL参数的含义。

Bytes 是命令中发送的字节数

Time 是往返所需时间

TTL  是生存时间

4、记录步骤7中PC2上的ping命令回应信息,并按分组的捕获顺序记录该步骤在子网A和子网B上捕获的ICMP报文的IP分组头信息:

说明:IP地址用点分十进制表示,其他值均用十进制表示。

注意:“分片偏移”填写的是分组首部中以8字节为单位的片偏移值。

【分析】

1)  PC2发出的IP分组(源IP地址PC2,目的IP地址PC3)在子网A和子网B上分别有几个分片?这些分片分别是由实验拓扑中的哪些设备划分的?为什么要划分这些分片?这些分片的重组操作将由实验拓扑中的哪台设备进行?

答:子网A中有两个分片,在子网B中有三个分片,这些分片是路由器R1划分的,因为网络的MTU比报文的长度短,需要分片传输。重组是在目的主机PC3上完成。

2)  PC3发出的IP分组(源IP地址PC3,目的IP地址PC2)在子网A和子网B上分别有几个分片?这些分片分别是由实验拓扑中的哪些设备划分的?为什么要划分这些分片?这些分片的重组操作将由实验拓扑中的哪台设备进行?

答:在子网A中有三个分片,在子网B中有两个分片,这些分片是路由器R2划分的,因为网络的MTU比报文的长度短,就得分片传输。重组是在目的主机PC2上完成。

3)  在分片重组操作中,应根据分片首部中的什么信息判断收到的分片属于哪个IP分组?属于同一IP分组的分片需按照分片首部中的什么信息进行重组?

答:根据标示位的数据信息来判断分片属于什么IP分组,属于同一IP分组的分片需要分片偏移和是否有分片着连信息来进行重组。

5、记录步骤8中PC2上的ping命令回应信息。

【分析】本步骤中是否捕获到PC2发送或接收的报文?结合PING回应信息解释其原因。

答:未捕获到,因为-f不分片,而这个报文的长度大于那段介质的MTU,就会被丢弃。

6、记录步骤9中PC2上的ping命令回应信息。

【分析】

1)  本步骤中是否捕获到PC2发送或接收的报文?结合PING回应信息解释其原因。

答:能捕获到,因为PC2ping一台不存在的主机,路由器R1不会知道,只会转发

2)  在ping时如果收到“Request timed out.”信息,是否能确定目的主机一定未开机响应或一定没有可达的路由?为什么?答:

答:不一定,有可能是网络过于拥塞。

7、记录步骤10中PC2上的ping命令回应信息,并按分组的捕获顺序记录该步骤在子网A上捕获的ICMP报文信息:

说明:IP地址用点分十进制表示,其他值均用十进制表示。

【分析】请指出步骤9和步骤10中目的主机可达性的差异之处,并解释其差异产生的原因。

答:在步骤9中只有主机不可以到达,该网段还是可到达的;

       在步骤10中该网段不可以到达。

8、记录步骤12中主机上输入的TRACE命令及其回应信息,并按分组的捕获顺序记录该步骤在子网A和子网B上捕获的如下报文信息:

说明:TTL、源IP地址和目的IP地址都相同的分组只记录1次;

【分析】

1)  TRACE程序根据什么报文中的什么信息获得每一跳路由器的IP地址?

答:根据每一次返回的ICMP报文中的源IP地址确定。

2)  TRACE程序在跟踪每一跳路由器时,发送了几个测试报文?这样做的目的是什么?

答:发送了三个测试报文,这样做防止ICMP报文丢失,确保接收到回应信息。

3)  WinXP系统的TRACE程序使用何种方法判断测试分组是否已到达目的主机?

答:TRACE程序发给的目的主机的IP分组中携带的是ICMP回送请求报文。当该IP分组达到目的主机时,目的主机回返回一份ICMP会送应答报文给TRACE程序。如此,TRACE程序即可根据收到的ICMP报文是超市还是回答应答来判断何时解释。

【实验结论】

1、  总结ICMP差错报告机制的作用和ICMP差错报告报文中数据部分的作用。

答:ICMP差错报告机制使原始的数据发送端知道它自己发送数据失败,而ICMP报文中的数据则可以让发送端知道发送失败的类型和原因。

2、  交付出错的哪些IP分组不会产生ICMP差错报告报文?

答:有四种情况,

① 对于携带ICMP差错报文的数据包,不再产生ICMP差错分组;

② 对于分片的数据包,如果不是第一个分片,不再产生ICMP差错分组;

③ 对于具有多播地址的数据报,不再产生ICMP差错分组;

④ 对具有特殊地址的数据报,不再产生ICMP差错分组。

3、请根据实验中的TRACE回应信息和实验拓扑图,写出路由器R1的F0/1接口、R2的F0/1和S1/0接口、以及R3和R4的所有接口的IP地址,并指出本实验中子网A到子网B的通信路径。 

            答:R1  F0/1:192.168.13.1

                     R2  F0/1:192.168.24.1     S1/0:未知

                     R3  F0/0:192.168.13.2     S1/1:192.168.34.2    S1/0:未知

                     R4  S1/0:192.168.34.2     F0/0:192.168.24.2

            通信路径:PC2→R1→R3→R4→R2→PC3

 

第二篇:电子科技大学微机实验报告 实验4

实验四基于ARM的嵌入式Linux开发环境建立 【实验目的】 1. 掌握嵌入式Linux 开发环境的基本流程。 2. 熟悉Linux 操作系统 3. 熟悉嵌入式开发平台

【实验内容】

在PC机虚拟机下的Linux系统中建立基于ARM 的嵌入式Linux 开发环境。

1. 学会网口的配置 2. Minicom端口的使用

【预备知识】

1.了解ARM9处理器结构 2.了解Linux 系统结构

3. 了解ARM开发板使用常识

【实验设备和工具】

硬件:PC机Pentium100以上,ARM嵌入式开发平台

软件:PC机Linux 操作系统+MINICOM+AMRLINUX开发环境

【实验原理】

1.交叉编译器在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构

(Architecture)、操作系统(OperatingSystem)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intelx86体系结构和Linuxforx86操作系统的统称;而x86WinNT平台 实际上是Intelx86体系结构和Windows NTforx86操作系统的简称。交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软

件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。比如,我们在Windows平台上,可使用Visual C++ 开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为nativecompilation,中文可理解

为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的ARM平台,其一般的静态存储空间大概是16到32MB,而CPU 的主频大概在100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilationtoolchain)需要很大的存储空间,并需要很强 的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上(比如PC上)编译出针对其他平台的

可执行程序。

要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(crosscompilation tool-chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下:

1、在WindowsPC上,利用RVDS(ARM开发环境),使用armcc编译器,则可编译出针对ARMCPU

的可执行代码。

2、在LinuxPC上,利用arm-linux-gcc编译器,可编译出针对LinuxARM平台的可执行代码。

3、在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,可编译出针对ARMCPU的可执行代码。

2.NFS服务

NFS是Net FileSystem的简写,即网络文件系统.

网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系

统上的文件。

NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。

在本实验中就是将PC机作为服务器,而将ARM开发板作为客户机,这样ARM开发板就可以远程

访问存放在在PC机上的数据,这样可以缩短研发周期,更方便的调试程序。

【实验步骤】

1. 双击桌面上VMWARE,打开Linux 虚拟机 2. 点击启动虚拟机,启动虚拟机 3. 以root身份登陆虚拟机,密码123456

4. 其他步骤详见实验指导书

【实验结果和程序】

基于ARM 的嵌入式Linux开发环境建立完毕。

【思考题】

1.如何验证交叉编译器已安装成功? 答:在终端输入命令:cd/arm/rootfs/home/driver(文件夹里已有test_led.c文件) arm-linux-gcc–o test_ledtest_led.c

若有可执行文件test_led生成则表示交叉编译器已安装成功

2.如果我们需要变更根文件系统的目录,该如何设置使得ARM开发板可以成功挂载?答:修改/etc/exports 文件的内容,将/arm/rootfs*(rw,sync,no_root_squash) 改为/XX/XXX

*(rw,sync,no_root_squash)(/XX/XXX 为变更后点的文件目录)

3.怎么在u-boot命令行下修改ARM 开发板的IP?

答:输入setenvip=x.x.x.x:192.168.0.1:192.168.0.1:255.255.255.0:uestc:eth0:off

Saveenv

x,x,x,x 为ARM开发板的新IP。

【实验结论】

本实验实现了基于ARM 的嵌入式Linux 开发环境建立

相关推荐