计算机网络实验报告

更新时间:2024-05-19 06:50:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 以太网帧的构成

练习一:编辑并发送LLC帧

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A和B为例,说明实验步骤。

1. 主机A启动仿真编辑器,并编写一个LLC帧。

目的MAC地址:主机B的MAC地址。 源MAC地址:主机A的MAC地址。

协议类型和数据长度:可以填写001F。 类型和长度:可以填写001F。 控制字段:填写02。

用户定义数据/数据字段: AAAAAAABBBBBBBCCCCCCCDDDDDDD。 2. 主机B重新开始捕获数据。 3. 主机A发送编辑好的LLC帧。

4. 主机B停止捕获数据,在捕获到的数据中查找主机A所发送的LLC

帧,并分析该帧内容。

? 记录实验结果。

帧类型 发送序号N(S) 接受序号N(R) 简述“类型和长度”字段的两种含义。

5. 将第1步中主机A已编辑好的数据帧修改为“未编号帧”,重做第

2、3、4步。

?

练习二:编辑并发送MAC广播帧

1. 主机E启动仿真编辑器。 2. 主机E编辑一个MAC帧,

目的MAC地址:FFFFFF-FFFFFF。 源MAC地址:主机E的MAC地址。 协议类型或数据长度:大于0x0600。

数据字段:编辑长度在46—1500字节之间的数据。

3. 主机A、B、C、D、F启动协议分析器,打开捕获窗口进行数据捕获

并设置过滤条件(源MAC地址为主机E的MAC地址)。

4. 主机E发送已编辑好的数据帧。

5. 主机A、B、C、D、F上停止捕获数据,察看捕获到的数据中是否含

有主机E所发送的数据帧。

? 结合练习二的实验结果,简述FFFFFF-FFFFFF作为目的MAC

地址的作用。

练习三:领略真实的MAC帧

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅

以主机A和B为例,说明实验步骤。

1. 主机B启动协议分析器,新建捕获窗口进行数据捕获并设置过滤条

件(提取ICMP协议)。

2. 主机A ping主机B;察看主机B协议分析器捕获的数据包,分析

MAC帧格式。

3. 将主机B的过滤器恢复为默认状态。

4. 将主机B、D、F的过滤器恢复为默认状态。

练习四:理解MAC地址的作用

1. 主机B、D、E、F启动协议分析器,打开捕获窗口进行数据捕获

并设置过滤条件(源MAC地址为主机A的MAC地址)。 2. 主机A ping 主机C。

3. 主机B、D、E、F上停止捕获数据,在捕获的数据中查找主机A

所发送的数据帧,并分析该帧内容。 记录实验结果: 主机B 主机D 主机E 主机F 1.

本机MAC地址 报文源MAC地址 报文目的MAC地址 是否收到,为什么

实验二 地址转换协议ARP

主机B启动静态路由服务(方法:在命令行方式下,输入“staticroute_config”)。按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性。 练习一:领略真实的ARP(同一子网)

1. 主机A、B、C、D、E、F在命令行下运行“arp -a”命令,察看ARP高速

缓存表,并回答以下问题:

? ARP高速缓存表由哪几项组成?

2. 主机A、B、C、D启动协议分析器,打开捕获窗口进行数据捕获并设置过

滤条件(提取ARP、ICMP)。

3. 主机A、B、C、D在命令行下运行“arp -d”命令,清空ARP高速缓存。 4. 主机A ping 主机D(172.16.1.4)。

5. 主机A、B、C、D停止捕获数据,并立即在命令行下运行“arp -a”命令

察看ARP高速缓存。

? 结合协议分析器上采集到的ARP报文和ARP高速缓存表中新增加的

条目,简述ARP协议的报文交互过程以及ARP高 速缓存表的更新过程。

练习二:编辑并发送ARP报文(同一子网)

1. 在主机E上启动仿真编辑器,并编辑一个ARP请求报文。其中:

MAC层: “目的MAC地址”设置为FFFFFF-FFFFFF, “源MAC地址”设置为主机E的MAC地址。 协议类型或数据长度:0806。

ARP层: “发送端MAC地址”设置为主机E的MAC地址,

“发送端IP地址”设置为主机E的IP地址(172.16.0.2), “目的端MAC地址”设置为000000-000000,

“目的端IP地址”设置为主机F的IP地址(172.16.0.3)。 2. 主机B、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件

(提取ARP协议)。

3. 主机E、B、F在命令行下运行“arp -d”命令,清空ARP高速缓存。 4. 主机E发送已编辑好的ARP报文。

5. 主机E立即在命令行下运行“arp -a”命令察看ARP高速缓存。

6. 主机B、F停止捕获数据,分析捕获到的数据,进一步体会ARP报文交互

过程。 练习三:跨路由地址解析(不同子网)

1. 主机A、B、C、D、E、F在命令行下运行“arp -d”命令,清空ARP高速缓存。

2. 主机A、B、C、D、E、F重新启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ARP、ICMP)。 3. 主机A ping 主机E(172.16.0.2)。

4. 主机A、B、C、D、E、F停止数据捕获,察看协议分析器中采集到的ARP报文,并回答以下问题:

? 单一ARP请求报文是否能够跨越子网进行地址解析?为什么? ? ARP地址解析在跨越子网的通信中所起到的作用?

实验三 网际协议IP

练习一:编辑并发送IP数据报

1. 主机A启动仿真编辑器,编辑一个IP数据报,其中:

MAC层:

目的MAC地址:主机B的MAC地址(对应于172.16.1.1接口的MAC)。 源MAC地址:主机A的MAC地址。 协议类型或数据长度:0800。 IP层:

总长度:IP层长度。 生存时间:128。

源IP地址:主机A的IP地址(172.16.1.2)。 目的IP地址:主机E的IP地址(172.16.0.2)。

校验和:在其他所有字段填充完毕后计算并填充。 IP在计算校验和时包括那些内容?

【说明】先使用仿真编辑器的“手动计算”校验和,再使用仿真编辑器的“自动计算”校验和,将两次计算结果相比较,若结果不一致,则重新计算。

IP在计算校验和时包括哪些内容?

2. 在主机B(两块网卡分别打开两个捕获窗口)、E上启动协议分析器,设

置过滤条件(提取IP协议),开始捕获数据。 3. 主机A发送第1步中编辑好的报文。

4. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,

并回答以下问题:

第1步中主机A所编辑的报文,经过主机B到达主机E后,报文数据是否发生变化?若发生变化,记录变化的字段,并简述发生变化的原因。 5. 将第2步中主机A所编辑的报文的“生存时间”设置为1。重新计算校验

和。

6. 主机B、E重新开始捕获数据。

7. 主机A发送第5步中编辑好的报文。

8. 主机B、E停止捕获数据,在捕获到的数据中查找主机A所发送的数据报,

并回答以下问题:

1. 主机B、E是否能捕获到主机A所发送的报文?简述产生这种现象

的原因。

练习二:特殊的IP地址

1. 直接广播地址。

主机A编辑IP数据报1,其中: 目的MAC地址:FFFFFF-FFFFFF。 源MAC地址:A的MAC地址。 源IP地址:A的IP地址。 目的IP地址:172.16.0.255。

校验和:在其他字段填充完毕后,计算并填充。 主机A再编辑IP数据报2,其中:

目的MAC地址:主机B的MAC地址(对应于172.16.1.1接口的MAC)。 源MAC地址:A的MAC地址。 源IP地址:A的IP地址。 目的IP地址:172.16.0.255。

校验和:在其他字段填充完毕后,计算并填充。

2. 主机B、C、D、E、F启动协议分析器并设置过滤条件(提取IP协议,捕

获172.16.1.2接收和发送的所有IP数据包,设置地址过滤条件如下:172.16.1.2<->Any)。

主机B、C、D、E、F开始捕获数据。 主机A发送这两个数据报。

主机B、C、D、E、F停止捕获数据。 记录实验结果:

收到IP数据报1 收到IP数据报2 主机号 结合实验结果,简述直接广播地址的作用。

2. 受限广播地址。

主机A编辑一个IP数据报,其中:

“目的MAC地址”设置为FFFFFF-FFFFFF。 “目的IP地址”设置为255.255.255.255。

主机B、C、D、E、F重新启动协议分析器并设置过滤条件(提取IP协议,172.16.1.2<->Any)。

主机B、C、D、E、F重新开始捕获数据。 主机A发送这个数据报。

主机B、C、D、E、F停止捕获数据。 记录实验结果:

收到主机A发送的IP数据 报 未收到主机A发送的IP数 据报 结合实验结果,简述受限广播地址的作用。

3. 环回地址。 主机F重新启动协议分析器开始捕获数据并设置过滤条件(提

取IP协议)。

主机E ping 127.0.0.1。 主机F停止捕获数据。

? 主机F是否收到主机E发送的目的地址为127.0.0.1的IP数据报?

为什么?

练习三:IP数据报分片

主机号 1. 在主机B上使用“MTU工具” 设置以太网端口的MTU为800字节(两个

端口都设置)。

2. 主机A、B、E启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条

件(提取ICMP协议)。

3. 在主机A上,执行命令ping -l 1000 172.16.0.2。

4. 主机A、E停止捕获数据。主机E如下图所示,重新定义过滤条件(取一

个ICMP数据包,按照其上层协议IP的Identification字段设置过滤)。

将ICMP的报文分片信息填入下表: 字段名称 分片序分片序分片号1 号1 序号1

Identification字段 值 More fragments字段 值 Fragment offset字段 值 传输的数据量 分析表格内容,理解分片的过程。 5. 主机E恢复默认过滤器。主机A、E重新开始捕获数据。 6. 在主机A上,执行命令ping -l 2000 172.16.0.2。 7. 主机A、E停止捕获数据。察看主机A、E捕获到的数据,比较两者的差异,

体会两次分片过程。

8. 主机B上使用“开始\\程序\\网络协议仿真教学系统 通用版\\工具\\MTU工

具”恢复以太网端口的MTU为1500字节。

练习四:子网掩码和路由转发

1. 所有主机取消网关

2. 主机A、C、E设置子网掩码为255.255.255.224,主机B、D、F设置子网

掩码为255.255.255.240。 3. 主机A ping 主机B(172.16.1.1),主机C ping 主机D(172.16.1.4),

主机E ping 主机F(172.16.0.3)。 记录实验结果

是否ping 通 主机A----主机B 主机C----主机D 主机E----主机F 4. 请问什么情况下两主机的子网掩码不同,却可以相互通信?

5. 主机A设置子网掩码为255.255.255.252,主机C设置子网掩码为

255.255.255.254,用主机A ping 主机C(172.16.1.3)。 记录实验结果

主机A----主机C 是否ping 通

实验四 Internet控制报文协议ICMP

主机B启动静态路由服务(方法:在命令行方式下,输入“staticroute_config”)。 按照拓扑结构图连接网络,使用拓扑验证检查连接的正确性 练习一:运行Ping命令

1. 主机B、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过滤条件(提取ICMP协议)。

2. 主机A ping主机E(172.16.0.2)。

3. 主机B、E、F停止捕获数据,察看捕获到的数据,并回答以下问题:

? 捕获的报文对应的“类型”和“代码”字段分别是什么?

? 分析报文中的哪些字段保证了回送请求报文和回送应答报文的一

一对应? 练习二:ICMP查询报文

1. 主机A启动仿真编辑器,编辑一个ICMP时间戳请求数据帧发送给主机C

(172.16.1.3)。 MAC层:

目的MAC地址:C的MAC地址。 源MAC地址:A的MAC地址。 协议类型或数据长度:0800。 IP层:

总长度:包含IP层和ICMP层长度。 高层协议类型:1。

校验和:在其他字段填充完毕后计算并填充。 源IP地址:A的IP地址。 目的IP地址:C的IP地址。 ICMP层: 类型:13。

代码字段:0。

校验和:在ICMP层其他字段填充完毕后,计算并填充。 其他字段使用默认值。

2. 主机C启动协议分析器进行数据捕获,并设置过滤条件(提取ICMP协议)。 3. 主机A发送已编辑好的数据帧

4. 主机C停止捕获数据。察看主机C捕获到的数据,并填写下表:

时间戳请求报文 ICMP字段名 字段值 类型 标识号 序列号 发起时间戳 接收时间戳 发送时间戳 练习三:ICMP差错报文

时间戳应答报文 ICMP字段名 字段值 类型 标识号 序列号 发起时间戳 接收时间戳 发送时间戳 1. 目的端不可达

a. 主机B、C、E、F启动协议分析器捕获数据,并设置过滤条件(提

取ICMP)。

b. 在主机A上ping 172.16.2.10(不存在的IP)。

c. 主机B、C、E、F停止捕获数据。察看捕获到的数据,并回答以下

问题:

? 捕获到的是哪一种目的端不可达报文?

2. 超时

1. 在主机D上启动仿真编辑器,编写一个发送给主机E(172.16.0.2)

的ICMP数据帧。其中: MAC层:

目的MAC地址:主机B的MAC地址(对应于172.16.1.1接口的MAC)。

源MAC地址:D的MAC地址。 协议类型或数据长度:0800。 IP层:

总长度:包含IP层和ICMP层长度。 TTL:0。

高层协议类型:1。

校验和:在其他字段填充完毕后,计算并填充。 源IP地址:D的IP地址。 目的IP地址:E的IP地址。

ICMP层: 类型:8。

代码字段:0。

校验和:在ICMP其他字段填充完毕后,计算并填充。 其他字段使用默认值。

2. 主机B、E、F启动协议分析器捕获数据,并设置过滤条件(提取ICMP协

议)。

3. 主机D发送已编辑好的数据帧。

4. 主机B、E、F停止捕获数据,察看并分析捕获到的数据。

5. 主机B在命令行方式下输入recover_config命令,停止静态路由服务。

实验六 用户数据报协议UDP

练习一:编辑并发送UDP数据报

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A和B为例,说明实验步骤。

1. 主机A打开协议仿真编辑器。编辑发送给主机B的UDP数据报。 MAC层:

目的MAC地址:接收方MAC地址。 源MAC地址:发送方MAC地址。

协议类型或数据长度:0800,即IP协议。 IP层:

总长度:包括IP层、UDP层和数据长度。

高层协议类型: 17,即UDP协议。

首部校验和:其他所有字段填充完毕后填充此字段。 源IP地址:发送方IP地址。 目的IP地址:接收方IP地址。

UDP层:

有效负载长度:UDP层及其上层协议长度。 计算校验和,其他字段默认.

UDP在计算校验和时包括那些内容?

2. 在主机B上启动协议分析器,并设置过滤条件(提取UDP协议)开始捕获数据。 3. 主机A发送已编辑好的数据报。

4. 主机B停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。 练习二:UDP单播通信

1. 主机B、C、D、E、F上启动“开始/程序/网络协议仿真教学系统 通用版/工具/UDP工具”,作为服务器端,监听端口设置为2483。 2. 主机C、E上启动协议分析器开始捕获数据。

3. 主机A上启动“开始/程序/网络协议仿真教学系统 通用版/工具/UDP工具”,作为客户端,以主机C的IP为目的IP地址,以2483为端口,填写数据并发送。 4. 察看主机B、C、D、E、F上的“UDP工具”接收的信息。 哪台主机上的“UDP工具”接收到主机A发送的UDP报文? 5. 察看主机C协议分析器上的UDP报文,并回答以下问题:

UDP是基于连接的协议吗?阐述此特性的优缺点。

UDP报文交互中含有确认报文吗?阐述此特性的优缺点。 6. 主机A上使用仿真编辑器向主机E发送UDP报文,其中: “目的IP地址” 设置为主机E的IP地址。 “目的端口”设置为2483。“校验和”设置为0。 发送此报文,并回答以下问题:

主机E上的UDP通信程序是否接收到此数据包?UDP是否可以使用0作为校验和进行通信?

7. 将第6步中编辑的数据包的校验和修改为一个错误值,并将其发送。 8. 察看主机E协议分析器上捕获的数据,并回答以下问题: 简述UDP的差错处理能力。 练习三:UDP广播通信

1. 主机B、C、D、E、F上启动“开始/程序/网络协议仿真教学系统 通用版/工具/UDP工具”,作为服务器端,监听端口设为2483。

2. 主机B、C、D、E、F上启动协议分析器捕获数据,并设置过滤条件(提取UDP协议)

3. 主机A上启动“开始/程序/网络协议仿真教学系统 通用版/工具/UDP工具”,作为客户端,以255.255.255.255为目的地址,以2483为端口,填写数据并发送。

4. 察看主机B、C、D、E、F上的“UDP连接工具”接收的信息。 哪台主机接收到主机A发送的UDP报文?

5. 察看协议分析器上捕获的UDP报文,并回答以下问题:

主机A发送的报文的目的MAC地址和目的IP地址的含义是什么? ? 若将主机A发送的报文的目的MAC地址改为某一主机的MAC地址,结果会

怎样?为什么?

? 若将主机A发送的报文的目的IP地址改为某一主机的IP地址,结果会怎

样?为什么?

?

实验七 传输控制协议TCP

练习一:察看TCP连接的建立和释放

1. 主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP

协议)。 2. 主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”

中填入主机C的IP地址;使用“端口扫描”获取主机C的TCP端口列表,在“服务器信息/端口”中填入主机C的一个TCP端口(大于1024);点击“连接”按钮进行连接。 3. 察看主机B、C、D捕获的数据,填写下表。

字段名称 报文1 报文2 报文3 Sequence Number Acknowledgement Number ACK SYN TCP连接建立时,前两个报文的首部都有一个“maximum segment size”字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧长度分析此数据是怎样得出的。

4. 主机A断开与主机C的TCP连接。

5. 察看主机B、C、D捕获的数据,填写下表。 字段名称 报文4 报文5 报文6 报文7 Sequence Number Acknowledgement Number ACK SYN 结合步骤3、5所填的表,理解TCP的三次握手建立连接和四次握手的释放连接过程,理解序号、确认号等字段在TCP可靠连接中所起的作用。 练习二:利用仿真编辑器编辑并发送TCP数据包

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组,现仅以主机A和B为例,说明实验步骤。 ? 在本实验中由于TCP连接有超时时间的限制,故仿真编辑器和协议分析器

的两位同学要默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。 ? 为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,仿真端

主机应该使用“仿真编辑器/工具菜单/TCP屏蔽/启动屏蔽”功能来防止系统干扰(否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应)。 ? 通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以

及断开连接的全过程。在编辑的过程中注意体会TCP首部中的序列号和标志位的作用。

?

首先选择服务器主机上的一个进程作服务器进程,并向该服务器进程发送一个建立连接请求报文,对应答的确认报文和断开连接的报文也编辑发送。其步骤如下:

1. 主机B启动协议分析器捕获数据,设置过滤条件(提取http协议)。

2. 主机A上启动仿真编辑器,在界面初始状态下,程序会自动新建一个单帧,

可以利用仿真编辑器打开时默认的以太网帧进行编辑。 3. 填写该帧的以太网协议首部,其中:源MAC地址:主机A的MAC地址。目

的MAC地址:服务器的MAC地址。协议类型或数据长度:0800(IP协议)。 4. 填写IP协议头信息,其中:

高层协议类型:6(上层协议为TCP)。 总长度:40(IP首部+TCP首部)。 源IP地址:主机A的IP地址。

目的IP地址:服务器的IP地址(172.16.0.10)。 其它字段任意。

应用前面学到的知识计算IP首部校验和。

5. 填写TCP协议信息,其中:

源端口:任意大于1024的数,不要使用下拉列表中的端口。 目的端口:80(HTTP协议)。

序列号:选择一个序号ISN(假设1942589885),以后的数据都按照这个来填。

确认号:0。

首部长度和标志位:5002(即长度20字节,标志SYN=1)。 窗口大小:任意。 紧急指针:0。

使用协议仿真编辑器的“手动计算”方法计算校验和;再使用协议仿真编辑器的“自动计算”方法计算校验和。将两次计算结果相比较,若结果不一致,则重新计算。

TCP在计算校验和时包括哪些内容?将设置完成的数据帧复制2份;修改第二帧的TCP 层的“首部长度和标志”位为5010(即标志位ACK=1),TCP层的“序号”为1942589885+1。修改第三帧的TCP层的“首部长度和标志”位为5011(即标志位ACK=1、FIN=1),TCP层的“序号”为1942589885+1。

6. 在发送该TCP连接请求之前,先ping 一次目标服务器,让目标服务器知

道自己的MAC地址。

7. 使用“仿真编辑器/工具菜单/TCP屏蔽/启动屏蔽”功能,为TCP\\IP协议

栈过滤掉收到的TCP数据。

8. 点击菜单栏中的“发送”按钮,在弹出对话框中选择发送第一帧。 9. 我们假设接收字节序号为:3246281765,修改第二帧和第三帧的TCP层的

“ACK确认序号”的值:3246281766。

10.计算第二帧的TCP校验和,将该帧发送。对服务器的应答报文进行确认。 11.计算第三帧的TCP校验和,将该帧发送。断开连接,完成TCP连接的全过

程。

12.协议分析器一端截获相应的请求及应答报文并分析,注意观察“会话分

析”中的会话过程。

13.仿真端主机使用“仿真编辑器/工具菜单/TCP屏蔽/停止屏蔽”功能,恢

复正常网络功能。

练习三:TCP的重传机制

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。现仅以主机A和B为例,说明实验步骤。

1. 主机B启动协议分析器开始捕获数据并设置过滤条件(提取TCP协议)。 2. 主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”

中填入主机B的IP地址;使用“端口扫描”获取主机B的TCP端口列表,在“服务器信息/端口”中填入主机B的一个TCP端口(大于1024);点击“连接”按钮进行连接。 3. 主机A向主机B发送一条信息。

4. 主机B使用“仿真编辑器/工具菜单/TCP屏蔽/启动屏蔽”功能,过滤掉

接收到的TCP数据。 5. 主机A向主机B再发送一条信息。

6. 主机B刷新捕获显示,当发现“会话分析视图”中有两条以上超时重传报

文后,使用“仿真编辑器/工具菜单/TCP屏蔽/停止屏蔽”功能,恢复正常网络功能。 7. 主机A向主机B再发送一条信息,之后断开连接。

8. 主机B停止捕获数据。依据“会话分析视图”显示结果,绘制本练习的数

据报交互图。

本文来源:https://www.bwwdw.com/article/pim7.html

Top