Educoder | 计算机网络实验-IP协议分析
第1关:跟踪抓包
任务描述
本关的任务是通过 Ping 命令发送数据包,并利用 Wireshark 软件捕获数据包。随后深入解析 IP 数据包的结构组成,并掌握 IPv4 地址编码机制。通过这些操作进一步加深对 Internet 协议的认识。
相关知识
为了完成本关任务,你需要掌握:
- 截获数据报;
- 简单分析数据包格式。
IPV4数据包
第四代互联网协议(IPv4)是基于TCP/IP协议族的一种分组数据传输方案。数据字段分为头部分和正文部分。头字段长度通常在20到60字节之间,并且其中包含了与路由选择、传输过程相关的关键信息。头字段中的各个字段及其用途如下所述:
(1)版本( 4 位):该字段定义 IP 协议版本,负责向处理机所运行的 IP 软件指明此 IP 数据报是哪个版本,所有字段都要按照此版本的协议来解释。如果计算机使用其他版本,则丢弃数据报; (2)头部长度( 4 位):该字段定义数据报协议头长度,表示协议头部具有 32 位字长的数量。协议头最小值为 5 ,最大值为 15; (3)服务( 8 位):该字段定义上层协议对处理当前数据报所期望的服务质量,并对数据报按照重要性级别进行分配。前 3 位成为优先位,后面 4 位成为服务类型,最后 1 位没有定义。这些 8 位字段用于分配优先级、延迟、吞吐量以及可靠性; (4)总长度( 16 位):该字段定义整个 IP 数据报的字节长度,包括协议头部和数据。其最大值为 65535 字节。以太网协议对能够封装在一个帧中的数据有最小值和最大值的限制( 46~1500 个字节); (5)标识( 16 位):该字段包含一个整数,用于识别当前数据报。当数据报分段时,标识字段的值被复制到所有的分段之中。该字段由发送端分配,帮助接收端集中数据报分段; (6)标记( 3 位):该字段由 3 位字段构成,其中最低位( MF )控制分段,存在下一个分段置为 1 ,否则置 0 代表该分段是最后一个分段。中间位( DF )指出数据报是否可进行分段,如果为 1 则机器不能将该数据报进行分段。第三位即最高位保留不使用,值为 0; (7)分段偏移( 13 位):该字段指出分段数据在源数据报中的相对位置,支持目标 IP 适当重建源数据; (8)生存时间( 8 位):该字段是一种计数器,在丢弃数据报的每个点值依次减 1 直至减少为 0 。这样确保数据报拥有有限的环路过程(即 TTL ),限制了数据报的寿命; (9)协议( 8 位):该字段指出在 IP 处理过程完成之后,有哪种上层协议接收导入数据报。这个字段的值对接收方的网络层了解数据属于哪个协议很有帮助; (10)头部校验和( 16 位):该字段帮助确保 IP 协议头的完整性。由于某些协议头字段的改变,这就需要对每个点重新计算和检验。计算过程是先将校验和字段置为 0 ,然后将整个头部每 16 位划分为一部分,将个部分相加,再将计算结果取反码,插入到校验和字段中; (11)源地址( 32 位):源主机 IP 地址,该字段在 IPv4 数据报从源主机到目的主机传输期间必须保持不变; (12)目的地址( 32 位):目标主机 IP 地址,该字段在 IPv4 数据报从源主机到目的主机传输期间同样必须保持不变。
截获数据报
启动 Wireshark 并进行报文捕获操作。为了确保实验的有效性,请仅需捕获与当前实验相关的报文。请将 Wireshark 的 Captrue Filter 配置为 No Broadcast 和 no Multicast 两个参数的组合。

在终端执行命令ping www.sina.com.cn。 停止捕获数据包,并在过滤界面中键入IP地址来分析捕获结果。

分析截获结果
根据截获的结果简单分析内容:

操作要求
通过双击打开桌面上的工作区文件夹【工作区
测试说明
平台会对你操作的结果进行测试,如果所有操作都正确,将顺利通过本关。
开始你的任务吧,祝你成功!

第2关:ICMP响应中IP包分析
任务描述
本关任务:简单的 ICMP 响应中 IP 包分析。
相关知识
为了完成本关任务,你需要掌握:
- 抓取 ICMP ;
- 简单分析。
抓取 ICMP
启动 Wireshark 并进行数据包捕获;启动虚拟终端并输入命令 traceroute www.baidu.com,请注意截图已附上。

待指令完成,暂停抓包,截图如下:

简单分析
展开 ICMP 报头,消息截图如下:

查看首次返回超时路由的信息(由于这些报文具有生存时间)。我们观察到存活时间为 TTL=63,并且其中 ID 字段值显示为 15173:

操作要求
双击桌面左上方的工作区文件夹按钮"workspace"
测试说明
平台会对你回答的结果进行测试,如果与预期结果一致,则顺利通关。
开始你的任务吧,祝你成功!

第3关:IP的分片组织
任务描述
本关任务:ICMP 响应包中 IP 的分片分析。
相关知识
为了完成本关任务,你需要掌握:
- IP 包分片;
- 分片组织。
IP分片产生
链路层具备最大传输单元MTU这一特征,在某种程度上决定了网络中最大的数据帧传输规模。各类网络系统都存在一个最大承载数据长度限制,在此基础之上构建有效的通信链路成为关键问题之一。其MTU大小为1500字节,在实际应用中可以通过执行命令netstat -i来获取这一数值信息。当IP层的数据包超过该容量时,则必须将其分割成多个分片(fragmentation),每个分片不超过MTU大小。
在传输一个UDP数据包时,在以太网的网络层分组最大传输单元(MTU)限制下需要考虑IP和UDP头部占用的空间分配问题。标准IP头部占20字节,在此基础上UDP头部占用8字节空间。因此,在实际应用中应预留的数据净荷量即为1500减去20再减去8等于1472字节这一数值计算结果。当数据量超过上述预留容量时,则会触发分片处理机制以保证通信质量

IP 报文的首部包含了分片和重组所需的信息:
- Identifier字段用于区分不同的IP数据包。
- Reserved字段保留了未使用的位。
- DF字段表示是否对数据报进行分片处理。
- MF字段指示是否包含更多分片信息。
- FragmentOffset表示当前片段与原始数据包起始位置之间的偏移量。
注意:当数据报被分片后,每个片的总长度值要改为该片的长度值。
IP数据报分片分析
启动 Wireshark 进行网络流量分析,在过滤窗口中将捕获条件设定为 ICMP 振动类型,并发起测试请求 ping www.sina.com.cn

待命令结束后,停止捕获数据报,捕获到的消息如下:基于偏移位置(Fragment offset=0)确定为第一个片段段,数据长度为1500 byte.值得注意的是,抓包结果中显示的1514 byte是包含以太网头部信息的结果累加

以太网头:

报文排序筛选
点击NO.,Time...可实现按照No.,Time字段对报文排序。

按 Time 顺序排序:

点击 Time ,按 Time 逆序排序:

ICMP 报文分片查看
识别ICMP报文,并解析其中包含的request/reply数据报;接着,在对应的IPV4信息中识别IP fragmentation information;最终获取分片数量与每片大小

ICMP 报文分片数的判断
根据上述分析可知:单个分片的最大存储容量是1480 bytes;当数据量超过这一阈值时,则需要进行分片处理。假设数据总量为s,则所需的分片数量k等于向上取整后的(s除以1480)的结果。
操作要求
请依次完成以下操作:
- 点击桌面上的工作区文件夹"workspace"窗口,并打开实训目录"myshixun"。
- 打开日志文件message-3.txt,并将获取的信息记录于该文档中。
- 导入该目录下的ip-ethereal-trace-1样本,并提取其中所有的ICMP报文。
- 查看第一个ICMP请求包(其info部分包含request字段)的Fragment offset值。
- 判断此报文是否发生过分片(是/否)。
- 查看最终一条(按时间排序)ICMP响应包(info部分包含reply字段),确定此回应数据被分割成几片。
- 若主机发送的数据被分成4个片段,则Ping命令中的数据包最小长度和最大长度应设置为多少,并记录于文档中。
测试说明
平台会对你回答的结果进行测试,如果与预期结果一致,则顺利通关。
开始你的任务吧,祝你成功!

