计算机网络实验2——利用Wireshark对上网操作抓包并进行相关协议分析(实验部分)

news2024/11/6 7:13:59

五、实验过程

1.安装并启动Wireshark。

选择菜单栏上捕获->选项,勾选WLAN网卡。点击Start,进行抓包

 Wireshark处于抓包状态中

  2.打开浏览器,在地址栏中输入教师指定的web服务器地址。(http://202.113.78.39)

为了确保连通性,先ping一下服务器  打开cmd  Ping  202.113.78.39 

网址登录失败。更换网址,进行实验 Ping image.baidu.com

ping百度网址以获得百度ip来对抓包进行限制

 

3. 打开153.3.237.235页面,鼠标右键单击看到的照片,将图片另存为到本地

打开 http://153.3.237.235界面

打开一张图片,将图片另存为到本地。

鼠标单击照片,待页面改变后,关闭浏览器,停止Wireshark抓包

4.所抓到数据包的种类如下:

TCP,HTTP,HTTP/JSON, TLSv1.2,TLVd1.3,DNS,MDNS,NBNS,SSL,UDP,IGMPv2,ARP,ICMPv6,

5.列表写出客户端、网关、web 服务器的 IP 地址和 MAC 地址。HTTP 客户端和服务器段的端口号

cmd  ipconfigz  找到客户端IP的地址和网关

 根据客户端IP的地址和网关,在Wireshark中找到相对应的MAC地址和HTTP 客户端和服务器段的端口号

 

Client

Gateway

Server

IP

192.168.0.199

192.168.0.1

153.3.238.102

MAC

ec:63:d7:d7:7c:74

50:0f:f5:34:b0:e0

50:0f:f5:34:b0:e0

Port#

49961

------------------------

443

6. 将TCP、IP、HTTP 和 Ethernet 的首部字段的名字和值按照协议的格式分别记录下来

访问指定服务器的第一个 HTTP 请求报文格式:

 

请求行

GET/HTTP/1.1\r\n

首部行

Host

153.3.237.235\r\n

Connection

keep-alive\r\n

Upgrade-Insecure-Requests:

1\r\n

User-Agent:

 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Edg/114.0.1823.67\r\n

Accept

text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7\r\n

Accept-Encoding

 gzip, deflate\r\n

Accept-Language

:

zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6\r\n

服务器返回的第二个 HTTP 响应报文格式:

状态行

HTTP/1.1 200 OK\r\n

首部行

Response Version

HTTP/1.1

Status Code

200

Response Phrase

:

OK

Access-Control-Allow-Credentials

:

true\r\n

Access-Control-Allow-Origin:

:

https://m.baidu.com,https://www.baidu.com,http://m.baidu.com,http://www.baidu.com\r\n

Connection

:

keep-alive\r\n

Content-Encoding

:

gzip\r\n

Content-Type

:

 text/html; charset=UTF-8\r\n

Date

:

Thu, 12 Oct 2023 15:14:33 GMT\r\n

 任意一个UDP报文首部:

 

源端口号49668

目的端口号8000

UDP长度514

UDP检验和0xc7c5

 与服务器建立连接的第二次握手的 TCP 报文格式:

源端口:80

目的端口:49989

序号:0

确认号:16

数据偏移:0

保留:000

URG:0

ACK:1

PSH:0

RST:0

SYN:1

FIN:0

窗口:8192

校验和:0x71ca

填充:0

浏览器跳转到第二个Web页面的IP包首部: 

版本:4

头部长度:20 bytes

服务类型:0x00

总长度:52

标识符:0x0000

标志:0x2

片位移:0

存活时间:53

上层协议:TCP

报头校验和:0xbd04

源IP地址:157.148.41.188

目的IP地址:192.168.0.199

 任意802.3帧头 

50:0f:f5:34:b0:e0

ec:63:d7:d7:7c:74

0800

--------------

------------

 7.在Wireshark界面上,设置抓包后的过滤条件只显示IP地址包括web服务器地址的包(筛选格式类似“ip.addr eq 202.113.78.39”)

筛选条件为:

 筛选结果为:

8. 在 Wireshark 界面上分别圈出 TCP 建立连接和释放连接的数据包。(抓图展示)

建立连接过程为:

 释放连接过程为:

1

2

 3

4

 9.在 Wireshark 界面上圈出你的主机如何找到 Web 服务器的 MAC 地址(ARP 协议)或者 IP 地址(DNS 协议)

10. 依据实际抓到的数据包,截图并圈出 TCP 顺序号和确认号的使用方法及变化规律。 

Wireshark 中默认使用的是相对顺序号,本步骤中选择 Wireshark 菜单栏中

的 Edit -> Preferences ->protocols ->TCP,去掉 Relative sequence number 后面

勾选框中的√。

去掉前

 去掉后

规律:Wireshark通常显示的都是相对序列号/确认号,而不是实际序列号/确认号,相对序列号/确认号是和TCP会话的初始序列号相关联的。在实际中,比起真实序列号/确认号,跟踪更小的相对序列号/确认号会相对容易一些

11.在所抓到的各种类型数据包中,在Wireshark的主界面上是以下底纹标注

12. 尝试使用 Statistics 菜单中“IO graph”、“HTTP”、“Protocol Hierarchy” 等功能,并记录结果

  1. IO graph

统计->I/O图表

显示过滤器的配置:在Display filter项内输入需要配置的显示过滤器(不配置显示过滤器就是显示所有的数据包),然后勾选上前面的对勾就可显示图表 

IO Graphs应用

1)测量设备之间的吞吐量:

显示过滤器:ip.addr eq153. and ip addr eq 192.168.0.199

 

2) 可将数据复制到excel表格,再利用excel进行绘图

HTTP统计信息

1)分组计数器

2)请求:主机请求访问Web站点的分布情况,以及所访问的Web站点的具体资源。

 

3)负载分配:HTTP数据包(请求和响应)访问过哪些站点。

 4)请求序列

5)协议分级

 6)端点

此工具用来观察第二、三、四层端点(Ethernet端点、IP端点、TCP/UDP端点)有关的统计信息。 

15. 找到全部 HTTP 的请求消息并截图。(过滤条件类似“http.request and ip.addr eq 202.113.78.39”)

过滤条件:

过滤结果: 

16. 找到全部源 IP 地址为指定 web 服务器地址的 HTTP 响应消息并截图

17. 查看你访问指定 Web 服务器 HTTP 会话的工作过程。将结果截图,并对前 10 个包进行详细分析。

统计->流量图

 限制显示过滤器,TCP

每行代表一个单独的TCP包,左边列显示时间,中间列显示包的方向、TCP端口、段长度和设置的标志位,右边列以10进制的方式显示相关序列号/确认号。我们可以利用这个流图更好的理解序列号和确认号是如何工作的。序列号为当前端成功发送的数据位数,确认号为当前端成功接收的数据位数,SYN标志位和FIN标志位也要占1位

包1:TCP会话的每一端的序列号都从0开始,同样的,确认号也从0开始,因为此时通话还未开始,没有通话的另一端需要确认

包2:同包1

包3:服务端响应客户端的请求,响应中附带序列号0和相对确认号1(表明服务端收到了客户端发送的包1中的SYN)

包4:同包3

包5:客户端使用确认号1响应服务端的序列号0,同时响应中也包含了客户端自己的序列号(由于服务端发送的包中确认收到了客户端发送的SYN,故客户端的序列号由0变为1)此时,通信的两端的序列号都为1,通信两端的序列号增1发生在所有TCP会话的建立过程中 

包6:同包5

包7:第一个携带有效数据的包(即客户端发送的HTTP请求),序列号和确认号保持1不变,因为客户端没有从服务端接收到任何数据,包中有效数据的长度为482字节

包8:当上层处理HTTP请求时,服务端发送该包来确认客户端在包7中发来的数据,确认号的值增加了482(482是包7中有效数据长度),变为483。服务端告知客户端总共收到了482字节的数据.服务端的序列号保持为1不变

包9:标志着服务端返回HTTP响应的开始,该包带有1400字节的有效数据

包10:同包9

18. 使用Follow TCP Stream功能,将下载的文件从收到的HTTP响应消息数据包中恢复出来

Http 进行过滤

 

 上传文件提交可以使用post一个表单的形式

19.回答下列问题

1)简述访问 web 页面的过程

  1. 输入URL
  2. DNS域名进行解析,解析出网站的IP地址
  3. 客户端与服务器建立TCP连接
  4. 客户端发送HTTP请求
  5. 服务器进行响应,将内容发给客户端
  6. 释放TCP连接

 2)找出 DNS 解析请求、应答相关分组,传输层使用了何种协议,端口号是多少?所请求域名的 IP 地址是什么? 

DNS请求分组:基于UDP的传输协议,源端口号是57931,目的端口号是53,所请求IP地址:111.206.209.249

DNS应答分组:源端口号是53,目的端口号是57931

3) 针对 TCP 连接,该 TCP 连接的四元组是什么?双方协商的起始序号是什么?TCP 连接建立的过程中,第三次握手是否带有数据?是否消耗了一个序号?

四元组为:    源IP地址: ;源端口号: ;

目的IP地址: ;目的端口号: ;

双方协商的起始序号是0;

第三次握手后,seq和ack都为1.第三次报文没有消耗序号,没有带数据

4) 找到 TCP 连接的释放过程,绘出 TCP 连接释放的完整过程,注明每个 TCP 报文段的序号、确认号、以及 FIN\ACK 的设置。

第一个TCP报文段:seq=2497, ack=6147, FIN:set, ACK:set

第二个TCP报文段:seq=6147, ack=2498, FIN:not set, ACK:set

第三个TCP报文段:seq=6178, ack=2498, FIN:set, ACK:set

第四个TCP报文段:seq=2498, ack=6178, FIN:not set, ACK:set

5)针对 TCP 连接释放,请问释放请求由服务器还是客户发起?FIN 报文段是否携带数据,是否消耗一个序号?FIN 报文段的序号是什么?为什么是这个值?

释放请求是服务端发起的;

FIN报文段不携带数据,消耗一个序号;

FIN报文段的序号是6147,此报文前的一个报文确认号为2498,是前一个传送数据最后一个字节的序号

6)在该 TCP 连接的数据传输过程中,找出每一个 ACK 报文段与相应数据报文段的对应关系,计算这些数据报文段的往返时延 RTT(即 RTT 样本值)。

报文段往返时间RTT 新的RTTs=(1-a)*(旧的RTTs)+a*(新的RTT样本值)

新的RTTD=(1-b)*(旧的RTTD) +b*|RTTs-新的RTT样本|

7)请描述 HTTP 协议的持续连接的两种工作方式。访问这些页面(同一网站的不同页面)的过程中,采用了哪种方式

  1. 流水线方式:客户在收到 HTTP 的响应报文之前就能接着发送新的请求报文;
  2. 非流水线方式:客户在收到前一个响应后才能发出下一个请求;

采用的是流水线方式

六、结论与分析

遇到的问题1:

Ping  202.113.78.39   出现数据包100%丢失

Ping出网络丢包原因: 

  • 物理线路故障
  • 设备故障
  • 网络拥塞

于是,更换网址,重新进行实验  Ping image.baidu.com  

遇到的问题2:Wireshark界面中不显示IP协议

原因:tcp报文正是基于ip协议的,tcp是传输层协议,而ip是它底下的网络层协议

遇到的问题3:显示各种类型数据包在Wireshark的主界面底纹标注颜色

解决方法:与其他同学探讨,发现更简便的方法

视图->着色规则

遇到的问题4:在大量数据中,TCP的三次握手和四次挥手较为难找

解决方法:借助流量图等功能帮助寻找

遇到的问题5:无法成功恢复下载的文件

原因:对Follow TCP Stream功能了解不够深入

目前待解决

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于微信小程序的健康管理系统(源码+定制+文档)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL69

脉冲同步器(快到慢) 描述 sig_a 是 clka(300M)时钟域的一个单时钟脉冲信号(高电平持续一个时钟clka周期),请设计脉冲同步电路,将sig_a信号同步到时钟域 clkb(100M&…

VMware ESXi 6.7U3u macOS Unlocker 集成驱动版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 6.7U3u macOS Unlocker & OEM BIOS 2.7 集成 Realtek 网卡驱动和 NVMe 驱动 (集成驱动版) UI fix 此版本解决的问题:VMware Host Client 无法将现有虚拟磁盘 (VMDK) 附加到虚拟机 请访问原文链接:https://sysin.org/blog/vmware-esxi-…

基于springboot的数据库原理教学案例案例库管理系统

目录 毕设制作流程功能和技术介绍系统实现截图开发核心技术介绍:使用说明开发步骤编译运行代码执行流程核心代码部分展示可行性分析软件测试详细视频演示源码获取 毕设制作流程 (1)与指导老师确定系统主要功能; (2&am…

tftp传文件被服务器拒绝进入tftp: server error: (768) Access to staonline.pcap denied

环境:测试一个ac下挂ap,ap下的抓包文件传出时,出现问题: ac的wan口ip是192.168.186.167/24,gw是192.168.186.1,下挂ap的ip是192.168.202.199/24,ac上开子接口192.168.202.1/24,ac上开…

【MySQL】数据目录迁移

一、使用场景 使用该方法一般是数据目录所在磁盘不支持扩展,只能通过新加磁盘来扩展数据目录磁盘空间。通常是Windows服务器,或者是Linux服务器的mysql数据目录的磁盘没有使用lvm。 二、准备工作 1. 新磁盘初始化,达到可使用状态 2. 需要自己…

鸿蒙NEXT开发-自定义构建函数(基于最新api12稳定版)

注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…

lambda表达式底层实现

一、lambda 代码 & 反编译 原始Java代码 假设我们有以下简单的Java程序,它使用Lambda表达式来遍历并打印一个字符串列表: import java.util.Arrays; import java.util.List;public class LambdaExample {public static void main(String[] args) {…

解决磁盘负载不均——ElasticSearch 分片分配和路由设置

ES 分片分配(Shard Allocation)时间点: 初始恢复(Initial Recovery)副本分配(Replica Allocation)重平衡(Rebalance)节点添加或移除 小结: 准备移除节点时&a…

Flask-2

文章目录 请求全局钩子[hook]异常抛出和捕获异常abort 主动抛出HTTP异常errorhandler 捕获错误 context请求上下文(request context)应用上下文(application context)current_appg变量 两者区别: 终端脚本命令flask1.0的终端命令使用自定义终端命令 flask2.0的终端命…

25中国烟草校园招聘面试问题总结 烟草面试全流程及面试攻略

开头附上工作招聘面试必备问题噢~~包括综合面试题、无领导小组面试题资源文件免费!全文干货。 工作招聘无领导小组面试全攻略最常见面试题(第一部分)共有17章可用于国企私企合资企业工作招聘面试面试必备心得面试总结资源-CSDN文库https://d…

.NET CORE程序发布IIS后报错误 500.19

发布IIS后浏览时报错误500.19,同时配置文件web.config的路径中也存在问号“?”。 可能原因:没有安装运行时

树和二叉树知识点大全及相关题目练习【数据结构】

树和二叉树 要注意树和二叉树是两个完全不同的结构、概念,它们之间不存在包含之类的关系 树的定义 树(Tree)是n(n≥0)个结点的有限集,它或为空树(n 0);或为非空树&a…

WPF 设计属性 设计页面时实时显示 页面涉及集合时不显示处理 设计页面时显示集合样式 显示ItemSource TabControl等集合样式

WPF 设计属性 设计页面时实时显示 页面涉及集合时不显示处理 设计页面时显示集合样式 显示ItemSource TabControl等集合样式 1、设计显示属性 1、设计时显示属性依赖以下属性 xmlns:d"http://schemas.microsoft.com/expression/blend/2008"2、在运行时不显示设计属性…

健康生活,从日常细节开始

健康生活,从日常细节开始 在快节奏的现代生活中,健康养生似乎成了一种奢侈的追求。但殊不知,真正的养生之道,往往就蕴含在我们日常的点点滴滴之中。今天,就让我们一起探讨几个简单却极易被忽视的健康生活小贴士&#…

828华为云征文|华为云 Flexus X 实例初体验

一直想有自己的一款的服务器,为了更好的进行家庭娱乐,甚至偶尔可以满足个人搭建开发环境的需求,直到接触到了华为云 Flexus X 云服务器。Flexus 云服务器 X 实例是面向中小企业和开发者打造的轻量级云服务器。提供快速应用部署和简易的管理能…

Electrodoc 5.2 专业电工工具集合,支持多种计算器和资料查询!

ElectroDroid Pro 是一款专业的电工工具集合应用,支持多种计算器和资料查询功能。包括功率计算器、分贝转换器、频率转换器、模数转换器等。还提供了端口引脚定义、资料查询等功能,支持 EIA 标准电阻系列。使用方法如下:1. 下载并安装 Electr…

达梦8-数据守护集群主备故障实验和脑裂处理

实验1:将内网断开,查看主备库状态,并测试数据同步情况 测试环境 ##主库信息 内网IP-[MAL_HOST 192.168.50.100] 外网IP-[MAL_INST_HOST 192.168.101.11] 主库实例名-[DM01] ##备库信息 内网IP-[MAL_HOST 192.168.50.110] 外网IP-[MAL_INS…

如何在C语言中实现Doris异步执行Insert语句

如何在C语言中实现Doris异步执行Insert语句 Doris(原名Apache Doris)是一个现代化的MPP(Massively Parallel Processing)分析型数据库,适用于超大规模数据的实时查询和分析。为了在C语言中实现向Doris数据库异步插入数据,我们需要解决以下几个关键问题: 设置Doris客户端…

认识动态规划算法和实践(java)

前言 动态规划算法里面最有意思的一个东西之一。动态规划初学肯定会有一定晦涩难懂。如果我们去网上搜索,动态规划的资料,它一开始都是将很多的理论,导致会认为很难,但是这个东西实际上是有套路的。 动态规划的英语是Dynamic Pr…