兰生幽谷,不为莫服而不芳;
君子行义,不为莫知而止休。
一、实验目的
1.搞清楚IP数据报的格式;
2.验证IP协议的工作原理及工作过程;
3.学会使用WireShark捕获并分析IP与ICMP数据报。
二、实验内容
1.WireShark的基本功能;
2.WireShark捕获数据报的方法;
3.IP与ICMP数据报分析。
三、实验原理/流程
(一)安装WireShark
WireShark安装教程和使用方法:见WireShark抓包-操作手册.doc
(二)网络拓扑搭建
1)打开virtualBox
管理à主机网络管理器

图 1
创建

图 2
去掉DHCP启用。更改网络ip为特征学号所在网段,这里我的IP地址为192.168.123.1/24à应用
2)在宿主机上测试添加的VirtualBox-Host-Only Ethernet Adapter#3连通性
win+RàCMD
ping 192.168.x.1 //x为特征学号

图 3
3)在HCL上搭建实验拓扑
拖入一个PC,将其ip设置为192.168.x.201/24(x为特征学号)、一台交换机、一个Host。
连线,注意连接Host时要连接上一步添加的网卡VirtualBox-Host-Only Ethernet Adapter#3

图 4

图 5
4)启动网络拓扑。
(三) IP 数据报抓取
在拓扑的链路上抓包。(具体方法,详见实验3)
1.选择你数据报要通过的网卡:(选你上网的接口)

图 6
2.打开命令行窗口win+R→cmd
宿主机:本机 ip ping 目的主机:百度的 ip (不一定是百度)
由于现在的 win11 默认为 ipv6 ,所以建议连通性测试用下列方法:
|---------------------------|
| ping -4 192.168.x.201 |

图 7
3.回到WireShark窗口,输入筛选条件icmp,选一个ping包(截图):

图 8
4.双击数据包,选中IP层协议点开(截图,包含全部信息):

图 9
5.分析该 IP 协议的报文格式,完成下表:
表 IP 协议
|----------|----------|-----------------------------|
| 字段 | 报文信息 | 说明 |
| 版本 | | IP协议的版本号位4 |
| 头长 | | IP协议包头部的长度 |
| 服务类型 | | 定义IP协议包的处理方法 |
| 总长度 | | IP包的总长度包括IP头和数据 |
| 标识 | | 标识字段唯一地标识主机发送的每一份数据报 |
| 标志 | | 是一个3位的控制字段包含保留位、是否分片位、更多分片位 |
| 片偏移 | | 定义该分片在原始分组中的偏移量 |
| 生存周期 | | 表示数据包在网络上生存时间 |
| 协议 | | 定义了IP数据报的数据部分使用的协议类型 |
| 校验和 | | 是IPv4数据报包头的校验和 |
| 源地址 | | 源站IP地址 |
| 目的地址 | | 目的站IP地址 |
(四) IP 数据报分片实验
步骤1:在宿主机、HCL的链路上运行 Wireshark,为了只截获和实验有关的数据报,设置 Wireshark 的捕获条件为对方主机的 IP 地址的ICMP协议;
步骤2:在宿主机上执行如下 Ping 命令,向HCL的PC发送大小为7000个字节的数据报文;ping 目的主机 -l 7000
|-------------------------------|
| ping -4 192.168.x.201 -l 7000 |
步骤3:停止截获报文并回答下列问题:
(1)以太网的最大传输单元(MTU)是多少?怎么计算得出的?
(2)分析截获的报文,将属于同 ICMP 请求报文的分片找出来并从Wireshark 中截图,宿主机向HCL的PC主机发送的 ICMP 请求报文分成了__5__个分片。

图 10
(3)ICMP 报文各分片的数据长度是多少?在Wireshark 里截图显示。

图 11
(4)若要让宿主机向HCL的PC发送的数据分为2个分片,则Ping 命令中的报文长度应为多大范围?为什么?
(五)分析 ICMP 协议
步骤1:在 PC 运行 Wireshark,开始截获报文,为了只截获和实验内容有关的报文,将Wireshark菜单栏中捕获处的捕获过滤器设置为"No Broadcast and no Multicast";
步骤2:在宿主机上以 www.baidu.com 为目标主机,在命令行窗口执行 Ping 命令,要求ping通8 次;
【答 】:Ping 命令为:________
将命令行窗口进行截图:
【答 】:
步骤3:停止截获报文,分析截获的结果,回答下列问题:
(1)将抓包结果进行截图(要求只显示 ping 的数据包):

图 12
(2)截获的 ICMP 报文有几种类型?分别是:
【答 】:
- 分析截获的 ICMP 报文,按下表要求,将各字段信息填入表中,要求填写前4 个报文的信息,并截图。

图 13
【答 】:
|---------|--------------|---------------|--------|--------|--------|--------|--------|--------|
| 报文号 | 源 IP | 目的 IP | 报文格式 ||||||
| 报文号 | 源 IP | 目的 IP | 类型 | 代码 | 标识 || 序列号 ||
| 报文号 | 源 IP | 目的 IP | 类型 | 代码 | BE | LE | BE | LE |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
(4)查看ping 请求信息,ICMP 的type是 ______。和code是 ____。
(5)查看相应得ICMP 响应信息,ICMP 的type 是____和code 是 ____。
(6)若要只显示ICMP的echo响应数据包,显示过滤器的规则为 icmp.type==0.并根据过滤规则进行抓包截图。

图 14
(6)若要只显示ICMP的echo请求数据包,显示过滤器的规则为 icmp.type==8. 并根据过滤规则进行抓包截图。

图 15
回答问题:
- 下图框中的16进制数值"45"表示什么意思?

图 16
|---|---|---|---|
| | | | |
| | | |
| |
| | |||
图 16
【答】:
四、实验成果要求
(一)实验注意事项
每次实验前必须认真预习实验指导书,准备实验报告,了解实验内容、所需实验虚拟设备及实验数据的测试方法,并画好必要的记录表格,以备实验时作好原始记录。实验中教师将检查学生的预习情况,未预习者不得进行实验。
学生在实验中不得随意交换或搬动其他实验桌上的和实验相关设备。
试验中如出现故障,应尽量自己检查诊断,找出故障原因然后排出。如果由于设备原因无法自行排出的,再向指导老师或实验室管理人员汇报。
实验必须如实记录实验数据,积极思考,注意实验数据是否符合理论分析,随时纠正接线或操作错误。
实验结束后必须将实验数据记录提交指导教师查阅,离开实验室前,必须将实验桌整理规范。
(二)关于实验报告
实验报告在课后完成,并在下次实验时上交。报告内容包括:
1.预习报告内容。
2.实验课题的需求说明以及文字说明等,对于设计性课题,还应有整个过程和关键的设计技巧说明。
3.实验记录和经过整理的数据、表格、拓扑图,且不得随手更改。
4.讨论实验结果分析、心得体会和意见、建议。
五、其他说明
1.实验地点:各授课教室;
2.实验设备:满足安装vmware 环境Windows、Linux系统下的笔记本;
3.指导教师:有企业或者实践经验的讲师、副教授。