Wireshark 抓包分析计算机网络各层协议 您所在的位置:网站首页 网络协议层级包括什么 Wireshark 抓包分析计算机网络各层协议

Wireshark 抓包分析计算机网络各层协议

2024-07-04 01:16| 来源: 网络整理| 查看: 265

Wireshark 抓包分析计算机网络各层协议 一、Wireshark 抓包实操(1)数据链路层1.1 实作一: 熟悉 Ethernet 帧结构1.2 实作二:了解子网内/外通信时的 MAC 地址1.3 实作三:掌握 ARP 解析过程 (2)网络层2.1 实作一:熟悉 IP 包结构2.2 实作二:IP 包的分段与重组2.3 实作三:考察 TTL 事件 (3)传输层3.1 实作一:熟悉 TCP 和 UDP 段结构3.2 实作二:分析 TCP 建立和释放连接 (4)应用层4.1 实作一:了解 DNS 解析4.2 实作二:了解 HTTP 的请求和应答 二、参考文献

一、Wireshark 抓包实操 (1)数据链路层 1.1 实作一: 熟悉 Ethernet 帧结构 使用 Wireshark 任意进行抓包,熟悉 Ethernet 帧的结构,如:目的 MAC、源 MAC、类型、字段等 在这里插入图片描述

分析:上图为我任意抓取的一个包,可以看见Ethernet帧结构中的源MAC、目的MAC、类型等等信息。校验和会由网卡计算,这时,wireshark抓到的本机发送的数据包和校验和都是错误的,所以默认关闭了wireshark自己的校验和,所以可以看见字段中没有校验字段。

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

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

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

再次 ping www.cqjtu.edu.cn (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 icmp 过滤),记录一下发出帧的目的 MAC 地址以及返回帧的源 MAC 地址又是多少?这个 MAC 地址又是谁的? 在这里插入图片描述 分析:可以发现Ping子网外的主机不能ping成功,在包中以太网帧格式中很容易找到源MAC和目的MAC

1.3 实作三:掌握 ARP 解析过程 为防止干扰,先使用 arp -d * 命令清空 arp 缓存ping 你旁边的计算机(同一子网),同时用 Wireshark 抓这些包(可 arp 过滤),查看 ARP 请求的格式以及请求的内容,注意观察该请求的目的 MAC 地址是什么。再查看一下该请求的回应,注意观察该回应的源 MAC 和目的 MAC 地址是什么。 在这里插入图片描述 分析:可以看出,请求的目的 MAC 地址ff:ff:ff:ff:ff:ff即广播地址,该请求的回应的源 MAC是被访问主机的MAC地址,目的 MAC 地址是本地主机的MAC地址再次使用 arp -d * 命令清空 arp 缓存然后 ping qige.io (或者本子网外的主机都可以),同时用 Wireshark 抓这些包(可 arp 过滤)。查看这次 ARP 请求的是什么,注意观察该请求是谁在回应 在这里插入图片描述 分析:目的Mac是该网关的路由器,源Mac是自己 (2)网络层 2.1 实作一:熟悉 IP 包结构 使用 Wireshark 任意进行抓包(可用 ip 过滤),熟悉 IP 包的结构,如:版本、头部长度、总长度、TTL、协议类型等字段 在这里插入图片描述

分析:上图是一个IP包头部的信息,版本为IPV4、头部长度20字节(5行)、原地址和目的地址等信息

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

在 IP 包头中有一个 TTL 字段用来限定该包可以在 Internet上传输多少跳(hops),一般该值设置为 64、128等。

在验证性实验部分我们使用了 tracert 命令进行路由追踪。其原理是主动设置 IP 包的 TTL 值,从 1 开始逐渐增加,直至到达最终目的主机。

请使用 tracert www.baidu.com命令进行追踪,此时使用 Wireshark 抓包(用 icmp 过滤),分析每个发送包的 TTL 是如何进行改变的,从而理解路由追踪原理 在这里插入图片描述 在这里插入图片描述

分析:IP 包的 TTL 值从 1 开始逐渐增加,直至到达最终目的主机,可以看见中间进过了11个路由器节点,当成功到达主机后主机会响应表示达到该主机

(3)传输层 3.1 实作一:熟悉 TCP 和 UDP 段结构

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

用 Wireshark 任意抓包(可用 udp 过滤),熟悉 UDP 段的结构,如:源端口、目的端口、长度等 在这里插入图片描述

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

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

请在你捕获的包中找到三次握手建立连接的包,并说明为何它们是用于建立连接的,有什么特征。 在这里插入图片描述

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

在这里插入图片描述 分析:在找到三次连接之后,要等一会在停止捕获, 否则可能我们的连接还没释放,抓不到连接释放的包。

(4)应用层 4.1 实作一:了解 DNS 解析 先使用ipconfig /flushdns 命令清除缓存,再使用 nslookup qige.io 命令进行解析,同时用 Wireshark 任意抓包(可用 dns 过滤)你应该可以看到当前计算机使用 UDP,向默认的 DNS 服务器的 53 号端口发出了查询请求,而 DNS 服务器的 53 号端口返回了结果。可了解一下 DNS 查询和应答的相关字段的含义 在这里插入图片描述虽然DNS请求超时,但是抓包后的确可以看见DNS 服务器的 53 号端口返回了结果 在这里插入图片描述

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(域名不存在)

4.2 实作二:了解 HTTP 的请求和应答 打开浏览器访问 qige.io 网站,用 Wireshark 抓包(可用http 过滤再加上 Follow TCP Stream),不要立即停止 Wireshark 捕获,待页面显示完毕后再多等一段时间以将释放连接的包捕获。请在你捕获的包中找到 HTTP 请求包,查看请求使用的什么命令,如:GET, POST。并仔细了解请求的头部有哪些字段及其意义。请在你捕获的包中找到 HTTP 应答包,查看应答的代码是什么,如:200, 304, 404 等。并仔细了解应答的头部有哪些字段及其意义。 在这里插入图片描述 在这里插入图片描述

-常见HTTP 应答包,查看应答的代码是什么,如:200, 304, 404

200 - 服务器成功返回网页 304(未修改)自从上次请求后,请求的网页未修改过 404 - 请求的网页不存在 500(服务器内部错误)服务器遇到错误,无法完成请求

二、参考文献

[1]计算机网络实验教程-棋歌教学网



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有