计算机网络实验(二):Wireshark网络协议分析
一、实验名称:Wireshark网络协议分析
二、实验原理
HTTP协议分析
1.超文本传输协议(Hypertext Transfer Protocol, HTTP)是万维网(World Wide Web)的传输机制,允许浏览器通过连接Web服务器浏览网页。目前在大多数组织中,HTTP流量在网络中所占的比率是最高的。每一次使用Google搜索、连接Twitter、发一条微博,或者在ESPN上查看肯塔基大学的篮球比分,你都会用到 HTTP。我们不会去看HTTP传输的数据包结构,因为有着不同目的的数据包的内容差别会很大。这里,我们来看 HTTP的实际应用。
2.HTTP浏览:HTTP常被用来浏览Web服务器上使用浏览器访问的网页。
3.HTTP的工作方式并不复杂,先由客户端向服务器发起一个请求,再由服务器回复一个响应。根据不同需要,客户端发送的请求会用到不同的方法,由GET、POST、PUT和HEAD等,比如在网站上登录账号时就可能用到POST方法。
DNS协议分析
1. DNS查询:客户端向DNS服务器发送一个查询,服务器在响应中提供所请求的信息。
2.DNS区域传送:出于冗余备份的需要,在两台设备之间传送区域数据。
3.DNS递归:由于互联网的DNS结构是层级式的,因此为了能够回答客户端提交的查询,DNS服务器必须能够彼此通信。我们的内部DNS服务器知道本地局域网服务器的名字和IP地址的映射,但不太可能知道Google或者Dell的IP地址。当DNS服务器需要查找一个IP地址时,它会代表发出请求的客户端向另一个DNS服务器进行查询。实际上,这个DNS服务器与客户端的行为相同。这个过程叫作递归查询。
DHCP协议分析
1.DHCP 是一个应用层协议,负责让设备能够自动获取 IP 地址(以及其他重要 的网络资源,比如 DNS 服务器和路由网关的地址)。今天大多数的 DHCP 服务器 都向客户端提供其他的一些参数,比如网络上的默认网关和 DNS 服务器的地址。
2.DHCP续租过程:发现、提供、请求、确认。通过数据包可以查看到DHCP续租过程的工作流程。
3.DHCP v6的SARR过程:发起,公告,请求,回复。通过数据包可以查看到此过程服务器与客户端通信的具体流程和信息。
DHCPv6和DHCP的数据包结构有很大区别,但是在功能实现思路上是一致的。这个过程仍然包括DHCP服务器发现步骤和正式的配置信息获取步骤。这些事件通过客户端和服务器之间交互数据包中的事务ID进行关联。传统的DHCP机制不支持IPv6地址分配,因此,如果你的设备能够从网络中的某个服务器自动获取IPv6地址,则这表明你的网络中已经在运行DHCPv6服务。如果你想要进一步比较DHCP和DHCPv6,我们建议使用抓包工具在客户端和服务器端逐步进行分析。
三、实验目的
HTTP协议分析
目的1:理解高层协议HTTP的数据包分析
DNS协议分析
目的1:理解高层协议DNS的数据包分析
DHCP协议分析
目的1:理解高层协议DHCP的数据包分析
四、实验内容:
HTTP协议分析
对C:\数据包\ppa3ecaptures_updated\ppa3ecaptures下的数据包进行分析:
- 分析捕获文件http_google.pcap,了解HTTP的浏览过程。
- http_post.pcap文件分析,了解HTTP传送数据。
DNS协议分析
对C:\数据包\ppa3ecaptures_updated\ppa3ecaptures下的数据包进行分析:
- 分析捕获文件dns_query_response.pcap,对DNS查询过程进行进一步认识;
- 分析数据包dns_recursivequery_client.pcap,了解DNS递归过程;
- 分析dns_axfr.pcap数据包,了解DNS区域传送过程。
DHCP协议分析
对C:\数据包\ppa3ecaptures_updated\ppa3ecaptures下的数据包进行分析:
- 分析dhcp_nolease_initialization.pcapng数据包,对DHCP续租过程进行理解。
- 分析dhcp6outlease acquisition.pcapng数据包,对DHCP v6的SARR过程进行分析了解。
五、实验步骤:
HTTP协议分析
DNS协议分析
DHCP协议分析
六、实验数据及结果分析:
实验数据
1. 背景和目的明确:实验文档和操作视频指导中明确了实验的背景和目的,即使用Wireshark软件对虚拟机内存储的数据包进行分析。
2. 截图一致:所捕获的截图数据与实验文档中的案例一致,成功地复现了实验中的情景,保证了数据的准确性。
3. 结果与预期相符:实验数据处于正常区间范围,实验结果与预期结果相符,没有出现异常情况。
4. 网络协议解析:成功使用Wireshark软件对数据包进行了解读和分析,包括识别不同的网络协议、分析数据包的源和目标地址、端口号等关键信息。
结果分析
1. HTTP网络协议分析与解读:成功分析和解读了HTTP网络协议,包括对HTTP请求和应答行为的理解。
2. DNS网络协议分析与解读:完成了对DNS网络协议的分析与解读,包括了DNS查询和响应的解析。
3. DHCP网络协议分析与解读:成功分析和解读了DHCP网络协议,包括DHCP请求和分配IP地址的过程。
4. 实验数据正常范围:实验数据处于正常范围内,实验操作没有出现异常情况,数据符合预期。
七、实验结论:
1. 了解与熟悉Wireshark:
在本次实验中,我们着重对Wireshark网络数据包分析软件进行了解与熟悉。
包括掌握Wireshark软件的基本功能和操作界面。
2. 掌握Wireshark各种操作:
我们通过实验进一步掌握了Wireshark软件中的各种操作方法。
这些操作方法涵盖了捕获、解析和分析网络数据包的技能。
3. 使用Wireshark工具:
在实验中,我们将Wireshark作为工具,用它来进行网络数据包的分析。
4. 读取虚拟机中的数据包:
我们使用Wireshark成功读取了虚拟机中的数据包。
这意味着我们能够分析虚拟机中的网络流量,进一步了解网络协议的工作方式。
5. 对网络协议内容进行读取与分析:
通过Wireshark,我们能够对网络协议内容进行读取和分析。
包括识别不同的网络协议、分析数据包的源和目标地址、端口号等关键信息。
八、总结及心得体会:
在本次计算机网络实验中,我们通过使用Wireshark网络数据包分析软件,深入了解了HTTP、DNS和DHCP等网络协议的工作原理和数据包结构。以下是我们的四点总结和心得:
1、Wireshark的应用:本次实验让我们更加熟悉了Wireshark这一强大的网络分析工具。Wireshark能够捕获和解析网络数据包,帮助我们深入理解网络通信过程。
2、HTTP协议分析:我们成功分析了HTTP协议,包括HTTP请求和应答的过程。这有助于我们理解Web浏览和数据传输是如何在HTTP协议下进行的。
3、DNS协议分析:通过分析DNS协议,我们了解了DNS查询、递归查询和区域传送等不同方面。
4、DHCP协议分析:我们深入研究了DHCP协议和DHCPv6协议,包括续租过程和SARR过程。这让我们理解了如何自动获取IP地址和其他网络资源。
相关文章:

计算机网络实验(二):Wireshark网络协议分析
一、实验名称:Wireshark网络协议分析 二、实验原理 HTTP协议分析 1.超文本传输协议(Hypertext Transfer Protocol, HTTP)是万维网(World Wide Web)的传输机制,允许浏览器通过连接Web服务器浏览网页。目…...

Spark内核解析-数据存储5(六)
1、Spark的数据存储 Spark计算速度远胜于Hadoop的原因之一就在于中间结果是缓存在内存而不是直接写入到disk,本文尝试分析Spark中存储子系统的构成,并以数据写入和数据读取为例,讲述清楚存储子系统中各部件的交互关系。 1.1存储子系统概览 …...

ASP.NET Core高级之认证与授权(一)--JWT入门-颁发、验证令牌
阅读本文你的收获 了解认证和授权的作用了解在ASP.NET Core中实现身份认证的技术都有哪些学习基于JWT认证并学会颁发和验证JWT令牌 一、重要的前置概念 在一个系统中,不是所有的功能和资源都能够被自由地访问,比如你存在银行系统里面的资金,…...

实例:NodeJS 操作 Kafka
本人是C#出身的程序员,c#很简单就能实现,有需要的可以加我私聊。但是就目前流行的开发语言,尤其是面向web方向应用的,我感觉就是Nodejs最简单了。下面介绍: 本文将会介绍在windows环境下启动Kafka,并通过n…...

AI实景无人直播创业项目:开启自动直播新时代,一部手机即可实现增长
在当今社会,直播已经成为了人们日常生活中不可或缺的一部分。无论是商家推广产品、明星互动粉丝还是普通人分享生活,直播已经渗透到了各行各业。然而,传统直播方式存在着一些不足之处,如需现场主持人操作、高昂的费用等。近年来&a…...

YOLOv5改进 | 损失函数篇 | InnerIoU、InnerSIoU、InnerWIoU、FocusIoU等损失函数
一、本文介绍 本文给大家带来的是YOLOv5最新改进,为大家带来最近新提出的InnerIoU的内容同时用Inner的思想结合SIoU、WIoU、GIoU、DIoU、EIOU、CIoU等损失函数,形成 InnerIoU、InnerSIoU、InnerWIoU等新版本损失函数,同时还结合了Focus和AIpha思想,形成的新的损失函数,其…...

构建高效PythonWeb:GraphQL+Sanic
1.1 简介:在当今快速发展的技术时代,Web应用的性能和灵活性变得越来越重要。在众多技术中,GraphQL和Sanic以其独特的优势脱颖而出。GraphQL,作为一个强大的数据查询语言,为前端和后端之间的通信提供了极大的灵活性。而…...
【通义千问】大模型Qwen GitHub开源工程学习笔记(5)-- 模型的微调【全参数微调】【LoRA方法】【Q-LoRA方法】
摘要: 训练数据的准备 你需要将所有样本放到一个列表中并存入json文件中。每个样本对应一个字典,包含id和conversation,其中后者为一个列表。示例如下所示: [{"id": "identity_0","conversations": [{"from": "user",…...

PCL 大地坐标转空间直角坐标(C++详细过程版)
目录 一、算法原理二、代码实现三、结果展示四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT生成的文章。 一、算法原理 二、代码实现 头文件及读取保存函数见:PCL 空间直角坐标转大地坐标(直接求解法C…...

Linux之Shell编程
shell是什么 shell是一个命令行解释器,他为用户提供一个向linux内核发送请求以便运行程序的界面系统级程序,用户可以用shell来启动,挂起,停止甚至编写一些程序。 shell脚本的执行方式 脚本格式要求 脚本以#!/bin/bash开头脚本需…...

Unity组件开发--传送点
本组件仅实现A传送点到B传送的功能,是可以双向传送的,如果只要单向传送,可以另外改脚本实现; 先看效果: unity组件传送点演示 1.传送组件shader是怎么写的:这种效果的实现方案 shader编辑器是这样的&#…...

vue结合Cesium加载gltf模型
Cesium支持什么格式? Cesium支持的格式包括:3D模型格式(如COLLADA、gITF、OBJ)、影像格式(如JPEG、PNG、GeoTIFF)、地形格式(如STL、Heightmap)、矢量数据格式(如GeoJSON…...

逆置算法和数组循环移动算法
元素逆置 概述:其实就是将 第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,依次到中间位置。用途:可用于数组的移动,字符串反转,链表反转操作,栈和队列反转等操作。 逆置图解 …...
【MATLAB】数豆子
Matlab数豆子 创建一个变量来表示豆子的数量。例如,可以使用豆子数量 100;来表示有100颗豆子。 使用disp函数打印出豆子的数量。例如,可以使用disp([目前有 num2str(豆子数量) 颗豆子])来打印出当前豆子的数量。 进行豆子的计数操作。例如,…...
QT C++中调用python脚本时,import第三方库失败问题解决
QT C中调用python脚本时,import第三方库失败问题解决 文章目录 QT C中调用python脚本时,import第三方库失败问题解决前言一、问题复现二、调试过程三、问题解决1 numpy问题解决2 matplotlib问题解决 四、补充说明五、参考资料 前言 项目需要,…...

【AI视野·今日Robot 机器人论文速览 第七十期】Thu, 4 Jan 2024
AI视野今日CS.Robotics 机器人学论文速览 Thu, 4 Jan 2024 Totally 17 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Many-Objective-Optimized Semi-Automated Robotic Disassembly Sequences Authors Takuya Kiyokawa, Kensuke Harada, Weiwei …...
Flutter中的布局组件介绍及使用
1. 引言 Flutter 是一款由 Google 开发的开源 UI 软件开发工具,可用于在单个代码库中构建漂亮、本机编译的应用程序。在 Flutter 中,布局是构建用户界面的核心部分之一。本文将介绍 Flutter 中的全部布局组件,以及它们的使用方式。 2. 基础…...

【面试高频算法解析】算法练习2 回溯(Backtracking)
前言 本专栏旨在通过分类学习算法,使您能够牢固掌握不同算法的理论要点。通过策略性地练习精选的经典题目,帮助您深度理解每种算法,避免出现刷了很多算法题,还是一知半解的状态 专栏导航 二分查找回溯(Backtracking&…...

认识Git
🌎初识Git 初识Git 什么是Git Git的安装 Centos平台安装Git Ubuntu平台安装Git Git的基本操作 创建远程仓库 配置Git 认识工作区、暂存区与版本库 添加文件到暂存区 将暂存区文件提交至本…...
@RequestParam,@RequestBody和@PathVariable 区别
RequestParam,RequestBody和PathVariable 这三者是spring常见的接受前端数据的注解,那么他们分别是接受什么的前端数据呢? RequestParam:这个注解主要用于处理请求参数,尤其是GET请求中的查询参数和表单参数。它可以用…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...