EduCoder 计算机网络实验 以太网与ARP协议分析

第1关:抓取Ethernet包

  • 任务描述
  • 相关知识
    • 以太帧类型
    • Ethernet帧格式
    • IEEE 802.3 帧格式:
    • IEEE 802.3 SNAP
    • 捕获以太帧
    • 使用git将本地文件推送到远程仓库永久保存
  • 操作要求
  • 测试说明

任务描述

本关任务:在 Wireshark 下抓取 Ethernet 包。

相关知识

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

  1. Ethernet 帧结构;
  2. 学会抓取一组以太帧结构。

以太帧类型

以太帧有很多种类型。不同类型的帧具有不同的格式和 MTU 值。但在同种物理媒体上都可同时存在。

  1. 以太网第二版或者称之为 Ethernet II 帧,DIX 帧,是最常见的帧类型。并通常直接被 IP 协议使用;
  2. Novell 的非标准 IEEE 802.3 帧变种;
  3. IEEE 802.2 逻辑链路控制(LLC) 帧;
  4. 子网接入协议(SNAP)帧。

Ethernet帧格式

以太网中大多数的数据帧使用的是 Ethernet II 格式:

 

EduCoder 计算机网络实验 以太网与ARP协议分析_第1张图片

 

Ethernet II 类型以太网帧的最小长度为 64 字节(6+6+2+46+4),最大长度为 1518 字节(6+6+2+1500+4)。其中: (1)前 12 字节分别标识出发送数据帧的源节点 MAC 地址和接收数据帧的目标节点 MAC 地址; (2)接下来的 2 个字节标识出以太网帧所携带的上层数据类型,如 16 进制数0x0800代表 IP 协议数据,16 进制数0x86dd代表 IPv6 协议数据,16 进制数0x809B代表 AppleTalk 协议数据,16 进制数0x8138代表 Novell 类型协议数据等; (3)在不定长的数据字段(Data):其长度是 46 至 1500 字节; (4)4 个字节的帧校验序列(Frame. Check Sequence,FCS),采用 32 位 CRC 循环冗余校验对从“目标 MAC 地址”字段到“数据”字段的数据进行校验。

IEEE 802.3 帧格式:

 

EduCoder 计算机网络实验 以太网与ARP协议分析_第2张图片

 

各字段说明如下: (1)D-MAC && S-Mac:分别表示标识目标地址和源地址。它们均为 6 个字节长。如果传输出去的目标地址第一位是 0,则表示这是一个普通地址;如果是 1, 则表示这是一个组地址。 (2)Length / Type :通常这个字段用于指定报文头后所接的数据类型。通常使用的值包括:IPv4(0x0800), IPv6(0x86DD), ARP(0x0806)。 而值0x8100代表一个 Q-tagged 帧(802.1q)。通常一个基础的以太网帧长为 1518 字节,但是更多的新标准把这个值扩展为 2000 字节。 (3)MAC Client Data: 数据主体,由 LLC、SNAP 及 Data 构成。最小长度为 48 字节(加上帧头 12 字节,CRC4 字节刚好 64 字节), 当数据主体小于 48 字节时,会添加 pad 字段。选取最小长度是出于冲突检测的考虑(CSMA/CD)。而数据字段最大长度为 1502 字节。

IEEE 802.2 LLC的头构成: (a)DSAP 目的服务访问字段,1 字节长,指明帧的目的上层协议类型; (b) ASAP 源服务访问字段,1 字节长,指明帧的源上层协议类型; (c) control 控制 1 字节或者 2 字节,长度要看被封装的 LLC 数据类型,是 LLC 数据报(类型1)1 字节,LLC 对话的一部分(类型2)2 字节。

类型1 表明是无连接的,不可靠的 LLC 数据报,控制字段用0x03指明;类型 2 表明是面向连接可靠的 LLC 会话。 (4)FCS(Frame Check Sequence):也叫 CRC(Cyclic Redundancy Check),CRC 是差错检测码,用来确定接收到的帧比特是否正确。

IEEE 802.3 SNAP

虽然 IEEE 802.3 是标准,但没有被业界采用。以太网 II 已成事实标准。于是 IEEE 802.3 扩展产生 IEEE 802.3 SNAP 来兼容以太网网头部协议,在 IEEE 802.2 LLC 头部后插入了 SNAP 头部。 SNAP 头部字段构成: (1)组织代码 3 字节长,指明维护接下来 2 字节意义的组织,对 IP 和 ARP,该字段被设置为0x00-00-00。 (2)以太网类型 如果组织代码为0x00-00-00,接下来 2 字节就是以太网类型 IP (0x0800)ARP(0x0806)。 因为增加了 LLC 头部的 3 字节和 SNAP 头部的 5 字节所以有效载荷比以太网 II 少 8 个字节。

捕获以太帧

确保浏览器的缓存为空(清除浏览器缓存:请选择工具—>清除最近历史记录),然后启动 Wireshark 数据包嗅探器。 打开 URL http://gaia.cs.umass.edu,停止 Wireshark 数据包捕获,找到您向gaia.cs.umass.edu的 HTTP GET 消息的数据包编号以及gaia.cs.umass.edu相应您的 HTTP回应。抓包结果截图如下:

 

EduCoder 计算机网络实验 以太网与ARP协议分析_第3张图片

 

帧类型

 

EduCoder 计算机网络实验 以太网与ARP协议分析_第4张图片

 

本实验是关于以太网和 ARP,不需要高层协议,所以我们更改 Wireshark 的“捕获数据包列表”窗口,以便它仅显示有关 IP 以下协议的信息。请选择 Analyze-> Enabled Protocols(分析-启用的协议)。 然后取消选中 IP 框并选择确定。结果的截图如下:

 

EduCoder 计算机网络实验 以太网与ARP协议分析_第5张图片

 

使用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,加载实训文件夹中的ethernet-ethereal-trace-1文件,进行分析; (2)根据包含 HTTP GET 消息的以太网帧进行分析:以太网帧中 48 位目的地址是什么?填写到文件中; (3)打开左上角的terminal emulator窗口,通过ping gaia.cs.umass.edu命令查看gaia.cs.umass.edu的IP地址,在终端命令中输入查看arp命令:arp 查看是否有gaia.cs.umass.edu的MAC地址,如果有,将其MAC地址填写到文件中,如果没有,填写“否”到文件中; (4)Ethernet II 两字节的帧类型字段的十六进制值,填写到文件中; (5)保存文件并使用 git 将文件 message-1.txt 推送到远程仓库,此步骤不影响评测。

EduCoder 计算机网络实验 以太网与ARP协议分析_第6张图片

第2关:Ethernet包分析

  • 任务描述
  • 相关知识
    • Ethernrt 包
    • 展开数据包的详细信息
    • 使用git将本地文件推送到远程仓库永久保存
  • 操作要求
  • 测试说明

任务描述

相关知识

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

  1. Ethernet 包详细介绍;
  2. wireshark 下分析 Ethernet 包分析。

Ethernrt 包

Ethernet II 类型以太网的帧结构: EduCoder 计算机网络实验 以太网与ARP协议分析_第7张图片报头: 8 个字节,前 7 个 0,1 交替的字节(10101010)用来同步接收站,一个1010101011字节指出帧的开始位置。报头提供接收器同步和帧定界服务。 目标地址: 6 个字节,单播、多播或者广播。单播地址也叫个人、物理、硬件或 MAC 地址。广播地址全为 1 , 0xFF FF FF FF。 源地址: 6 个字节。指出发送节点的单点广播地址。 以太类型: 2 个字节,用来指出以太网帧内所含的上层协议。即帧格式的协议标识符。对于 IP 报文来说,该字段值是0x0800。对于 ARP 信息来说,以太类型字段的值是0x0806有效负载:由一个上层协议的协议数据单元 PDU 构成。可以发送的最大有效负载是 1500 字节。由于以太网的冲突检测特性,有效负载至少是 46 个字节。如果上层协议数据单元长度少于 46 个字节,必须增补到 46 个字节。 帧检验序列:4 个字节。验证比特完整性。

展开数据包的详细信息

点击 Protocol Version 4 可以观察 Protocol Version 4 的内容,我们可以看到 IP 的源地址和目的地址,以及 IP 的版本是 4,并且其头的长度为 20 个字节。 EduCoder 计算机网络实验 以太网与ARP协议分析_第8张图片 User Datagram Protocol 可以观察 User Datagram Protocol 的内容,显示了源端口号,还有目的端口号,以及 UDP 协议的长度,和包头检验和的结果(checksum)。 EduCoder 计算机网络实验 以太网与ARP协议分析_第9张图片 Data 可以观察 Data 的内容,可以看出 Data 的长度为 49: EduCoder 计算机网络实验 以太网与ARP协议分析_第10张图片 计算字节: 例如计算从以太帧的开始,一直到“GET”中的 ASCII G出现在以太网帧中为止,有 55 Byte(此时第一个字节为 1)。图中每两个十六进制字符代表一个字节(8 比特),FF = 11111111(2) = 8 Bit = 1 ByteEduCoder 计算机网络实验 以太网与ARP协议分析_第11张图片

使用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,加载实训文件夹中的ethernet-ethereal-trace-1文件,进行分析; (2)根据包含 HTTP GET 消息的以太网帧进行分析,回答以太网 48 位源地址是什么?是 gaia.cs.umass.edu 服务器的地址吗?填写到文件中; (3) 找到包含 HTTP响应消息的第一个字节的以太网帧的内容; (4) 从此以太网帧的开始,一直到“OK”中的 ASCII O出现在以太网帧中为止,有多少字节?填写到文件中; (5) 此以太网帧的源地址的值是多少?填写到文件中; (6) 此以太网帧以太网帧中的目的地址是什么?这是您的计算机的以太网地址吗(填“是”或“否)?填写到文件中; (7)保存文件并使用 git 将文件 message-2.txt 推送到远程仓库,此步骤不影响评测。

EduCoder 计算机网络实验 以太网与ARP协议分析_第12张图片

 

第3关:抓取ARP命令的包

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

任务描述

本关任务:抓取 ARP 命令的包。

相关知识

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

  1. ARP 协议;
  2. ARP 命令。

由于 ARP 命令和 ARP 协议具有相同的名称,因此很容易混淆它们。但它们是不同的:ARP 命令用于查看和操作 ARP 缓存内容,而 ARP 协议定义了发送和接收的消息的格式和含义,并定义了对消息传输和接收所采取的操作。

ARP缓存

  1. 查看您计算机上 ARP 缓存的内容,在 Windows 下运行 CMD 窗口,输入命令arp,其详细指令如下图所示。 EduCoder 计算机网络实验 以太网与ARP协议分析_第13张图片

  2. 执行指令arp -a,如下图所示。 EduCoder 计算机网络实验 以太网与ARP协议分析_第14张图片

  3. 为了观察您的计算机发送和接收 ARP 消息,我们需要清除 ARP 缓存,否则您的计算机很可能在其缓存中找到所需的 IP-Ethernet 地址转换关系,因此不会发送 ARP 消息。执行删除命令后,再查看缓存内容,如下图所示。 EduCoder 计算机网络实验 以太网与ARP协议分析_第15张图片

抓取ARP消息

清除 ARP 表的缓存,清除浏览器的缓存,启动 Wireshark 捕捉封包。打开 URL:www.educoder.net。如任务一,同样设置不显示 IP 和更高层协(选择Analyze-> Enabled Protocols)。 然后取消选中 IP 框,之后窗口内容应该如下:

EduCoder 计算机网络实验 以太网与ARP协议分析_第16张图片

使用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)在桌面空白处右击,打开终端,输入arp命令; (2)查看计算机 ARP 缓存的内容,每个列值的含义是什么?(用分号”;”隔开)写入文件中; (3)保存文件并使用 git 将文件 message-3.txt 推送到远程仓库,此步骤不影响评测。EduCoder 计算机网络实验 以太网与ARP协议分析_第17张图片

第4关:ARP协议分析

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

任务描述

本关任务:对 ARP 协议进行分析。

相关知识

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

  1. 如何抓取 ARP 命令的包;
  2. 协议的简单分析。

ARP报文

报文格式 EduCoder 计算机网络实验 以太网与ARP协议分析_第18张图片

抓取APR命令的包

在任务三的基础上,清除你的 ARP 缓存,接下来,确保浏览器的缓存是空的。打开URL:http://gaia.cs.umass.edu/wireshark-labs/HTTP-ethereal-lab-file3.html。同样设置不显示 IP 和更高层协议,您现在 Wireshark 窗口应该如下所示:

EduCoder 计算机网络实验 以太网与ARP协议分析_第19张图片

简单的ARP协议分析

在 ARP 中发送了 2 种不同的报文,分别是,从源到目的地和从目的地到源。发送方是发送报文,目标方是接收报文。发送方和目标方的身份对每个报文都不一样,根据具体的情况而定:

  • 对发送方来说: 请求:发送方是源,目标方是目的地 回答:发送方是目的地,目标方是源 发送方硬件地址:ARP 报文中发送方的第 2 层地址 发送方协议地址:ARP 报文中发送方的第 3 层地址

  • 对目标方来说: 请求:目标方是源,发送方是目的地 回答:目标方是目的地,发送方是源 目标方的硬件地址:ARP 报文中目标方的第 2 层地址 目标方的协议地址:ARP 报文中目标方的第 3 层地址

展开 Etnernet 的头部,我们可以看到包含 ARP 请求消息的以太网帧中源地址和目标地址的十六进制: EduCoder 计算机网络实验 以太网与ARP协议分析_第20张图片 太网帧上层协议: EduCoder 计算机网络实验 以太网与ARP协议分析_第21张图片 找到 ARP 的操作码(Opcode)我们可以看到操作码字段的值是 1,也可计算出 ARP 操作码字段开始从以太网帧的最开始有15+6=21个字节EduCoder 计算机网络实验 以太网与ARP协议分析_第22张图片

而 ARP 消息包含发送方的 IP 地址:

使用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-4.txt,将查询的信息保存到文件message-4.txt。然后进行如下操作: (1)打开 Wireshark ,加载实训文件夹中的ethernet-ethereal-trace-1文件,进行分析; (2)筛选 ARP 数据报,并找到 request(请求)消息; (3)查看包含 ARP 请求消息的以太网帧中源地址和目标地址的十六进制值是什么?填写到文件中; (4)请问在进行 ARP 请求的以太网帧的 ARP 负载部分中,操作码字段的值是多少?从操作码段开始以太网帧的最开始有多少字节?填写到文件中; (5)ARP 消息是否包含发送方的 IP 地址?(填写”是/否”),填写到文件中; (6)筛选 ARP 数据报,并找到 reply(回复)消息; (7)包含 ARP 回复消息的以太网帧中的源地址和目标地址的十六进制值是多少?填写到文件中; (8) 保存文件并使用 git 将文件 message-4.txt 推送到远程仓库,此步骤不影响评测。

EduCoder 计算机网络实验 以太网与ARP协议分析_第23张图片

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