EduCoder 计算机网络实验 IP协议分析

第1关:跟踪抓包

  • 任务描述
  • 相关知识
    • IPV4数据包
    • 截获数据报
    • 分析截获结果
    • 使用git将本地文件推送到远程仓库永久保存
  • 操作要求

任务描述

本关任务:使用 Ping 命令发送数据报,用 Wireshark 截获数据报,分析 IP 数据报的格式,理解 IPV4 地址的编址方法,加深对 IP 协议的理解。

相关知识

为了完成本关任务,你需要掌握:

  1. 截获数据报;
  2. 简单分析数据包格式。

IPV4数据包

网际协议第 4 版(Internet Protocol version 4,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 and no Multicast

 

EduCoder 计算机网络实验 IP协议分析_第1张图片

 

 

在终端输入命令ping  www.sina.com.cn。 停止截获报文,在过滤窗口输入 IP ,分析截获的结果:

 

EduCoder 计算机网络实验 IP协议分析_第2张图片

 

 

分析截获结果

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

 

EduCoder 计算机网络实验 IP协议分析_第3张图片

 

 

使用git将本地文件推送到远程仓库永久保存

评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:

  • 在桌面空白处点击鼠标右键,点击“在此打开终端”,通过代码cd /data/workspace/myshixun/,进入到实训代码仓库;

  • 执行 git 命令:

    
    
     
    1. git pull --unshallow origin master
    2. git add .
    3. git commit -m "Fisrt commit"
    4. git push origin master

    “Fisrt commit”相当于备注,可以是其它内容。这里需要输入 educoder 的用户名和密码,用户名输入 educoder 平台的登录用户名、手机号或者邮箱,密码输入 educoder 平台的登录密码,按照提示输入即可。

注意:密码输入过程中 Shell 窗口并不会显示输入的字符,正常输入后回车即可,注意不能使用退格键。

操作要求

双击打开桌面上的工作区文件夹”workspace”,再打开实训文件夹”myshixun”,并打开文件message-1.txt,将查询的信息保存到文件message-1.txt。具体要求如下: (1)打开 Wireshark ,加载实训文件夹中的ip-ethereal-trace-1文件并筛选出其中的 IP 报文; (2)查看计算机的 IP 地址是多少,填写到文件中; (3)展开 IP header ,查看上层协议字段的值是多少,填写到文件中; (4)查看 IP 头文件有多少 Byte ,IP 报的总长度是多少 Byte ,数据长度有多长(根据 IP 报总长度= IP 头长度 + IP 数据长度),填写到文件中; (5)保存文件并使用 git 将文件 message-1.txt 推送到远程仓库,此步骤不影响评测。

EduCoder 计算机网络实验 IP协议分析_第4张图片

第2关:ICMP响应中IP包分析

  • 任务描述
  • 相关知识
    • 抓取 ICMP
    • 简单分析
    • 使用git将本地文件推送到远程仓库永久保存
  • 操作要求
  • 测试说明

任务描述

本关任务:简单的 ICMP 响应中 IP 包分析。

相关知识

为了完成本关任务,你需要掌握:

  1. 抓取 ICMP ;
  2. 简单分析。

抓取 ICMP

运行 Wireshark ,开始抓包;运行虚拟终端,输入指令traceroute  www.baidu.com,截图如下:

 

EduCoder 计算机网络实验 IP协议分析_第5张图片 

 

 

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

 

EduCoder 计算机网络实验 IP协议分析_第6张图片 

 

 

简单分析

展开 ICMP 报头,消息截图如下:

 

EduCoder 计算机网络实验 IP协议分析_第7张图片 

 

 

展开第一个返回超时路由返回给我们的 IP 报信息(因为 IP 报才有生存时间) 我们可以看到存活时间TTL=63,ID 字段为 15173 :

 

EduCoder 计算机网络实验 IP协议分析_第8张图片 

 

 

使用git将本地文件推送到远程仓库永久保存

评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:

  • 在桌面空白处点击鼠标右键,点击“在此打开终端”,通过代码cd /data/workspace/myshixun/,进入到实训代码仓库;

  • 执行 git 命令:

     
    1. git add .
    2. git commit -m "Fisrt commit"
    3. git push origin master

    “Fisrt commit”相当于备注,可以是其它内容。这里需要输入 educoder 的用户名和密码,用户名输入 educoder 平台的登录用户名、手机号或者邮箱,密码输入 educoder 平台的登录密码,按照提示输入即可。

注意:密码输入过程中 Shell 窗口并不会显示输入的字符,正常输入后回车即可,注意不能使用退格键。

操作要求

双击打开桌面上的工作区文件夹”workspace”,再打开实训文件夹”myshixun”,并打开文件message-2.txt,将查询的信息保存到文件message-2.txt。具体要求如下: (1)打开 Wireshark ,加载实训文件夹中的ip-ethereal-trace-1文件并筛选出其中的 ICMP 报文,展开第一个返回超时路由的 IP 报信息( info 信息中带有 Time to live exceedded 的数据帧); (2)ID 字段和 TTL 字段的值是多少,填入文件中; (3)保存文件并使用 git 将文件 message-2.txt 推送到远程仓库,此步骤不影响评测。

EduCoder 计算机网络实验 IP协议分析_第9张图片

第3关:IP的分片组织

  • 任务描述
  • 相关知识
    • IP分片产生
    • IP数据报分片分析
    • 报文排序筛选
    • ICMP 报文分片查看
    • ICMP 报文分片数的判断
    • 使用git将本地文件推送到远程仓库永久保存
  • 操作要求
  • 测试说明

任务描述

本关任务:ICMP 响应包中 IP 的分片分析。

相关知识

为了完成本关任务,你需要掌握:

  1. IP 包分片;
  2. 分片组织。

IP分片产生

链路层具有最大传输单元 MTU 这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的 MTU 是 1500,你可以用 netstat -i 命令查看这个值。如果 IP 层有数据包要传,而且数据包的长度超过了 MTU ,那么 IP 层就要对数据包进行分片( fragmentation )操作,使每一片的长度都小于或等于 MTU 。

假设要传输一个 UDP 数据包,以太网的 MTU 为 1500 字节,一般 IP 首部为 20 字节,UDP 首部为 8 字节,数据的净荷( payload )部分预留是1500-20-8=1472字节。如果数据部分大于 1472 字节,就会出现分片现象。 ######分片与重组字段 EduCoder 计算机网络实验 IP协议分析_第10张图片 IP 报文的首部包含了分片和重组所需的信息:

  1. Identification:发送端发送的 IP 数据包标识字段都是一个唯一值,该值在分片时被复制到每个片中。
  2. R:保留未用。
  3. DF:Don’t Fragment,“不分片”位,如果将这一比特置 1 ,IP 层将不对数据报进行分片。
  4. MF:More Fragment,“更多的片”,除了最后一片外,其他每个组成数据报的片都要把该比特置 1 。
  5. Fragment Offset:该片偏移原始数据包开始处的位置。偏移的字节数是该值乘以 8 。

    注意:当数据报被分片后,每个片的总长度值要改为该片的长度值。

IP数据报分片分析

运行 Wireshark ,我们只截获和实验有关的数据报,在过滤窗口设置捕获条件为 ICMP ,执行命令ping  www.sina.com.cn:

 

EduCoder 计算机网络实验 IP协议分析_第11张图片 

 

 

待命令结束后,停止截获报文,获取到的消息如下,根据偏移量( Fragment offset=0 )发现是第一个片段,且数据长度为 1500 byte(抓包帧显示 1514 是因为还抓了 14 byte 的以太网头):

 

EduCoder 计算机网络实验 IP协议分析_第12张图片 

 

 

以太网头:

 

 

 

 

报文排序筛选

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

 

 

 

按 Time 顺序排序:

 

EduCoder 计算机网络实验 IP协议分析_第13张图片 

 

点击 Time ,按 Time 逆序排序:

 

EduCoder 计算机网络实验 IP协议分析_第14张图片 

 

ICMP 报文分片查看

筛选 ICMP 报文,找到request/reply数据报,在对应的 IPV4 信息中查看 Fragment 信息,得到分片数及每片大小:

 

EduCoder 计算机网络实验 IP协议分析_第15张图片 

 

 

ICMP 报文分片数的判断

由上可知,一个分片最多存储1480bytes,若数据大于1480bytes则需要分片。设数据大小为s,则分片数k=⌈s/1480⌉

使用git将本地文件推送到远程仓库永久保存

评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:

  • 在桌面空白处点击鼠标右键,点击“在此打开终端”,通过代码cd /data/workspace/myshixun/,进入到实训代码仓库;

  • 执行 git 命令:

     
    1. git add .
    2. git commit -m "Fisrt commit"
    3. git push origin master

    “Fisrt commit”相当于备注,可以是其它内容。这里需要输入 educoder 的用户名和密码,用户名输入 educoder 平台的登录用户名、手机号或者邮箱,密码输入 educoder 平台的登录密码,按照提示输入即可。

注意:密码输入过程中 Shell 窗口并不会显示输入的字符,正常输入后回车即可,注意不能使用退格键。

操作要求

双击打开桌面上的工作区文件夹”workspace”,再打开实训文件夹”myshixun”,并打开文件message-3.txt,将查询的信息保存到文件message-3.txt。具体要求如下: (1)打开 Wireshark ,加载实训文件夹中的ip-ethereal-trace-1文件并筛选出其中的 ICMP 报文; (2)查看第一条 ICMP 请求报文(info信息中带有request字段)的Fragment offset字段,判断此报文是否分片(是/否); (3)对最后一条(按时间排序)ICMP 应答报文(info信息中带有reply字段),此报文分成几个分片,填写到文件中; (4)若让主机发送的数据分为 4 个分片,则 Ping 命令中的报文长度最小为多少,最大为多少,填写到文件中; (5)保存文件并使用 git 将文件 message-3.txt 推送到远程仓库,此步骤不影响评测。

EduCoder 计算机网络实验 IP协议分析_第16张图片

 

 

你可能感兴趣的:(EduCoder,wireshark)