[计算机网络实验]头歌 实验二 以太网帧、IP报文分析

目录

第1关:Wireshark基本使用入门

【实验目的】

【实验环境】

【本地主机、平台虚拟机之间数据传递】

wireshark基本用法】

1、wireshark主界面

2、抓取分组操作

3、Wireshark窗口功能

4、筛选分组操作

【实验操作】

​编辑

第2关:Ethernet帧分析

【以太网帧格式】

1、Ethernet II帧格式

2、IEEE 802.3 帧格式:

IEEE 802.2 LLC的头构成:

3、IEEE 802.3 SNAP

【实验任务】

第3关:IP报文分析

1、MAC帧与数据负载

2、IP数据报格式:

3、ICMP报文格式

4、Ping 命令

5、traceroute命令与工作原理

【实验任务】


第1关:Wireshark基本使用入门

【实验目的】

1、掌握wireshark工具的基本使用方法

【实验环境】

1、头歌基于Linux的虚拟机桌面系统

2、网络报文分析工具wireshark

3、浏览器firefox

【本地主机、平台虚拟机之间数据传递】

1、文本的复制与粘贴 操作入口:点击虚拟机桌面右上角“工具栏”,选择“复制粘贴”菜单项。 特点:可双向复制与粘贴。

2、文件传输 操作入口:点击虚拟机桌面右上角“工具栏”,选择“上传文件”或“下载文件”菜单项。

3、截图 可以使用本地机的截图工具,对虚拟机桌面应用进行截图。 

wireshark基本用法】

Wireshark是一种开源的网络协议分析工具,主要功能有捕捉报文、解码分析、报文统计。官方下载地址:Wireshark · Download

1、wireshark主界面

双击桌面上的图标 ,可启动Wireshark。启动后的用户界面如下图所示,中间列表部分列出了所有网络接口。

Wireshark主界面

2、抓取分组操作

A.单击中间网络接口列表中,某一网络接口如eth0,选中网络接口,通过菜单“捕获”-“开始”或工具栏中的

按钮1

按钮,开始捕获选定接口中的网络分组;

B.也可以双击中间网络接口列表中,某一网络接口如eth0,可以开始抓取分组;

C.通过菜单“捕获”-“停止”或工具栏中的按钮

按钮2

停止抓取分组。

D.通过菜单“捕获”-“重新开始”或工具栏中的按钮

按钮3

重新开始抓取。

3、Wireshark窗口功能

(1)命令菜单和工具栏 命令菜单位于窗口的最顶部,是标准的下拉式菜单。最常用菜单命令有两个: 文件、 捕获。 文件 菜单允许你保存捕获的分组数据,或打开一个已被保存的捕获分组数据文件,或退出 WireShark 程序。 捕获 菜单允许你开始捕获分组。 工具栏位于命令菜单的下方,提供常用功能的快捷方式。如

开始

:开始捕获、

停止

:停止捕获、

重新开始

:重新抓取分组。

(2)显示过滤规则 在该字段中,可以填写协议的名称或其他信息,根据此内容可以对分组列表窗口中的分组进行过滤。

(3)捕获分组列表(报文摘要窗口) 按行显示已被捕获的分组内容,其中包括: WireShark 赋予的分组序号、捕获时间、分组的源地址和目的地址、协议类型、分组中所包含的协议说明信息。单击某一列的列名,可以使分组按指定列进行排序。 在该列表中,所显示的协议类型是发送或接收分组的最高层协议的类型。

(4)分组头部明细(报文解码窗口) 显示捕获分组列表窗口中被选中分组的头部详细信息。包括:与以太网帧有关的信息,与包含在该分组中的 IP 数据报有关的信息。 单击以太网帧或 IP 数据报所在行左边的向右或向下的箭头可以展开或最小化相关信息。如果利用 TCP 或 UDP 承载分组, WireShark 也会显示 TCP 或 UDP 协议头部信息。分组最高层协议的头部字段也会显示在此窗口中。

(5)分组内容窗口(报文内容窗口) 以 ASCII 码和十六进制两种格式显示被捕获帧的完整内容。

4、筛选分组操作

通常,分组列表窗口中会显示许多类型的分组。即使仅仅是下载了一个网页,但是还有许多其他协议在您的计算机上运行,只是用户所看不见。可以在中间过滤窗口中输入过滤的分组协议如http, 选择应用按钮,就可以只让HTTP分组消息显示在分组列表窗口。

窗口

【实验操作】

1、打开wireshark ,开始抓取网络接口eth0上的分组,将窗口最小化;

双击eth0开始抓取分组

2、打开浏览器,访问http://www.baidu.com, 等待网页打开完毕;

3、切换到Wireshark窗口,并停止抓取分组;

        红色按钮停止

4、利用分组过滤功能,过滤出http分组;在报文摘要窗口中点击选取第1个http报文;

5、对当前报文的头部明细窗口进行截图,保存到实验报告中,课后分析该报文,从外到内分别使用了什么协议,对应网络体系结构的哪一层?

6、将分组列表中出现的协议名称,顺序填入代码文件窗口首行末尾,不可修改原有的提示内容(相同协议只填写一次,用符号,分隔)。

7、使用Wireshark文件菜单,将所捕获的所有http报文保存到某个自定义的文件中,并下载到本地主机中。

第2关:Ethernet帧分析

【以太网帧格式】

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

(1)以太网第二版或者称之为 Ethernet II 帧,DIX 帧,是最常见的帧类型。并通常直接被 IP 协议使用;

(2)Novell 的非标准 IEEE 802.3 帧变种;

(3)IEEE 802.3帧(后跟逻辑链路控制(LLC) 帧);

(4)子网接入协议(SNAP)帧。

1、Ethernet II帧格式

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

以太帧

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 地址”字段到“数据”字段的数据进行校验。

2、IEEE 802.3 帧格式:

802.3帧格式

各字段说明如下: (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及 Data 构成。最小长度为 48 字节(加上帧头 12 字节,CRC4 字节刚好 64 字节), 当数据主体小于 48 字节时,会添加 pad 字段。选取最小长度是出于冲突检测的考虑(CSMA/CD)。而数据字段最大长度为 1502 字节。

IEEE 802.2 LLC的头构成:

SNAP

(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 是差错检测码,用来确定接收到的帧比特是否正确。

3、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 个字节。

【实验任务】

1、切换到终端窗口

 

2、查看虚拟机eth0网卡的MAC地址、IP地址、子网掩码,并记录到实验报告中。 使用命令:ifconfig

3、查看虚拟机网关IP地址 使用命令:route 对应default行

4、查看虚拟机网关MAC地址 使用命令:arp 根据网关IP地址,查ARP表得到对应的MAC地址,记录到实验报告中。

5、打开wireshark ,开始抓取网络接口eth0上的分组,将窗口最小化;(双击)

6、打开浏览器,访问http://www.baidu.com, 等待网页打开完毕;

7、切换到Wireshark窗口,并停止抓取分组;

8、利用分组过滤功能,过滤出http分组;在报文摘要窗口中点击选取第1个http报文;

9、分析当前报文采用以太网哪种帧格式,把典型字段值记录到到实验报告中。

10、确定当前报文的目的MAC地址指向目标(选填:平台虚拟机的网关MAC地址/主机的MAC地址),并填写到代码文件窗口第一行末尾(不要破坏“冒号”之前提示内容)。 注意:填写内容仅限于范围(平台虚拟机、平台虚拟机的网关、百度服务器、不能确定)

11、在捕获的报文中,找到一个广播帧,记录广播型MAC地址值(采用标准写法,16进制、冒号分隔),并填写到代码文件窗口第二行末尾(不要破坏“冒号”之前提示内容)。

第3关:IP报文分析

1、MAC帧与数据负载

在TCP/IP网络内,MAC帧的数据部分只有一个字段,其长度在46到1500字节之间,包含的信息是网络层传下来的数据,网络层常见协议有IP、ARP、ICMP协议,所以MAC帧的数据字段通常是一个IP分组、ARP报文。

MAC帧

2、IP数据报格式:

IP数据报(IP Datagram)是一个与硬件无关的虚拟包, 由首部和数据两部分组成,其格式如下图所示。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。首部中的源地址和目的地址都是IP协议地址。

IP报文

1.版本:ip报文中,版本占了4位,用来表示该协议采用的是那一个版本的ip,相同版本的ip才能进行通信。一般此处的值为4,表示ipv4。

2.头长度:该字段用四位表示,表示整个ip包头的长度,其中数的单位是4字节。即二进制数0000-1111(十进制数0-15),其中一个最小长度为0字节,最大长度为60字节。一般来说此处的值为0101,表示头长度为20字节。

3.Tos服务字段:该字段用8位表示。该字段一般情况下不使用。

4.总长度:该字段表示整个ip报文的长度,单位是1字节。能表示的最大字节为2^16-1=65535字节。不过由于链路层的MTU限制。超过1480字节后就会被分片(以太帧MTU为1500的情况下,除去20字节的包头)

5.标识:该字段是ip软件实现的时候自动产生的,该字段的目的不是为了接受方的按序接受而设置的,而是在ip分片以后,用来标识同一片分片的。方便ip分片的重组。

6.标志:该字段是与ip分片有关的。其中有三位,但只有两位是有效的,分别为MF,DF,MF。MF标识后面是否还有分片,为1时,表示后面还有分片。DF标识是否能分片,为0表示可以分片

7.片偏移:该字段是与ip分片后,相应的ip片在总的ip片的位置。该字段的单位是8字节。比如,一个长度为4000字节的ip报文,到达路由器。这是超过了链路层的MTU,需要进行分片,4000字节中,20字节为包头,3980字节为数据,需要分成3个ip片(链路层MTU为1500),那么第一个分片的片偏移就是0,表示该分片在3980的第0位开始,第1479位结束。第二个ip片的片偏移为185(1480/8),表示该分片开始的位置在原来ip的第1480位,结束在2959。第三片的片偏移为370(2960/8),表示开始的时候是2960位,结束的时候在3979位。

8.TTL:该片表示生存周期,该值占8位。ip分片每经过一个路由器该值减一,它的出现是为了防止路由环路,浪费带宽的问题。比如,该ip在R1路由器发送到R2路由器。R2路由器又发给R1路由器。防止这种循环。window系统默认为128.

9.协议:该值标识上层的协议。占8位。其中1,标识ICMP、2标识IGMP、6标识TCP、17标识UDP、89标识OSPF。

10校验和:该值是对整个数据包的包头进行的校验。占16位。

11.源地址和目的地址。标识发送ip片的源和目的ip,32位

12.可选项,一般一些特殊的要求会加在这个部分。

3、ICMP报文格式

网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。ICMP可以看作是IP协议的伴随协议。ICMP报文被封装在IP 数据报发送。

ICMP报文

 类型:标识生成的错误报文,它是ICMP报文中的第一个字段;

 代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因;

 校验和:存储了ICMP所使用的校验和值。

 未使用:保留字段,供将来使用,起值设为0

 数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据;

IP数据包8字节

4、Ping 命令

其主要功能是用于网络连通测试,通信协议是ICMP,Windows系统下Ping命令格式如下:

ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count]

[[-j host-list] | [-k host-list]] [-w timeout] target_name 这里对实验中可能用到的参数解释如下:

-t :用户所在主机不断向目标主机发送回送请求报文 ,直到用户中断;

-n count: 指定要 Ping 多少次,具体次数由后面的 count 来指定 ,缺省值为 4;

-l size: 指定发送到目标主机的数据包的大小 ,默认为 32 字节,最大值是 65,527;

-w timeout:指定超时间隔,单位为毫秒;

target_name:指定要 ping 的远程计算机。

Unix/Linux系统下Ping命令使用格式如下:

ping [-c count] [-s size] target_name

-c count: 指定要 Ping 多少次,具体次数由后面的 count 来指定

-s size: 指定发送到目标主机的数据包的大小,默认为 32 字节

target_name:指定要 ping 的远程计算机。

5、traceroute命令与工作原理

其主要功能是跟踪(报文传输)沿途所经过的路由,通信协议是ICMP,用于unix、linux系统环境,在Windows系统环境内,对应的命令是tracert。命令格式:Traceroute 目标主机名或IP. Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。 Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。

【实验任务】

1、切换到终端窗口

2、已知某目标机IP地址是119.38.215.130,测试IP报文由平台虚拟机发送至目标机,沿途经过哪些路由器? 执行命令:traceroute 119.38.215.130 把得到的数据整理后,保存到实验报告中,课后分析沿途经过哪些路由器。

3、分析沿途所经过的路由器的数目,并填写到代码文件窗口第一行末尾(不要破坏“冒号”之前提示内容)。 注:有两种可能的答案,系统只认其中一种(如果你的答案系统不认,可以将其减1或加1再试)。

4、打开wireshark ,开始抓取网络接口eth0上的分组,将窗口最小化;

5、在终端窗口内,执行如下命令: ping -c 3 -s 0 www.educoder.net 在实验报告中解释该命令行各参数的含义; 把得到的数据整理后,保存到实验报告中,课后完成数据分析。

6、切换到Wireshark窗口,并停止抓取分组;

7、利用分组过滤功能,过滤出icmp分组;在报文摘要窗口中点击选取第1个icmp报文;

8、调节分组头部细节窗口大小,将其中IP报头和ICMP报头全部字段都展开,然后对该窗口进行截图,并粘贴到实验报告中,课后对其中主要字段进行分析解读。

9、分析第一个icmp响应(reply)报文,把其类型值、代码,分别填写到代码文件窗口的第二、三行末尾(不要破坏“冒号”之前提示内容)。

【思考题】

1、为什么wireshark捕获的以太网帧,看不到MAC帧最末尾的FCS字段?

2、为什么wireshark捕获的以太网帧,有的帧长度小于理论上最低值64字节?

3、ARP表的作用什么?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/205645.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AMEYA360:村田首款1608M尺寸/100V静电容量1µF的MLCC实现商品化

株式会社村田制作所成功开发了用于基站、服务器和数据中心48V线路的多层陶瓷电容器“GRM188D72A105KE01”并已量产。该产品在1608M(1.60.8mm)尺寸、100V的额定电压下可实现1μF的超大静电容量(村田调查数据,截至2023年11月20日)。目前可向村田申请免费样品。 随着5G…

JS 判断元素是否为空

判断元素是否为空: /*** 判断是否为空*/ export function validatenull(val) {if (typeof val boolean) {return false}if (typeof val number) {return false}if (val instanceof Array) {if (val.length0) return true} else if (val instanceof Object) {if (…

服务器系列之 成功解决 com.jcraft.jsch.JSchException: Auth fail

我 | 在这里 🕵️ 读书 | 长沙 ⭐软件工程 ⭐ 本科 🏠 工作 | 广州 ⭐ Java 全栈开发(软件工程师) 🎃 爱好 | 研究技术、旅游、阅读、运动、喜欢流行歌曲 🏷️ 标签 | 男 自律狂人 目标明确 责任心强 ✈️公…

bclinux aarch64 ceph 14.2.10 云主机 4节点 fio

ceph -s 由于是基于底层分布式存储的云主机,数据仅供参考 本地云盘性能 direct1 1M读取 IOPS134, BW134MiB/s [rootceph-client rbd]# cd / [rootceph-client /]# fio -filenamefio.bin -direct1 -iodepth 128 -thread -rwread -ioenginelibaio -bs1M -size10G -n…

倍福控制器搭建IgH环境

最近收到了倍福CX5230控制器,控制器上自带EBUS总线扩展的IO,使用的是CCAT网卡,在控制器上安装preempt-rt Linux系统,再安装IgH。 IgH正常识别到了扩展的IO模块。 运行控制程序,可以正常控制IO输出。

Linux中Team链路聚合配置

目录 一、Team介绍 二、网卡的bonding和Teaming技术 三、Teaming常用工作模式 四、实验环境 五、添加物理网卡 1、给虚拟机新增四张物理网卡 2、查看网卡信息 六、Team链路聚合配置 1、创建team0的网络接口 2、为team0设置静态IP,掩码位,网关,dns…

VMware Workstation系列:Windows10 优化VMware虚拟机运行速度总结(单台、多台-ESXI)

Windows10 优化VMware虚拟机运行速度总结 一. 单台或两台同时运行前言:优化方法环境: 1、清除多余快照2、清理磁盘。3、虚拟机全局设置5、设置“优先级”6、设置“设备”7、编辑虚拟机设置8、分配合适的内存和CPU 二. 多台并行背景:一. 下载1…

jQuery【回到顶部、Swiper轮播图、立即执行函数、链式调用、参数重载、jQuery扩展】(六)-全面详解(学习总结---从入门到深化)

目录 回到顶部 Swiper轮播图 jQuery源码_立即执行函数 jQuery源码_链式调用 jQuery源码_参数重载 jQuery扩展 回到顶部 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compati…

Oracle(2-5)Usage and Configuration of the Oracle Shared Server

文章目录 一、基础知识1、 Server Configurations服务器配置2、Dedicated server process专用服务器进程3、Oracle Shared ServerOracle共享服务器4、Benefits of Shared Server 共享服务器的优点5、Processing a Request 处理请求6、Configuring Shared Server 配置共享服务器…

Linux OpenGauss 数据库远程连接

目录 前言 1. Linux 安装 openGauss 2. Linux 安装cpolar 3. 创建openGauss主节点端口号公网地址 4. 远程连接openGauss 5. 固定连接TCP公网地址 6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统&#xff0c;采用木兰宽松许可证v2发行。openGauss内核…

在建立 OkHttp3 Client 时设置超时时间

这里写目录标题 一. 前言二. 导入mavengradle 三. 设置超时时间 一. 前言 OkHttp是一个处理网络请求的开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司开发。OkHttp3是Java和Android都能用&#xff0c;Android还有一个著名网络库叫Volley&#xff0c;那个只有Andro…

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…