精华内容
下载资源
问答
  • 2021-07-29 03:34:17

    Wireshark抓包及分析实验

    学生姓名: 夏效程

    学号: V200748016

    任务分配日期:2009-12-16

    课程名称: 计算机组网技术

    WireShark实验报告 : 用Wireshark完成计算机网络协议分析

    报告开始时间: 2009-12-16

    报告截至日期: 2009-12-30

    实验的目的

    本次实验的目的就是要学会wireshark抓包软件的基本使用方法,wireshark抓包的基本过程,以及对所抓到的数据包进行详细的分析并能很好的李杰一些基本的数据的含义。能达到对网络数据的基本的监控和查询的能力。

    实验一 802.3协议分析和以太网

    (一)实验目的

    1、分析802.3协议

    2、熟悉以太网帧的格式、了解ARP、ICMP、IP数据包格式

    实验步骤:

    1、捕获并分析以太帧

    (1)清空浏览器缓存(在IE窗口中,选择“工具/Internet选项/删除文件”命令)。如下图

    (2)启动WireShark,开始分组捕获。

    (3)在浏览器的地址栏中输入:

    /

    浏览器将显示华科大主页。如下图所示:

    (4)停止分组捕获。首先,找到你的主机向服务器发送的HTTP GET消息的Segment序号,以及服务器发送到你主机上的HTTP 响应消息的序号。

    http的segement段序号是47 45 54如下图:

    由下图可以得到服务器发送到我主机上的http响应消息的序号是:

    由上图可知为44

    1、你的主机的48位以太网地址(MAC地址)是多少?

    我的主机的mac地址是:

    2、目标MAC地址是服务器的MAC地址吗?如果不是,该地址是什么设备的MAC地址?

    不是服务器的MAC地址;该地址是网关的地址。

    3、给出Frame头部Type字段(2字节)的十六进制值。

    十六进制的值是08 00如图所示:

    4、在包含“HTTP GET”的以太网帧中,字符“G”的位置(是第几个字节,假设Frame头部第一个字节的顺序为1)?

    如果frame得头部为顺序1,则“G”的位置为67。如下图所示:

    5、以太Frame的源MAC地址是多少?该地址是你主机的MAC地址吗?是服务器的MAC地址吗?如果不是,该地址是什么设备的MAC地址?

    由上图可以得到:源mac地址为:00:1a:a9:1c:07:19该mac地址既不是我主机的mac地址也不是web服务器的mac地址,他是网关地址。

    Frame的源地址是

    6、以太网帧的目的MAC地址是多少?该地址是你主机的地址吗?

    上面的00:13:8f:3a:81:f0就是以太帧的mac地址。该地址是我的主机地址。

    7、给出Frame头部2-字节Type字段的十六进制值。

    由上图可以知道08:00就是type的值。

    8、在包含“OK”以太网帧中,从该帧的第一个字节算起,”O”是第几个字节?由下图可以知道o的地址是:15

    9、写下你主机ARP缓存中的内容。其中每一列的含义是什么?

    以上的显示写的依次是:interface:就是自己主机的ip地址,下面的就是默认网关的ip地址,后面的四十八位的十六进制的数是默认网关的mac地址。

    10、包含ARP请求报文的以太网帧的源地址和目的地址的十六进制值各是多少?由下图可以知道源mac地址是:00:1a:1c:07:19目的mac地址是:

    FF:FF:FF:FF:FF:FF

    11、给出Frame头部Type字段的十六进制值。

    由上图可以知道:十六进制的值是:08 06

    12、从/innotes/std/std37.txt处下载ARP规范说明。在http://www.erg.abdn.ac.uk/users/gorry/course/inets/arp.html处有一个关于ARP的讨论网页。根据操作回答:

    ①形成ARP响应报文的以太网帧中,ARP-payload部分opcode字段的值是多少?

    由上面的图可以知道opcode的值是00 01

    ②在ARP报文中是否包含发送方的IP地址?

    包含发送方的ip地址,但是是默认网关的ip地址

    13、包含ARP响应(reply)报文的以太网帧中,源地址和目的地址的十六进制值各是多少?

    以上的de 14 6e fe为源地址的值

    上面的显示的de 14 6e 27是目的地址的值。

    实验三 TCP协议分析

    (一)实验目的及任务

    1、熟悉TCP协议的基本原理

    2、利用WireShark对TCP协议进行分析

    (

    更多相关内容
  • Wireshark抓包实验

    2022-01-06 18:11:22
    Wireshark一、数据链路层实作一 熟悉 Ethernet 帧结构问题一实作二 了解子网内/外通信时的 MAC 地址问题实作三 掌握 ARP 解析过程问题二、网络层实作一 熟悉 IP 结构问题实作二 IP 的分段与重组问题实作三 考察 ...

    一、数据链路层

    实作一 熟悉 Ethernet 帧结构

    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等。

    在这里插入图片描述

    问题一

    你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

    == 因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验,就不会出现校验字段。==

    实作二 了解子网内/外通信时的 MAC 地址

    1、ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

    发送请求
    在这里插入图片描述
    接收回应
    在这里插入图片描述
    目的MAC是主机的

    2、然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?

    发送请求

    在这里插入图片描述接收回应
    在这里插入图片描述
    目的 MAC 是网关的

    3、再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?

    发送请求
    在这里插入图片描述
    接收回应
    在这里插入图片描述
    目的MAC是网关

    问题

    通过以上的实验,你会发现:
    访问本子网的计算机时,目的 MAC 就是该主机的
    访问非本子网的计算机时,目的 MAC 是网关的
    请问原因是什么?

    1、访问本子网的计算机时,可以直接到达,所以目的MAC就是该主机
    2、访问非本子网的计算机时,要经过网关到达外面,所以目的MAC是网关

    实作三 掌握 ARP 解析过程

    1、为防止干扰,先使用 arp -d * 命令清空 arp 缓存

    在这里插入图片描述

    2、ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    目的MAC:ac:12:03:3a:98:78
    源MAC:82:91:31:58:13:4e

    3、再次使用 arp -d * 命令清空 arp 缓存

    在这里插入图片描述

    4、然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    问题

    通过以上的实验,你应该会发现,
    ARP 请求都是使用广播方式发送的
    如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。
    请问为什么?

    ARP代理,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

    二、网络层

    实作一 熟悉 IP 包结构

    1、使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。

    在这里插入图片描述

    问题

    为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

    头部长度是来表明该包头部的长度,可以使得接收端计算出报头在何处结束及从何处开始读数据。总长度是为了接收方的网络层了解到传输的数据包含哪些,如果没有该部分,当数据链路层在传输时,对数据进行了填充,对应的网络层不会把填充的部分给去掉。

    实作二 IP 包的分段与重组

    根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。
    缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    问题

    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?

    直接丢弃再通知发送端进行重传。
    由于在 IPv6中分段只能在源与目的地上执行,不能在路由器上进行。因此当数据包过大时,路由器就会直接丢弃该数据包包,并向发送端发回一个"分组太大"的ICMP差错报文,之后发送端就会使用较小长度的IP数据报重发数据。

    实作三 考察 TTL 事件

    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
    在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
    请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。

    在这里插入图片描述
    在这里插入图片描述
    可以看出,TTL每次增加1来进行追踪,因为TTL每次到达一个节点,就会减少1,所以通过TTL的递增,来追踪路途中的每一个节点。

    问题

    在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?

    14跳。因为TTL的原始值是离得最近的2的整次幂,为64,64-50=14。

    三、传输层

    实作一(熟悉 TCP 和 UDP 段结构)

    1、用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。

    在这里插入图片描述

    2、用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。

    在这里插入图片描述

    问题

    由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

    源端口来表示发送终端的某个应用程序,目的端口来表示接收终端的某个应用程序。端口号就是来标识终端的应用程序,从而实现应用程序之间的通信。

    实作二 分析 TCP 建立和释放连接

    1、打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用 tcp 过滤后再使用加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间使得能够捕获释放连接的包。

    在这里插入图片描述

    2、请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。

    1、注意到”第一次握手”客户端发送的TCP报文中以[SYN]作为标志位,并且客户端序号Seq=0;

    2、接下来”第二次握手”服务器返回的TCP报文中以[SYN,ACK]作为标志位;并且服务器端序号Seq=0;确认号Ack=1(“第一次握手”中客户端序号Seq的值+1);

    3、最后”第三次握手”客户端再向服务器端发送的TCP报文中以[ACK]作为标志位;其中客户端序号Seq=1(“第二次握手”中服务器端确认号Ack的值);确认号Ack=1(“第二次握手”中服务器端序号Seq的值+1)。

    这就完成了”三次握手”的过程

    3、请在你捕获的包中找到四次挥手释放连接的包,并说明为何它们是用于释放连接的,有什么特征。

    在这里插入图片描述
    1、”第一次挥手”客户端发送的FIN请求释放连接报文以[FIN,ACK]作为标志位,其中报文序号Seq=218;确认号Ack=224;

    2、”第二次挥手”服务器端继续返回的FIN同意释放连接报文以[FIN,ACK]作为标志位;其中报文序号Seq=224;确认号Ack=219;

    3、”第三次挥手”客户端发出的ACK确认接收报文以[ACK]作为标志位;其中报文序号Seq=219;确认号Ack=225;

    后一次“挥手”传输报文中的序号Seq值等于前一次"握手"传输报文中的确认号Ack值;

    后一次“挥手”传输报文中的确认号Ack值等于前一次"握手"传输报文中的序号Seq值;

    问题一

    去掉 Follow TCP Stream,即不跟踪一个 TCP 流,你可能会看到访问 qige.io 时我们建立的连接有多个。请思考为什么会有多个连接?作用是什么?

    它们之间的连接是属于短连接,一旦数据发送完成后,就会断开连接。虽然,断开连接,但是页面还是存在,由于页面已经被缓存下来。一旦需要重新进行发送数据,就要再次进行连接。这样的连接,是为了实现多个用户进行访问,对业务频率不高的场合,节省通道的使用,不让其长期占用通道。

    问题二

    我们上面提到了释放连接需要四次挥手,有时你可能会抓到只有三次挥手。原因是什么?

    客户端向服务端发送断开连接的请求为第一次挥手,服务端向客户端回复同意断开为第二次,然后服务端向客户端发送断开的请求为第三次挥手,客户端向服务端回复同意断开连接为第四次挥手。三次挥手是将服务器向客户端发送断开连接和回复同意断开连接合成一次挥手,其他两次挥手不变。也就是说,如果对方也没有数据发给本端,那么对方也会发送FIN给本端,使得二三次挥手合并为一次。

    四、应用层

    应用层的协议非常的多,我们只对 DNS 和 HTTP 进行相关的分析。

    实作一 了解 DNS 解析

    1、先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。

    在这里插入图片描述
    在这里插入图片描述

    2、你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。

    在这里插入图片描述

    在这里插入图片描述

    3、可了解一下 DNS 查询和应答的相关字段的含义

    DNS查询和应答报文的格式如下:
    在这里插入图片描述

    16位标识字段用于标记一对DNS查询和应答,以此区分一个DNS应答是哪个DNS查询的回应

    16位标志字段用于协商具体的通信方式和反馈通信状态。DNS报文头部的16位标志字段的细节如图
    在这里插入图片描述

    QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文
    opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
    AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
    TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
    RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
    RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询
    zero,这3位未用,必须设置为0
    rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)
    接下来的4个字段则分别指出DNS报文的最后4个字段的资源记录数目。对查询报文而言,它一般包含1个查询问题,而应答资源记录数,授权资源记录数和额外资源记录数则为0.应答报文的应答资源记录数则至少为1,而授权资源记录数和额外资源记录数可为0或非0

    查询问题的格式:
    在这里插入图片描述

    如图所示,查询名以一定的格式封装了要查询的主机域名。16位查询类型表示如何执行查询操作,常见的类型有如下几种:

    类型A,值是1,表示获取目标主机的IP地址
    类型CNAME,值是5,表示获得目标主机的别名
    类型PTR,值是12,表示反向查询
    应答字段,授权字段和额外信息字段都使用资源记录(Resource Record,RR)格式。

    资源记录格式:
    在这里插入图片描述

    32位域名是该记录中与资源对应的名字,其格式和查询问题中的查询名字段相同。16位类型和16位类字段的含义也与DNS查询问题的对应字段相同。
    32位生存时间表示该查询记录结果可被本地客户端程序缓存多长时间,单位是秒
    16位资源数据长度字段和资源数据字段的内容取决于类型字段。对类型A而言。资源数据是32位的IPv4地址,而资源数据长度则为4(以字节为单位)

    参考地址:https://blog.csdn.net/qq_41091373/article/details/90384705

    问题

    你可能会发现对同一个站点,我们发出的 DNS 解析请求不止一个,思考一下是什么原因?

    因为我们访问的网址只有一个域名,但是并不只有一台服务器主机,因此每一台服务器的IP地址不同,但他们的域名都是相同的。因此发出的解析请求是分散给不同服务器。

    实作二:了解 HTTP 的请求和应答

    1、打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。

    在这里插入图片描述

    2、请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。

    在这里插入图片描述
    Accept:告诉WEB服务器自己接受什么介质类型
    Content-Type:WEB 服务器告诉浏览器自己响应的对象的类型
    Content-Length:WEB 服务器告诉浏览器自己响应的对象的长度
    Cache-Control:用来指示缓存系统(服务器上的,或者浏览器上的)应该怎样处理缓存
    Host:客户端指定自己想访问的WEB服务器的域名/IP 地址和端口号
    POST:请求的方式,其中包括URI和版本

    3、请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。

    在这里插入图片描述
    200:交易成功;
    304:客户端已经执行了GET,但文件未变化;
    404:没有发现文件、查询或URl;

    问题

    刷新一次 qige.io 网站的页面同时进行抓包,你会发现不少的 304 代码的应答,这是所请求的对象没有更改的意思,让浏览器使用本地缓存的内容即可。那么服务器为什么会回答 304 应答而不是常见的 200 应答?

    浏览器中的缓存,可以直接在缓存区获取到需要的内容,不需要服务器在回复对应的内容,可以减少服务器的一些工作,减小开销。采用200应答就是要完全的将内容发送给客服端,这个会增加服务器的一些开销等。

    展开全文
  • 计算机网络wireshark抓包实验

    千次阅读 2020-11-16 20:19:52
    这里写目录标题简介实验操作三级目录 简介 Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接...

    这里写目录标题

    简介

    Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。

    工作流程

    (1)确定Wireshark的位置。如果没有一个正确的位置,启动Wireshark后会花费很长的时间捕获一些与自己无关的数据。
    (2)选择捕获接口。一般都是选择连接到Internet网络的接口,这样才可以捕获到与网络相关的数据。否则,捕获到的其它数据对自己也没有任何帮助。
    (3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。这样用户在分析数据时,也不会受其它数据干扰。而且,还可以为用户节约大量的时间。
    (4)使用显示过滤器。通常使用捕获过滤器过滤后的数据,往往还是很复杂。为了使过滤的数据包再更细致,此时使用显示过滤器进行过滤。
    (5)使用着色规则。通常使用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出的显示某个会话,可以使用着色规则高亮显示。
    (6)构建图表。如果用户想要更明显的看出一个网络中数据的变化情况,使用图表的形式可以很方便的展现数据分布情况。
    (7)重组数据。Wireshark的重组功能,可以重组一个会话中不同数据包的信息,或者是一个重组一个完整的图片或文件。由于传输的文件往往较大,所以信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。

    实验操作

    操作前言,一个简单的抓包步骤
    打开wireshark,点击捕获,点击选项
    在这里插入图片描述
    按照上面的勾选,然后打开cmd,ping一下百度

    ping.baidu.com

    在这里插入图片描述

    然后回到wireshark开始抓包
    会出现很多很多包
    在这里插入图片描述
    我们要精准的找到自己想要抓的包,就在过滤器上输入关键词

    ip.addr == 自己的ip and icmp

    然后就得到以下的八个包,就表示抓包成功!
    在这里插入图片描述
    数据链路层
    操作一:
    熟悉 Ethernet 帧结构
    使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等
    目的MAC,前6位就是目的MAC
    在这里插入图片描述
    源MAC,在目的MAC后六位就是源MAC
    在这里插入图片描述
    类型,在源MAC后两位就是类型
    在这里插入图片描述
    字段则是在类型后面46到1500位,总的来说可以归纳为如下:
    在这里插入图片描述
    问题:你会发现 Wireshark 展现给我们的帧中没有校验字段,请了解一下原因。

    因为有时校验和会由网卡计算,这时wireshark抓到的本机发送的数据包的校验和都是错误的,所以默认关闭了WireShark自己的校验

    操作二:
    解子网内/外通信时的 MAC 地址

    1.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可使用 icmp 关键字进行过滤以利于分析),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    发出帧
    在这里插入图片描述
    在这里插入图片描述

    返回帧
    在这里插入图片描述
    在这里插入图片描述

    2.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址是多少?这个 MAC 地址是谁的?
    在这里插入图片描述

    发出帧的目的MAC
    在这里插入图片描述
    返回帧的源MAC

    3.再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的?

    发出帧目的的MAC
    在这里插入图片描述
    返回帧的源MAC
    在这里插入图片描述
    发出帧的目的MAC就是返回帧的源MAC
    通过以上的实验,你会发现:

    访问本子网的计算机时,目的 MAC 就是该主机的
    访问非本子网的计算机时,目的 MAC 是网关的

    请问原因是什么?
    ARP代理,访问非子网计算机时是通过路由器转接的,MAC地址是接入路由器端口的地址,再通过路由器发给相应计算机
    操作三
    掌握 ARP 解析过程

    1.为防止干扰,先使用 arp -d * 命令清空 arp 缓存

     arp -d *

    2.ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。
    在这里插入图片描述
    目的MAC
    在这里插入图片描述
    源MAC
    在这里插入图片描述

    3.再次使用 arp -d * 命令清空 arp 缓存
    4.然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    通过以上的实验,你应该会发现,

    ARP 请求都是使用广播方式发送的
    如果访问的是本子网的 IP,那么 ARP 解析将直接得到该 IP 对应的 MAC;如果访问的非本子网的 IP, 那么 ARP 解析将得到网关的 MAC。

    请问为什么?
    答:

    代理ARP原理:对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的ARP请求会使用自己的MAC地址与目标计算机的IP地址对源计算机进行应答,访问非子网IP时是通过路由器访问的,路由器再把发出去,目标IP收到请求后,再通过路由器端口IP返回去,那么ARP解析将会得到网关的MAC。

    网络层
    实作一 熟悉 IP 包结构
    使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段。
    在这里插入图片描述
    为提高效率,我们应该让 IP 的头部尽可能的精简。但在如此珍贵的 IP 头部你会发现既有头部长度字段,也有总长度字段。请问为什么?

    答:便于传输时的识别IP总长度,节省时间,当长度超过1500B时就会被返回链路层进行分段。

    实作二 IP 包的分段与重组
    根据规定,一个 IP 包最大可以有 64K 字节。但由于 Ethernet 帧的限制,当 IP 包的数据超过 1500 字节时就会被发送方的数据链路层分段,然后在接收方的网络层重组。
    缺省的,ping 命令只会向对方发送 32 个字节的数据。我们可以使用 ping 202.202.240.16 -l 2000 命令指定要发送的数据长度。此时使用 Wireshark 抓包(用 ip.addr == 202.202.240.16 进行过滤),了解 IP 包如何进行分段,如:分段标志、偏移量以及每个包的大小等
    在这里插入图片描述
    在这里插入图片描述
    关于IP包如何分段:
    在这里插入图片描述
    分段与重组是一个耗费资源的操作,特别是当分段由传送路径上的节点即路由器来完成的时候,所以 IPv6 已经不允许分段了。那么 IPv6 中,如果路由器遇到了一个大数据包该怎么办?
    答:转发至能支持该数据报的出链路上。

    实作三 考察 TTL 事件
    在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。
    在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。
    请使用 tracert www.baidu.com 命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理。
    在这里插入图片描述
    在这里插入图片描述
    TTL生命期逐渐变大

    在 IPv4 中,TTL 虽然定义为生命期即 Time To Live,但现实中我们都以跳数/节点数进行设置。如果你收到一个包,其 TTL 的值为 50,那么可以推断这个包从源点到你之间有多少跳?
    答:50

    传输层
    实作一 熟悉 TCP 和 UDP 段结构

    用 Wireshark 任意抓包(可用 tcp 过滤),熟悉 TCP 段的结构,如:源端口、目的端口、序列号、确认号、各种标志位等字段。
    在这里插入图片描述

    用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等。

    在这里插入图片描述
    由上大家可以看到 UDP 的头部比 TCP 简单得多,但两者都有源和目的端口号。请问源和目的端口号用来干什么?

    答:端口的作用就是用来唯一标识这个进程。TCP中的源端口号的意思是,你这个包是从哪里来,目的端口号是你这个包要去哪里。

    应用层
    应用层的协议非常的多,我们只对 DNS 和 HTTP 进行相关的分析。
    实作一 了解 DNS 解析

    1.先使用 ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)。
    在这里插入图片描述
    在这里插入图片描述

    2.你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。
    在这里插入图片描述
    在这里插入图片描述

    3.可了解一下 DNS 查询和应答的相关字段的含义

    DNS工作原理
    我们通常使用机器的域名来访问这台机器,而不直接使用其IP地址,比如访问因特网上的各种网站。那么如何将机器的域名转换成IP地址呢?这就需要使用域名查询服务。域名查询服务有很多种实现方式,比如NIS(Network
    Information Service,网络信息服务)、DNS和本地静态文件等。

    格式如下:
    在这里插入图片描述
    在这里插入图片描述

    1.QR:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文2.opcode,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态
    3.AA,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器
    4.TC,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断
    5.RD,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考
    6.RA,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询7.zero,这3位未用,必须设置为0
    8.rcode,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)

    资料来自

    链接: link.

    总结

    计算机网络的wireshark抓包分为四个部分,分别是数据链路层,网络层,传输层和应用层。每一层的实验都让我学到了很多的东西,比如:
    数据链路层的发出帧的目的MAC就是返回帧的源MAC;
    网络层的IP包结构以及分段重组;
    传输层的TCP的三次握手以及TCP和UDP都有源和目的端口,端口的作用就是标记;
    应用层:DNS的查询和应答的相关含义

    展开全文
  • Wireshark网络抓包实验

    千次阅读 2020-11-08 14:55:13
    Wireshark网络抓包实验 首先通过ipconfig命令查得 本机IP:192.168.43.214 子网掩码:225.225.225.0 子网划分 A类:0.0.0.0~127.255.255.255 B类:128.0.0.0~191.255.255.255 C类:192.0.0.0~223.255.255.255 D类:...

    Wireshark网络抓包实验

    首先通过ipconfig命令查得
    本机IP:192.168.43.214

    Wireshark对Ping命令抓包分析

    实验步骤:

    第一步,确定目标地址,选择www.baidu.com作为目标地址。
    第二歩,配置过滤器:针对协议进行过滤设置,ping使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp。
    第三步,启动抓包:点击【start】开始抓包,在命令提示符下键入ping www.baidu.com。
    第四步,停止抓包后,截取数据。
    第五步,分析数据包,选取一个数据包进行分析。

    抓包截图:

    在这里插入图片描述
    在这里插入图片描述

    实验分析:

    在这里插入图片描述

    报文由IP首部和ICMP报文组成。
    蓝色部分为IP首部,共有20字节。
    在这里插入图片描述

    如上图所示,可以看到 IP 数据包的信息:
    Version: 4,表示 IPv4。
    Header Length: 5, 表示 5 个以 32 bit 为单位的 word,即 20 bytes。
    Time to live: 128, 生存时间。
    Protocol: 1,表示 ICMP。
    Source: 192.168.43.214,源 IP 地址。
    Destination: 36.156.69.79,目的 IP 地址。
    在这里插入图片描述

    Type: 该字段有 1 个字节,表示特定类型的 ICMP 报文。
    一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在。
    Code: 该字段有 1 个字节,进一步细分 ICMP 的类型。如上图所示,Type 的值为 8,Code 的值为 0,表示回显请求。
    Checksum: 该字段有 2 个字节,表示校验和。
    Identifier: 该字段有 2 个字节,用于匹配 Request/Reply 的标识符。
    Seq Num: 该字段有 2 个字节,用于匹配 Request/Reply 的序列号。
    Data: 数据载荷。

    Wireshark对tracert命令抓包分析

    实验步骤:

    第一步,确定目标地址,选择www.baidu.com作为目标地址。
    第二歩,配置过滤器:针对协议进行过滤设置,tracert使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp。
    第三步,启动抓包:点击【start】开始抓包,在cmd下键入tracert baidu.com
    第四步,停止抓包后,截取数据。
    第五步,分析数据包,选取一个数据包进行分析。

    抓包截图:

    在这里插入图片描述
    在这里插入图片描述

    实验分析:

    在这里插入图片描述

    报文由IP首部和ICMP报文组成。
    蓝色部分为IP首部,共有20字节。
    如上图所示,可以看到 IP 数据包的信息:
    Version: 4,表示 IPv4。
    Header Length: 5, 表示 5 个以 32 bit 为单位的 word,即 20 bytes。
    Time to live: 128, 生存时间。
    Protocol: 1,表示 ICMP。
    Source: 192.168.43.214,源 IP 地址。
    Destination: 192.168.43.1,目的 IP 地址。

    Wireshark对DNS协议抓包分析

    实验步骤:

    打开CMD.exe键入:ping baidu.com
    将自动进行域名解析,默认发送4个ICMP报文.
    启动Wireshark,选择一个有效网卡,启动抓包.
    在控制台回车执行完毕后停止监控.

    抓包截图:

    在这里插入图片描述
    在这里插入图片描述

    实验分析:

    在这里插入图片描述

    总得来看有两个DNS包(一次域名解析),和8个ICMP包(四次ping)
    可以发现DNS为应用层协议,下层传输层采用UDP,再下层网络层是IP协议,然后是数据链路层的以太网帧.
    需要关注的是应用层的实现也即DNS协议本身.
    在此之前,可以从下层获得一些必要信息:
    UDP(User Datagram Protocol)报文中:DNS的目的端口(Dst Port)是53
    IPv6(Internet Protocol Version 6)报文中目的IP是:
    2409:893c:550:89f4:bc46:850a:5fb3:beab
    由于IP报文在网络层进行路由选择,他会依次送给路由器而不是直接送给DNS服务器,这一点也十分容易理解,
    第一个包是请求包,不可能直接包含DNS服务器地址.
    在这里插入图片描述

    第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应.
    第二个是Flags标志字段,2字节,每一位的含义不同
    在这里插入图片描述

    QR: 查询/响应,1为响应,0为查询
    Opcode: 查询或响应类型,这里0表示标准,1表示反向,2表示服务器状态请求
    AA: 授权回答,在响应报文中有效,待会儿再看
    TC: 截断,1表示超过512字节并已被截断,0表示没有发生截断
    RD: 是否希望得到递归回答
    RA: 响应报文中为1表示得到递归响应
    zero: 全0保留字段
    rcode: 返回码
    在这里插入图片描述
    在这里插入图片描述

    可以看到和第一个请求包相比,响应包多出了一个Answers字段,同时Flags字段每一位都有定义.
    关注一下Flags中Answer RRs 为2 说明对应的Answers字段中将会出现2项解析结果.
    Answers字段可以看成一个List,集合中每项为一个资源记录,除了上面提到过的Name,Type,Class之外,还有Time to Live,Data length,Address.
    Time to Live(生存时间TTL):表示该资源记录的生命周期,从取出记录到抹掉记录缓存的时间,以秒为单位.这里是567合计9min27s.
    Data length(资源数据长度):以字节为单位,这里的4表示IP地址的长度为4字节.也就是下面Addr字段的长度.
    Address(资源数据): 返回的IP地址,就是我们想要的结果.

    Wireshark对FTP协议抓包分析

    实验步骤:

    FTP 服务器的登录。捕获 USER 和 PWD 的内容,分析 FTP、TCP、IP 协议的首部信息。FTP 服务器的端口号为 21,用于控制连接。
    FTP 文件的下载过程。
    FTP 服务的退出过程。

    抓包截图:

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    实验分析:

    在这里使用的是登录FTP 服务器:ftp.scene.org,通过对登陆过程的捕获可以看到,登陆的账号为anonymous,密码为chrome@example.com(默认)
    用Wireshark查看FTP、TCP、IP协议的首部信息,如下图。
    在这里插入图片描述

    下载文件的请求命令为”RETR ”,文件字节大小也不一样。
    从发送时间也可以看出来一些差别。介于1MB—10MB的文件可能由于其格式或其他原因,没有正常显示出包的大小和传输时间。不过,通过对比不同的大小的文件,可以得出文件越大TCP切片长度越小,传输的字节越多,所用的传输时间越长。
    FTP的退出过程在Wireshark的抓包过程中没有捕获到。

    Wireshark对HTTP协议抓包分析

    实验步骤:

    打开网站: www.qlu.edu.cn
    (1) 客户端通过TCP三次握手与服务器建立连接。
    (2) TCP建立连接成功后,向服务器发送http请求
    (3) 服务器收到客户端的http请求后,将返回应答,并向客户端发送数据。
    (4) 客户端通过TCP四次握手,与服务器断开TCP连接。

    抓包截图:

    在这里插入图片描述

    实验分析:

    1) 物理层的数据帧详细概要
    在这里插入图片描述

    7号帧,线路571字节,实际捕获571字节
    Inter face:接口ID
    Encapsulation type:封装类型,与wireshark版本有关
    Arrival Time捕获时间和日期
    Frame number:帧序号
    Frame length:帧长度
    Capture length:捕获长度
    2) 数据链路层以太网帧的头部信息
    在这里插入图片描述

    Destination:目标MAC地址
    Source:源MAC地址
    3) 网络层IP头部包信息
    在这里插入图片描述

    互联网IPV6
    IP包通信类别:(DSCP:CS0,ECN:Not-ECT)差分服务字段
    有效长度:517
    下一个包头:TCP(6)
    跳限制:65
    源IP地址
    目的IP地址
    4) 传输层数据包头部信息
    在这里插入图片描述

    源端口号:60655
    目标端口号:80
    序列号:1 下一个序列号:498 确认序列号:1
    Header length:20字节
    TCP标记字段:0x018
    流量控制窗口大小:64660
    TCP数据段校验和:0x9afb
    5) 应用层分析(HTTP协议分析)
    在这里插入图片描述

    Get为请求方式,后面跟请求内容
    Host:请求主机名www.qlu.edu.cn
    Connection:客户端与服务端指定的请求,相应有关选项(保持连接)
    User-agent:发送请求的操作系统及浏览器信息
    Accept:客户端可以识别的内容类型列表
    Accept-Encoding:客户端可识别的数据编码
    Accept-Language:浏览器所支持的语言类型

    展开全文
  • 一、实验名称 使用网络协议分析仪 Wireshark 二、实验目的 1、掌握安装和配置网络协议分析仪Wireshark的方法; 2、 熟悉使用Wireshark工具分析网络协议的基本方法,加深对协议格式、协议层次和协议交互过程的理解。 ...
  • 文章目录一、实验名称二、实验目的三、实验原理四、实验要求五、实验步骤六、实验结果七、课后思考题 一、实验名称 网络基础实验 二、实验目的 1.通过本实验,掌握双绞线制作的基本原理和方法以及双绞线的测试和...
  • 一、wireshark抓包原理

    千次阅读 2020-12-25 14:10:29
    一、什么样的“”能够被wireshark抓住? 1、本机 说明:即直接抓取进出本机网卡的流量。这种情况下,wireshark会绑定本机的一块网卡。 2、集线器 说明:用于抓取流量泛洪,冲突域内的数据包,即整个局域网的...
  • 计算机网络实验利用wireshark抓包工具抓包计算机网络实验【利用wireshark抓包工具抓包】一、实验名称使用网络协议分析仪 Wireshark二、实验目的1、掌握安装和配置网络协议分析仪Wireshark的方法;2、 熟悉使用...
  • 文章目录前言一、什么是SMTP协议和POP3协议二、具体步骤1.SMTP2.POP3总结 前言 其实这是这学期网络课设的一小部分实验报告,算的做的比较全面一点,干脆整理发出来。反正也没啥人看,就当记录了,不然万一报告文本...
  • 浙江大学城市学院实验报告 ...注意: 务请保存好各自的源代码及实验报告文档,已备后用。 请把实验报告和实验项目放在一个文件夹(如实验01...通过使用Wireshark分析网络协议。 了解钉钉软件中认证、聊天、文件传输协议。
  • 一、抓包通过Wireshark这个抓包工具演示下正常能抓到tcp三次握手,能看到的内容是不是和上篇文章tcp三次握手中用图画出来的内容是一样的呢?现在就抓个包详细得讲解下。先选择我上网的网卡,然后点击这个蓝色的小...
  • Wireshark抓包分析TCP的三次握手

    千次阅读 2021-11-15 17:18:22
    二、抓包过程 我们以访问网站:fanyi-pro.baidu.com为例,在Edge下使用开发工具查看网络对应的IP: 得到网站对应的IP为:180.101.49.50 端口号为80 在过滤器中输入过滤表达式: ip.addr==180.101.49.58&&tcp.port=...
  • [实战]前端wireshark抓包协议解密

    千次阅读 2021-11-12 19:09:59
    前端wireshark抓包协议解密 废话不多说,先看看结果 该JSON文件是通过解密后的 HTTP 返回response结果再解密打开的新页面 有兴趣的小伙伴了解下之前的文章 Sha384解密[2] 打开Wireshark 将TCP 转码为RTP ,因为该...
  • 前言“哈?啥是大白鲨?”咳咳,主要是因为网络分析工具Wireshark的图标特别像大白鲨顶部的角。不信你看:Wireshark“为什么拖了怎么久才发文?”为了让大家更容易「看得见」 ...
  • 可以使用Wireshark抓包软件验证一下,还是以www.baidu.com域名来做实验,我们先看一下该域名对应的IP是啥,直接在命令窗口ping一下,就可以知道了,其IPv4地址是14.215.177.38 通过Wireshark分析域名解析网络传输 ...
  • 使用wireshark抓包并分析TCP三次握手

    千次阅读 2022-05-17 10:55:23
    ②启动Wireshark软件,点击开始抓包后。在浏览器地址输入https://www.baidu.com/ ③在Wireshark软件中使用过滤器,添加本机IP地址和TCP协议过滤条件 2、开始实验 ①获取IP双方IP地址(便于过滤) 获取本机IP地址 ...
  • 上期的结尾我们用wireshark抓包看了一下vrrp的协议报文,好多小伙伴对wireshark抓包很感兴趣,那今天我们就来聊聊wireshark wireshark的下载与安装 wireshark是一款免费的数据包分析软件,可以通过Wireshark · ...
  • (1)了解并熟悉常见的抓包工具,例如Wireshark、Sniffer等,熟悉以太网数据帧和IP数据包的结构; (2)能够正确捕捉ping命令执行过程中所产生的数据包,并逐层分析其构成,进而了解数据包的封装与
  • Wireshark抓包分析交换机工作原理

    千次阅读 2020-04-15 14:38:26
    实验名称】 交换机工作原理 【实验目的】 1、熟悉Linux虚拟网络环境; 2、熟悉Linux中network namespace的...5、熟悉Linux中网络分析软件Wireshark的基本操作; 6、观察交换机(Bridge)的工作过程,分析并掌...
  • wireshark抓包分析FTP

    千次阅读 2019-11-06 18:29:19
    首先找到网上一个公用的ftp地址进行抓包测试,这里采用地址(瑞典Umeå universitet于默奥大学公共FTP服务器):ftp://ftp.acc.umu.se/ 打开wireshark,条件过滤:ip.addr==194.71.11.173 首先包28,35,36 tcp...
  • Wireshark数据抓包分析之UDP协议

    千次阅读 2022-02-17 16:37:17
    什么是UDP协议3.UDP协议的特点实验目的实验环境实验步骤一1.配置TCP&UDP测试工具2.配置服务器端3.配置客户端4.获取UDP数据包实验步骤二1.UDP首部格式2.分析UDP数据包 预备知识 1.UDP协议概述 UDP是User Datagram...
  • 使用wireshark抓包软件分析微信协议--zucc

    万次阅读 多人点赞 2019-06-07 21:11:56
    因为csdn自动压缩了上传的图片,导致看到的图片不太精确,稍后将发布可以下载的文档说明 下载地址,可以看到超清的图片,请自行下载 ...使用mac进行wireshark抓包,并选择使用客户端微信,同时...
  • 【计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议】 (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号; Destination Port:16bit目的端口,数据接收方的端口号; Sequence Number:32...
  • 实验Wireshark使用一、实验目的1、熟悉并掌握Wireshark的基本使用;2、了解网络协议实体间进行交互以及报文交换的情况。 二、实验环境与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。 三...
  • Wireshark数据抓包分析之ARP协议

    千次阅读 2022-02-10 16:42:40
    目录预备知识1、知识储备2、什么是ARP3、ARP工作流程4、ARP缓存表实验目的实验环境实验步骤实验步骤实验步骤三 预备知识 1、知识储备 推荐两本好书: 《TCP/IP详解卷1》...
  • Wireshark:网络抓包工具,Winhex:十六进制编辑器。 实验原理 运用Wireshark软件,设置过滤器,以捕获本台主机与服务器之间通信的数据包。分析Wireshark捕获的数据包。由于一些服务没有对用户名、口令和
  • DApp区块链 | wireshark抓包

    万次阅读 2021-11-02 23:09:47
    目录需求方法步骤安装wireshark安装npcap笔记计算机网络wireshark 需求 抓取并过滤dapp流量 方法 软件:wireshark 环境:Dapp连本地Ganache端口,用Metamask连测试网络Ropsten,根据ip地址 (localhost) 和端口 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,387
精华内容 954
热门标签
关键字:

wireshark抓包实验步骤

友情链接: javaTCPIP.zip