【计算机网络】WireShark和简单http抓包实验

一:实验目的

1:熟悉WireShark的安装流程和界面操作流程。

2:学会简单http的抓取和过滤,并分析导出结果。

二:实验仪器设备及软件

硬件: Windows 2019操作系统的计算机等。

软件:WireShark、记事本等。

三:实验方案

首先打开WireShark软件,进入外网捕获界面,启动捕获。

然后通过浏览器进入http:// gaia.cs.umass.edu这个域名地址,在html页面中进行多次点击和跳转操作。

最后在WireShark中停止捕获,保存捕获到的报文,并以http条件进行筛选,查看所有与http协议有关的报文内容,回答相应的问题。

四:实验步骤

1)  打开浏览器。

2)  打开 WireShark 并且在捕获选项选择合适的网卡。

3)  开始进行抓包操作,并且在浏览器中打开示例网页。

4)  停止抓包并且分析抓包结果。

5)  在过滤器选择 http 过滤,并且查看过滤结果。

五:实验结果及分析

1列出在协议列中出现的 3 种不同的协议。

第1种:HTTP,如下图所示。

第2种:TCP,如下图所示。

第3种:ARP,如下图所示。

2:从发送 HTTP GET 消息到收到 HTTP OK 回复需要多长时间?

发送GET / HTTP/1.1消息到收到HTTP/1.1 200 OK的过程,如下图所示。

由此可知,其时间间隔为159.562172 - 159.335411 = 0.226761秒。

3:gaia.cs.umass.edu(也称为 wwwnet.cs.umass.edu)的互联网地址是什么? 您的计算机的 Internet 地址是什么?

由下图可知,目的IP地址为128.119.245.12,对应gaia.cs.umass.edu的互联网地址。

源IP地址为192.168.0.108,对应本地计算机的互联网地址。

通过ping方式,验证该域名地址,如下图所示。

4:你的浏览器是否运行 HTTP 版本 1.0 或 1.1?服务器运行的是什么版本的HTTP?

由下图可知,在POST报文中,Request Version是1.1,因此浏览器运行HTTP版本1.1。

由下图可知,在回复报文中,Response Version是1.1,因此服务器运行HTTP版本1.1。

5:你的浏览器接收哪些语言?

浏览器接收标记语言HTML。如下图所示,可以看到content-type为html。

浏览器接收数据格式语言JSON。如下图所示,可以看到content-type为json。

浏览器接收标记语言XML。如下图所示,可以看到content-type为xml。

6:从服务器返回到浏览器的状态代码是什么?

    【1】成功状态码。如下图所示,服务器返回到浏览器的状态代码是200 OK,表示请求成功,服务器已成功处理请求。

【2】重定向状态码。如下图所示,服务器返回到浏览器的状态代码是301 Moved Permanently,表示请求的资源已被永久移动到新位置。

【3】客户端错误状态码。如下图所示,服务器返回到浏览器的状态代码是404 Not Found,表示请求的资源在服务器上找不到。

7:在服务器上最后修改的 HTML 文件是什么时候?

由下图可知,Last-Modified是2016年3月1日,表示在服务器上最后修改的 HTML 文件的时间。

8:浏览器返回了多少 bytes 的内容?

由下图可知,浏览器返回了2651字节的内容。

9:是否在 HTTP GET 中看到“IF-MODIFIED-SINCE”行?

是。如下图所示,出现了If-Modified-Since: Tue, 01 Mar 2016 18:57:50 GMT。

在HTTP GET请求中,If-Modified-Since是一种请求头字段,用于告诉服务器只有在请求的资源自指定日期和时间之后已被修改时,才返回该资源。这是浏览器和服务器之间的一种缓存协商机制,用于优化网络带宽和提高加载速度。

10:多个响应HTTP GET,服务器返回的 HTTP 状态代码和短语分别是什么?为什么不同?304 Not Modified什么意思?

多个HTTP GET的返回状态代码和短语,如下图所示。可以看到有200 OK、301 Moved Permanently、404 Not Found。

HTTP状态代码不同是因为它们表示不同类型的响应,反映了服务器对请求资源的处理结果。

304 Not Modified 状态码的含义是服务器告知客户端,请求的资源自上次请求以来没有被修改,因此客户端可以继续使用其缓存的版本,而无需重新下载。

11:对物理层的数据帧进行解析。

一个示例的物理层的数据帧,如下图所示。

可以看到,该数据帧的编号是42544,帧的总长度为486字节(3888比特),实际捕获的帧长度也为486字节(3888比特)。

捕获数据的网络接口的ID为0号,接口名称为\Device\NPF_{60116A39-C338-4C66-A5CF-5BBC6E88B657},接口描述为外网。

数据帧使用以太网封装类型。同时展示了到达时间、UTC到达时间等内容。

此数据包的时间偏移是0秒,与上一个捕获帧之间的时间差是0.00046秒,与上一个显示帧之间的时间差是63.029081秒,自参考帧或第一个帧以来的时间是159.335411秒。

该帧未被标记,且未被忽略。该帧中包含的协议列表,从最低层到最高层依次为:eth以太网、ethertype以太网类型字段、ip互联网协议、tcp传输控制协议、http超文本传输协议。用于该帧的着色规则名称是HTTP。用于该帧的着色规则字符串为http || tcp.port == 80 || http2。http:该帧包含HTTP协议的数据。tcp.port == 80:该帧的TCP端口是80,通常用于HTTP流量。http2:该帧包含HTTP/2协议的数据。

12:启动WireShark,自行设置过滤条件,重做实验一,观察能否抓到数据并进行分析。

能抓到数据,如下图所示。

如下图所示,源地址fe80::cc2a:d980:500d正在与目的地址fe80::dda:3845:7b8f:dbed进行大量的数据传输。在传输较大数据块的过程中,使用分段传输技术(Segmented Transmission)将数据分成多个TCP段,每个段都有一个序列号和确认号。

如下图所示,前面TCP的内容与上图类似。最后一个报文表示从源地址 fe80::dda:3845:7b8f:dbed 到目的地址 fe80::cc2a:d980:500d 的SMB2写入响应报文。SMB2协议通常用于文件共享和网络通信,这个写入响应报文表示文件写入操作已完成。

六:实验总结及体会

1:从服务器返回到浏览器的状态代码(HTTP状态码)用于指示HTTP请求的结果。这些状态代码由三位数字组成,每个数字有特定的含义。

2:常见的状态代码类别如下:

【1】1xx(信息性状态码):

  1. 100 Continue:继续发送请求的剩余部分。
  2. 101 Switching Protocols:服务器将遵从客户的请求转换到另外一种协议。

【2】2xx(成功状态码):

  1. 200 OK:请求成功,服务器已成功处理请求。
  2. 201 Created:请求成功且资源已被创建。
  3. 204 No Content:请求成功,但没有返回内容。

【3】3xx(重定向状态码):

  1. 301 Moved Permanently:请求的资源已被永久移动到新位置。
  2. 302 Found:请求的资源临时从不同的URI响应请求。
  3. 304 Not Modified:资源未被修改,客户端可以继续使用缓存的版本。

【4】4xx(客户端错误状态码):

  1. 400 Bad Request:请求无效或有语法错误。
  2. 401 Unauthorized:请求要求身份验证。
  3. 403 Forbidden:服务器理解请求但拒绝执行。
  4. 404 Not Found:请求的资源在服务器上找不到。

【5】5xx(服务器错误状态码):

  1. 500 Internal Server Error:服务器遇到未预料的情况,无法完成请求。
  2. 501 Not Implemented:服务器不支持请求的功能。
  3. 502 Bad Gateway:服务器作为网关或代理,从上游服务器收到无效响应。
  4. 503 Service Unavailable:服务器暂时无法处理请求,可能是由于过载或维护。

3:Server Hello 是 TLS 握手过程中的一个重要步骤。在这个阶段,服务器向客户端发送一个“Hello”消息,其中包含了服务器选择的加密算法、会话ID、服务器随机数以及服务器的证书等信息。

4:Change Cipher Spec 消息是TLS协议中的一个信号,表明从这条消息之后,双方将使用协商好的加密算法和密钥进行通信。

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

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

相关文章

【算法/训练】:动态规划(线性DP)

一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#…

vector清空

https://www.zhihu.com/question/592055868/answer/2967078686

java使用hutool工具检查远程端口是否开启

使用java校验ip地址或域名的端口是否开启 1.导入hutool工具的maven依赖 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>2.复制一下代码案例直接运行 …

前端面试基础题(微信公众号:前端面试成长之路)

BFC、IFC、GFC、FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC。 到底什么是BFC、IFC、GFC和FFC Whats FC&#xff1f; 一定不是KFC&#xff0c;FC的全称是&#xff1a;Formatting Contexts&#xff0c;是W3C CSS2.1规范中的一个概念。它是页面中的一块渲染区域&#xff0c;并…

量度卓越:Mojo模型中自定义评估与模型比较的艺术

量度卓越&#xff1a;Mojo模型中自定义评估与模型比较的艺术 在机器学习项目中&#xff0c;模型评估是衡量算法性能的关键步骤。Mojo模型&#xff0c;作为一个先进的机器学习框架&#xff0c;提供了丰富的工具来支持模型评估和比较。本文将深入探讨如何在Mojo模型中实现自定义…

openj9-17.0.2_8-jre-alpine 和 openjdk:17-alpine 的区别是什么?

openj9-17.0.2_8-jre-alpine 和 openjdk:17-alpine 都是用于运行 Java 应用程序的 Docker 镜像&#xff0c;但它们之间有一些关键的区别&#xff1a; JVM Implementation: openj9-17.0.2_8-jre-alpine 使用的是 Eclipse OpenJ9&#xff0c;这是一种高效、低内存消耗的 JVM 实现…

go-sql-driver/mysql 查询 latin1 中文字符集

select name from table; table是 latin1 编码&#xff0c; 返回后查询结果后&#xff0c;即使将 name 转为 utf-8&#xff0c;日志输出中文仍然乱码。 // 配置数据库连接字符串&#xff0c;确保指定charsetlatin1dsn : "user:passwordtcp(127.0.0.1:3306)/dbname?chars…

免费【2024】springboot 宠物领养救助平台的开发与设计

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

每日一练,java07

目录 题目1.请问运行主要的程序会打印出的是什么&#xff08;&#xff09;2.下面论述正确的是&#xff08;&#xff09;&#xff1f;3.下面哪些Java中的流对象是字节流?4.关于以下代码的说明&#xff0c;正确的是&#xff08; &#xff09;5.若需要定义一个类&#xff0c;下列…

普元EOS学习笔记-EOS项目HTTP访问安全和权限控制

前言 对于企业应用系统&#xff0c;出于安全和权限控制的目的&#xff0c;需要对http请求做若干控制。 比如文件上传的时候要控制不允许上传的文件后缀。 又比如控制应用程序中的哪些资源不允许被访问。 EOS项目通过 xml配置文件来实现这一需求。 Http访问管理模块 在EOS项…

Keepalived、MyCAT 和 MHA这三者之间的区别

最近公司要做主备数据库备份和自动切换&#xff0c;先简单的了解了一下这三者的区别。 要做一个主库宕机之后自动切换备库的功能&#xff0c;但是上网搜索了一下发现有三个中间件都可以解决这个问题。 所以就来说一下这三个的业务场景和区别&#xff0c;以及哪一个更加轻量级 …

Spring JPA不生效

今天排查老半天发现数据源被排除装配了&#xff0c;把这个去掉就行了 SpringBootApplication(exclude DataSourceAutoConfiguration.class)

vue项目的路由如何传参,应用场景

路由传参方法一&#xff1a; params 1. 在路由的配置中 path: url:proid 先在配置中添加 2. 跳转页面的时候携带拼接参数 router.push(url proid) 3. 在进入的页面通过 useRoute 进行接收 4. const route useRoute() 5. console.log(route.params.proid); 路由传参方法二…

DBoW3相关优化脉络

1 DBow3 GitHub - rmsalinas/DBow3: Improved version of DBow2 2 优化后得到fbow GitHub - rmsalinas/fbow: FBOW (Fast Bag of Words) is an extremmely optimized version of the DBow2/DBow3 libraries. 其中fbow是ucoslam的一部分&#xff1b; ucoslam GitHub - la…

【C++版本】protobuf与gRPC

文章目录 一、Protobuf二、安装以及使用protoc参考 一、Protobuf Google Protocol Buffers&#xff08;protobuf&#xff09;是一种语言中立、平台中立的序列化协议&#xff0c;旨在高效地将结构化数据进行序列化和反序列化。它主要用于通信协议、数据存储和其他需要高效编码和…

封装和桥接Unity 协程体系

简介 协程&#xff08;Coroutine&#xff09;在C#中是一种特殊的函数&#xff0c;它允许开发者编写可以暂停执行并在未来某个时刻恢复执行的代码块。协程通常用于实现异步操作&#xff0c;如延时执行、等待某个事件发生、或者分段执行复杂的任务。在Unity游戏引擎中&#xff0c…

(Arxiv-2023)MobileDiffusion:移动设备上即时文本到图像生成

MobileDiffusion&#xff1a;移动设备上即时文本到图像生成 Paper Title&#xff1a;MobileDiffusion: Instant Text-to-Image Generation on Mobile Devices Paper是谷歌出品 Paper地址 图 1&#xff1a;MobileDiffusion 用于 (a) 文本到图像的生成。(b) Canny 边缘到图像、风…

docker容器cuda不可用,怎么解决?

通过Docker 构建的镜像中,启动之后,发现容器内部读取不到显卡驱动nvidia-smi 1、设置 NVIDIA Docker 存储库 distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add

Docker容器基础篇

一.Docker容器简要介绍 Docker 是一个开源项目&#xff0c;旨在提供轻量级的应用容器化解决方案。它允许开发者打包应用及其所有依赖项到一个标准化的单元中&#xff0c;称为容器。这些容器可以在开发人员的工作环境中构建&#xff0c;然后轻松地在不同的计算机、服务器或云平…

Linux更换pip下载镜像源

Windows中修改pip下载源-CSDN博客 本机Linux发行版本: Rocky_linux9.4 方法一&#xff1a; [rootlocalhost ~]# mkdir /root/.pip [rootlocalhost ~]# vim /root/./.pip/pip.conf [global] index-url http://mirrors.aliyun.com/pypi/simple/[install] trusted-hostmirror…