玩转网络抓包利器:Wireshark常用协议分析讲解

Wireshark是一个开源的网络协议分析工具,它能够捕获和分析网络数据包,并以用户友好的方式呈现这些数据包的内容。Wireshark 被广泛应用于网络故障排查、安全审计、教育及软件开发等领域。关于该工具的安装请参考之前的文章:地址 ,接下来开始正式讲解其实用技巧。

目录

ARP协议分析

ICMP协议分析

TCP协议分析

HTTP协议分析


ARP协议分析

ARP(Address Resolution Protocol),也叫地址解析协议,是一种用于将网络层地址(如IP地址)转换为数据链路层地址(如MAC地址)的协议。根据IP地址获取物理地址的一个TCP/IP协议。

接下来我们使用wireshark来抓取一下arp的包,这里我们使用cmd去ping一下百度的包进行尝试:

然后我们通过显示过滤器来检索一下arp的包处理进行查看:

我们点击数据包查看具体的信息,其展示的具体数据含义如下:

Ethernet II, Src: 源mac地址  Dst: 目标mac地址

Address Resolution Protocol (request):发送request请求包

Hardware type: Ethernet (1):硬件类型

Protocol type: IPv4 (0x0800):网络层协议类型

Hardware size: 6:mac地址长度

Protocol size: 4:协议长度

Opcode: request (1):请求

Sender MAC address: XiaomiMobile_df:5e:6a (88:c3:97:df:5e:6a):路由物理地址

Sender IP address: 192.168.31.1:网关发送者IP

Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00):目标mac地址

Target IP address: 192.168.31.8:目标ip

Address Resolution Protocol (reply):接收reply响应请求包

Opcode: reply(2):响应

Sender MAC address: Intel_3f:4a:d5 (d4:e9:8a:3f:4a:d5):发送者的MAC地址

Sender IP address: 192.168.31.8:发送者的IP地址

总的来说,ARP协议是用于将网络层地址转换为数据链路层地址的重要协议,它使得主机和路由器能够正确地通信,并且对于构建局域网等小型网络非常重要。

ICMP协议分析

ICMP(Internet Control Message Protocol),也称互联网控制消息协议,是用于在IP网络上发送控制消息的协议。它通常被用于诊断网络问题、报告错误和提供状态信息。

icmp协议一般是我们在发送ping的请求会产生,所有这里我们使用cmd去ping一下本地电脑的网关进行尝试:

接下来我们选择其中一条数据,对该数据包中的数据进行一个简单的解读:

Frame 33:物理层相关基础信息

Ethernet II:链路层相关基础信息

Internet Protocol Version:基于ip协议的相关基础信息

Internet Control Message Protocol:ICMP相关数据描述

Type: 8 (Echo (ping) request):发的请求包

Code:0:代表响应,发送成功

Checksum: 0x4cb3 [correct]:检查发送网关的数据是否被篡改过,校验完整性

[Checksum Status: Good] Identifier (BE): 1 (0x0001):校验结果未Good,表示没有问题

Identifier (LE): 256 (0x0100):表示标识符的值, 用于区分不同的数据包或会话。

Sequence Number (BE): 168 (0x00a8):表示序列号的值,用于按顺序排列和跟踪数据包的传输顺序。

Sequence Number (LE): 43008 (0xa800):表示序列号的值,序列号用于按顺序排列和跟踪数据包的传输顺序。

[Response frame: 34]:表示一个响应帧是对先前发送的请求帧的回应。

Data:具体发给网关的数据包,是一个加密的数据

总的来说,ICMP 是一种网络协议,用于在 IP 网络上传输控制消息,以确保网络的正常运行并提供诊断和错误报告功能。

TCP协议分析

TCP(Transmission Control Protocol),也称传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层协议。它在计算机网络中扮演着至关重要的角色,用于确保数据的可靠传输。

握手和挥手过程是 TCP 协议中重要的步骤,用于建立和断开连接。通过三次握手,客户端和服务器建立起可靠的连接;通过四次挥手,双方安全地关闭连接,确保数据的可靠传输和连接资源的释放。以下对tcp的三次握手四次挥手做一个简要的概述:

三次握手:是建立 TCP 连接时使用的一种协议,用于确保通信双方能够正常交换数据。下面是 TCP 三次握手的流程:

第一步客户端向服务端发送连接请求(SYN)

客户端(Client)首先向服务端(Server)发送一个带有 SYN(同步序列编号)标志的数据包,表示客户端想要建立连接,并选择一个初始的序列号(Sequence Number)。

第二步服务端收到连接请求并回复(SYN + ACK)

服务端收到客户端发送的 SYN 数据包后,会回复一个带有 SYN 和 ACK 标志的数据包,表示服务端已经接受了客户端的连接请求,并选择自己的初始序列号,同时确认客户端的序列号。

第三步客户端收到服务端的回复并发送确认(ACK)

最后,客户端再次向服务端发送一个带有 ACK 标志的数据包,表示客户端也确认了服务端的序列号。

完成了以上三个步骤,TCP 连接就建立起来了,通信双方可以开始正常地进行数据传输。

总的来说,TCP 三次握手协议确保了通信双方都能够正确地同步序列号,并确认彼此的能力和意愿进行数据传输,从而建立起可靠的连接。以下是具体流程图的实现:

如下是tcp建议三次握手的流程,其他具体参数的含义大家自行去了解,这里不再赘述:

四次挥手:在TCP连接中,当一端决定关闭连接时,需要经过四个步骤来完成连接的断开。下面是 TCP 四次挥手的流程:

第一步:当客户端决定关闭连接时,会发送一个 FIN(结束)报文段给服务器,表示不再发送数据。客户端进入 FIN_WAIT_1 状态。

第二步:服务器收到客户端的 FIN 报文段后,会发送一个 ACK 报文段作为确认,表示已经收到了客户端的关闭请求。服务器进入 CLOSE_WAIT 状态。

第三步:如果服务器也希望关闭连接,它会发送一个 FIN 报文段给客户端,表示自己也准备关闭连接。服务器进入 LAST_ACK 状态。

第四步:客户端收到服务器的 FIN 报文段后,会发送一个 ACK 报文段作为确认,并进入 TIME_WAIT 状态。在经过一段时间后,客户端关闭连接,服务器也关闭连接,双方完成挥手,进入 CLOSED 状态。

四次挥手确保了双方在关闭连接时的可靠性和顺利性,同时允许双方在关闭前完成未完成的数据传输。这一过程是TCP连接的正常断开流程,以确保数据的完整性和连接资源的释放。以下是具体流程图的实现:

这里我们可以通过流量图的方式查看,点击统计流量图

选择tcp

查看tcp四次挥手的流程如下:

HTTP协议分析

HTTP(HyperText Transfer Protocol),是一种用于传输超文本的应用层协议。它是一种无状态的协议,通常基于客户端-服务器模型,在Web浏览器和Web服务器之间传输数据。其底层也是用到了tcp协议,所有来说相对简单一点。

接下来我们通过cmd终端命令请求一下百度,并抓取一下网络的包,如下:

接下来我们开始分析一下数据包:

然后我们建议对请求成功的数据进行数据流追踪:

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

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

相关文章

CVE-2024-0918 TEW-800MB RCE漏洞分析

漏洞描述 固件版本为1.0.1.0的TEW-800MB路由器存在命令注入漏洞。如果攻击者获得了web管理权限,他们可以将命令注入到httpd未知函数中的post请求参数DeviceURL中,从而获得shell权限。。 参考链接 TEW-800MB (notion.site)https://warp-desk-89d.notio…

【嵌入式学习】QT-Day2-Qt基础

1> 思维导图 https://lingjun.life/wiki/EmbeddedNote/20QT 2>登录界面优化 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中&#xff…

LWM(LargeWorldModel)大世界模型-可文字可图片可视频-多模态LargeWorld-详细安装记录

说明 Large World Model(LWM)是一个通用的大环境多模态自回归模型,它利用了一个技术名为RingAttention,通过在大型的多样化视频和图书数据集上的训练,实现了对语言、图像和视频的理解与生成能力。 在github上已有4.2k…

Spring Boot与Netty:构建高性能的网络应用

点击下载《Spring Boot与Netty:构建高性能的网络应用》 1. 前言 本文将详细探讨如何在Spring Boot应用中集成Netty,以构建高性能的网络应用。我们将首先了解Netty的原理和优势,然后介绍如何在Spring Boot项目中集成Netty,包括详…

JAVA高并发——单例模式和不变模式

文章目录 1、探讨单例模式2、不变模式 由于并行程序设计比串行程序设计复杂得多,因此我强烈建议大家了解一些常见的设计方法。就好像练习武术,一招一式都是要经过学习的。如果自己胡乱打,效果不见得好。前人会总结一些武术套路,对…

体验LobeChat搭建私人聊天应用

LobeChat是什么 LobeChat 是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。支持一键免费部署私人 ChatGPT/LLM 网页应用程序。 地址:https://github.com/lobehub/lobe-chat 为什么要用Lobe…

OpenAI Sora引领AI跳舞视频新浪潮:字节跳动发布创新舞蹈视频生成框架

OpenAI的Sora已经引起广泛关注,预计今年AI跳舞视频将在抖音平台上大放异彩。下面将为您详细介绍一款字节跳动发布的AI视频动画框架。 技术定位:这款框架采用先进的diffusion技术,专注于生成人类舞蹈视频。它不仅能够实现人体动作和表情的迁移…

2.21学习总结

1.【模板】ST 表 2.Balanced Lineup G 3.景区导游 4.最近公共祖先(LCA) 倍增思想:主要用于LCA问题,RMQ问题。在进行 递推 时,如果 状态空间很大,通常的 线性递推 无法满足 时间 与 空间复杂度 的要求&…

Chrome浏览器安装Axure-Chrome-Extension插件

Chrome浏览器打开Axure生成的HTML静态文件页面时,会显示如下图AXURE RP EXTENSION FOR CHROME,这是因为Chrome浏览器没有安装Axure插件Axure-Chrome-Extension导致的。 解决方法: 插件下载地址:https://download.csdn.net/downlo…

通过盲注脚本复习sqllabs第46关order by 注入

在MySQL支持使用ORDER BY语句对查询结果集进行排序处理,使用ORDER BY语句不仅支持对单列数据的排序,还支持对数据表中多列数据的排序。语法格式如下 select * from 表名 order by 列名(或者数字) asc;升序(默认升序) select * from 表名 or…

交换瓶子【第七届】【省赛】【A组】

题目描述 有N个瓶子,编号 1 ~ N,放在架子上。 比如有5个瓶子: 2 1 3 5 4 要求每次拿起2个瓶子,交换它们的位置。 经过若干次后,使得瓶子的序号为: 1 2 3 4 5 对于这么简单的情况,显然&#…

Java练习(第3天)使用StringJoiner类进行字符串连接

一、问题描述 给定2个或多个字符串,将其连接成为一个字符串,并输出连接后字符串的长度。字符串之间用逗号或引号分隔。 样例输入1: Ram Shyam 样例输出1: Ram,Shyam 9 样例输入2(要求接在输出1之后):…

C#_索引器

索引器的作用:令对象可像数组一般被索引 索引器 internal class TestClass {public int[] arr { 1, 2, 3, 4, 5 };public string this[int index] // 前者为返回类型,后者为索引类型// 返回类型代表get函数的返回值类型、set函数的value类型&#xff0…

(done) 什么是正定矩阵?Positive Definite Matrices

正定矩阵的定义:https://baike.baidu.com/item/%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/11030459 正定矩阵的作用、验证视频:https://www.bilibili.com/video/BV1Ag411M76G/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c…

下一代自动化爬虫神器--playwright,所见即所得,不用逆向不要太香!!!

文章目录 1.Playwright介绍2.与 Selenium 和 pyppeteer 相比,Playwright 具有以下几个区别和优势3.在爬虫中使用 Playwright 的好处4.环境安装5.屏幕录制6.保留记录cookie信息7.playwright代码编写详解1.第一个Playwright脚本(1)同步模式&…

【鼎捷数字化生意经】总说数字化转型?!怎么做才能带来远超你的想象的经济效益呢?他们来告诉你!

编者按: 转型一直在提,2018—2023年,实现数字化转型的企业仅占中国企业的10%,其中实现领军重塑的企业仅占2%。数据看起来并没有那么乐观! 新竞争格局下,企业需要直面挑战,定义新前沿&#xff0…

C++动态分配内存知识点!

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 大家好呀,又是分享干货的时间,今天我们来学习一下动态分配内存。 文章目录 1.动态分配内存的思想 2.动态分配内存的概念 2.1内存分配函数 2.2动态内存的申请和释放 2.3内存碎片问…

⭐北邮复试刷题LCR 018. 验证回文串__双指针 (力扣119经典题变种挑战)

LCR 018. 验证回文串 给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,将空字符串定义为有效的 回文串 。 示例 1: 输入: s “A man, a plan, a canal: Panama” 输出: true 解释…

如何选择护眼台灯?孩子学习必选五大宝藏台灯推荐!

因为护眼台灯能提供充足明亮的光照,以及很好的保护眼睛预防近视效果,所以现在的儿童青少年书桌上都会有一盏护眼台灯。但是也有很多家长为孩子选择护眼台灯后,反馈护眼台灯的质量参差不齐,很难避免会购买到劣质产品,这…

2023年12月 Python(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 下面代码的输出结果是?( ) dict1 = {1: 10, 2: 20, 3: 30} dict2 <