计算机网络-应用协议与数据包分析实验(使用Wireshark)

news2024/11/27 14:28:32

实验一.应用协议与数据包分析实验(使用Wireshark)

一.实验目的

        通过本实验,熟练掌握Wireshark的操作和使用,学习对HTTP协议进行分析。

二.实验内容

        学习http协议,使用Wireshark截获http报文,对http请求报文和响应报文进行分析。

三.实验过程

1.截获报文

打开Wireshark开始截获报文,从浏览器访问:http://kczx.hnu.edu.cn/G2S/Template/View.aspx?courseId=1240&topMenuId=137974&action=view&type=&name=&menuType=1(计算机网络课程网站),打开后关闭网页,停止截获报文。此时发现Wireshark中截获了包括TCP,DNS,HTTP等各种协议的报文,找不到访问的网页的HTTP请求报文和响应报文。在截取报文的上方菜单栏有过滤器,可以过滤不同协议的报文,选择HTTP协议进行过滤: 

2.报文分析

(1)问题1

        根据报文格式,以方法(GET)开头的是HTTP请求报文,以HTTP版本(HTTP/1.1)开头的是HTTP响应报文。

(2)问题2

        选取一个请求报文和一个响应报文进行分析:


请求报文: 

       请求行包含了方法,URL和HTTP版本:

       方法:GET

       URL:

/G2S/Template/View.aspx?courseId=1240&topMenuId=137974&action=view&type=&name=&menuType=1

        版本:HTTP/1.1

        首部行包含的信息如下:

        最后一个首部字段经查询是表示客户端优先选择加密及带有身份验证的响应,即会使用https代替http。http协议以明文方式发送内容,不提供任何方式的数据加密,而https经由 HTTP 进行通信,会对数据进行加密。

响应报文:

         状态行包含了协议版本(HTTP/1.1),状态码(200),状态码的解释(OK)。首部行包含的信息如下:

 (3)问题3

        查看所有报文的源端口与目的端口,客户机与服务器共建立了三个连接。客户机使用的三个端口号为:59075,59078,59079,服务器使用的则是熟知端口号80。

(4)问题4

        通过浏览器访问一个网页时,浏览器和服务器的工作过程如下:

① 浏览器分析待访问页面的URL,并向本地DNS 服务器请求IP 。

② DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器。

③ 浏览器与HTTP 服务器通过三次握手建立TCP 连接。

④ 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面。

⑤ 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览器会打开多个端口,与服务器建立多个连接。

⑥ 通过四次挥手释放TCP 连接。

⑦ 浏览器收到页面并显示给用户。

        综合截获的报文进行分析,过滤掉一些报文,对应访问页面时浏览器和服务器的工作过程,对于TCP连接的建立和HTTP的请求与响应如下表,其中只有第一个TCP连接的建立和释放的相关报文填入表中,其他两个连接的建立和释放过程是类似的,没有体现在表中。

        上面只重点列出了一个TCP连接的建立和释放的过程,其他两个连接是类似的,以上报文体现了HTTP的工作过程。有一点与所学习的TCP协议不同的是,最后服务器到客户的连接终止是通过RST报文终止的,而这个报文不会被确认。

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

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

相关文章

【ONE·C++ || 多态】

总言 主要介绍多态相关内容。 文章目录 总言1、多态介绍1.1、多态是什么1.2、构成多态的两个必备条件1.2.1、虚函数介绍1.2.2、基类的指针或者引用调用虚函数1.2.3、演示多态条件的破坏(两个特例说明)1.2.3.1、不符合条件演示1.2.3.2、特例演示 1.3、一…

【高危】Spring Boot在Cloud Foundry中部署存在路由限制绕过风险(CVE-2023-20873)

漏洞描述 Spring Boot是用于构建Java应用程序的框架,Cloud Foundry是用于部署和管理应用程序的云平台,/cloudfoundryapplication也会路由至Spring Boot actuator。 当 Spring Boot 的受影响版本部署在 Cloud Foundry 上且具有处理 /cloudfoundryapplic…

计算机网络-应用层和传输层协议分析实验(PacketTracer)

实验三.应用层和传输层协议分析实验 一.实验目的 通过本实验,熟悉PacketTracer的使用,学习在PacketTracer中仿真分析应用层和传输层协议,进一步加深对协议工作过程的理解。 二.实验内容 从 PC 使用 URL 捕获 Web 请求,运行模拟并…

第06讲:为何各大开源框架专宠 SPI 技术?

在此前的内容中,已经详细介绍了 SkyWalking Agent 用到的多种基础技术,例如,Byte Buddy、Java Agent 以及 OpenTracing 中的核心概念。本课时将深入介绍 SkyWalking Agent 以及 OAP 中都会使用到的 SPI 技术。 JDK SPI 机制 SPI&#xff08…

Oracle-12c版本之后替换OCR磁盘组步骤

背景: 用户有一套Oracle12.2的RAC集群,在安装配置的时候,OCR磁盘只使用了单块磁盘external的模式,想替换成包含三块磁盘组成员normal模式的磁盘组 OCR磁盘组存储的对象: 在替换OCR磁盘之前,我们先确认需要迁移的OCR磁盘组存储的对…

图扑数字孪生助力智慧冷链园区实现大数据实时监控

前言 近年来,业界学者及企业就智慧冷链物流展开深入研究,2010 年 IBM 发布的《智慧的未来供应链》研究报告中提出智慧供应链概念,并由此延伸出智慧物流概念,即智慧物流是以信息化为依托并广泛应用物联网、人工智能、大数据、云计…

设置rocky Linux ip 与主机服务器处于同一网段内,并且能上网

第一步:查找主机服务器的 了解地址信息 第二步,设置rocky Linux 网络适配器连接,选择桥接模式 第三步:设置rocky Linux ip 第四步,设置完,重启Linux ,验证ip是否修改过来,是否在同一…

【python】scikit-learn包:模型评估与优化

模型构建的目的 首先明确,模型拟合的目的: 不是对训练数据进行准确预测,而是对新数据进行准确预测 欠拟合 与 过拟合 欠拟合:可以通过训练数据及时发现,且可通过优化模型结果解决 过拟合:难以发觉&#x…

Golang基础----基于Goland编辑器快速体验Golang

【原文链接】Golang基础----基于Goland编辑器快速体验Golang (1)打开Goland,点击“New Project” (2)设置项目存放位置以及项目名,然后点击“Add SDK”,然后点击“Local” (3&a…

vue3 的router跳转 - 页面同tab跳转和打开新tab跳转

vue3 的router跳转 - 页面同tab跳转和打开新tab跳转 vue3的路由基本知识 当前页需要的方法 主要是获得Vue Router实例暴露的一些方法,使用这些方法,进行路由操作引入 import { useRouter } from vue-router;调用 const router useRouter();目标页需…

Android jetpack Compose之约束布局

概述 我们都知道ConstraintLayout在构建嵌套层级复杂的视图界面时可以有效降低视图树的高度,使视图树扁平化,约束布局在测量布局耗时上比传统的相对布局具有更好的性能,并且约束布局可以根据百分比自适应各种尺寸的终端设备。因为约束布局确…

simulink simscape传感总结

1. 传感模块概述2. 可观测的传感量3. 传感模块3.1 运动传感模块3.1.1 旋转和平移细分旋转平移 3.2 力传感模块3.2.1 关节力和力矩细分 1. 传感模块概述 Simscape提供传感模块,通过改变模型的输入和输出,可以进行许多分析,比如可以进行机械臂…

中移链控制台对接4A平台功能验证介绍

中移链控制台具备单独的注册登录页面,用户可通过页面注册或者用户管理功能模块进行添加用户,通过个人中心功能模块进行用户信息的修改和密码修改等操作,因业务要求,需要对中移链控制台的用户账号进行集中管理,统一由 4…

2 文件IO

2.1 文件描述符 对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开 一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时, 用open或creat返回的文件描述符标识该文件&#xff0…

QT 网络编程之主机信息查询(QHostInfo 和 QNetworkInterface类)简介

Qt 网络模块提供了用于编写 TCP/IP 客户端和服务器端程序的各种类,如用于 TCP 通信的QTcpSocket 和 QTcpServer,用于 UDP 通信的 QUdpSocket,还有用于实现 HTTP、FTP 等普通网络协议的高级类如 QNetworkRequest,QNetworkReply 和Q…

【Redis】Redis中的5种基础数据类型详解

文章目录 1. Redis数据结构2. 基础数据结构详解2.1 String字符串2.2 List列表2.3 Set集合2.4 Hash散列2.5 Zset有序集合 1. Redis数据结构 对于Redis来说,所有的key(键)都是字符串,我们一般所讨论的Redis基础数据类型指的是存储的…

ref在Vue2、Vue3中的使用

文章目录 前言一、ref在Vue2中的用法二、ref在Vue3中的用法 前言 记录一下ref在Vue2与Vue3中的使用,ref可以获取DOM元素,也可以获取子组件的数据、方法。 一、ref在Vue2中的用法 给元素绑定一个ref,然后在js中通过this.$refs获取DOM。 ref命…

@PostConstruct注解和@PreDestroy注解

前言 Bean注解指定初始化和销毁的方法,也介绍了使用InitializingBean和DisposableBean来处理bean的初始化和销毁。JDK中还提供了两个注解能够在bean创建完成并且属性赋值完成之后执行一些初始化工作和在容器销毁bean之前通知我们进行一些清理工作。 1.PostConstru…

java 获取当前线程的方法

我们知道,线程是程序运行的基本单元,是程序中各进程之间通信的桥梁,一个线程的创建和销毁直接影响整个程序的运行效率。 我们在 Java中经常使用 Runnable接口来获取当前线程,获取线程的主要目的就是为了快速地启动进程。但是&…

一键导出ChatGPT聊天记录:让备份更简单

重要性: 备份ChatGPT的聊天记录同样非常重要,因为这些记录可能包含了您与ChatGPT的交互记录,这些记录可能包含了您的个人信息、兴趣爱好、偏好和其他敏感信息。以下是备份ChatGPT聊天记录的一些重要性: 防止数据丢失:…