玩转网络抓包利器: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.rhkb.cn/news/261556.html

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

相关文章

K210基础实验——点亮LED灯

一、目的是点亮K210开发板左下角的LED0和LED1,LED0是红灯,LED1是绿灯,两颗LED灯都是低电平点亮,高电平熄灭。 二、这是原理图上的硬件连接,LED0连接的是IO0,LED1连接的是IO17。 三、在src目录下新建文件夹 …

Java SE 入门到精通—基础语法【Java】

敲重点! 本篇讲述了比较重要的基础,是必须要掌握的 1.程序入口 在Java中,main方法是程序的入口点,是JVM(Java虚拟机)执行Java应用程序的起始点。 main方法的方法签名必须遵循下面规范: publ…

js 多对象去重(多属性去重)

需求中发现后端可能没有处理重复数据,这个时候前段可以直接解决。 在 JavaScript 中,可以使用 Set 数据结构来进行多对象的去重。Set 是 ES6 新引入的集合类型,其特点是元素不会重复且无序。 下面是一个示例代码,展示如何通过 S…

js设计模式:计算属性模式

作用: 将对象中的某些值与其他值进行关联,根据其他值来计算该值的结果 vue中的计算属性就是很经典的例子 示例: let nowDate 2023const wjtInfo {brithDate:1995,get age(){return nowDate-this.brithDate}}console.log(wjtInfo.age,wjt年龄)nowDate 1console.log(wjtInf…

stm32——hal库学习笔记(DAC)

这里写目录标题 一、DAC简介(了解)1.1,什么是DAC?1.2,DAC的特性参数1.3,STM32各系列DAC的主要特性 二、DAC工作原理(掌握)2.1,DAC框图简介(F1)2.2…

OJ链接——打印从1到最大的n位数

目录 1. 题目描述2. 示例3. 分析思路4. 完整代码 1. 题目描述 输入数字 n&#xff0c;按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3&#xff0c;则打印出 1、2、3 一直到最大的 3 位数 999。 用返回一个整数列表来代替打印n 为正整数&#xff0c;0 < n < 5 链接在…

服务老是被攻击?

什么防重放攻击&#xff0c;请求体篡改&#xff0c;越权攻击&#xff0c;都整上来了&#xff0c;好嘛&#xff0c;我都不清楚这个项目这半年是怎么度过的。 不知道大家公司对接口安全这块是怎么考量的&#xff0c;但是对于面向公网提供服务的产品来说&#xff0c;这个可以说是很…

贝叶斯统计——入门级笔记

绪论 1.1 引言 全概率公式 贝叶斯公式 三种信息 总体信息 当把样本视为随机变量时&#xff0c;它有概率分布&#xff0c;称为总体分布&#xff0e; 如果我们已经知道总体的分布形式这就给了我们一种信息&#xff0c;称为总体信息 样本信息 从总体中抽取的样本所提供的信息 先…

Redis之缓存击穿问题解决方案

文章目录 一、书接上文二、介绍三、解决方案1. 单例双检锁2. 缓存预热和定时任务 一、书接上文 Redis之缓存雪崩问题解决方案 二、介绍 缓存击穿就是大量并发访问同一个热点数据&#xff0c;一旦这个热点数据缓存失效&#xff0c;则请求压力都来到数据库。 三、解决方案 1…

【推荐】百万级任务重试框架 Fast-Retry

前言 假设你的系统里有100万个用户&#xff0c;然后你要轮询重试的获取每个用户的身份信息, 如果你还在使用SpringRetry和GuavaRetry 之类的这种单任务的同步重试框架&#xff0c;那你可能到猴年马月也处理不完&#xff0c; 即使加再多的机器和线程也是杯水车薪&#xff0c; 而…

linux 修改开发板网卡eth0的ip地址

win10如何新增电脑ip地址&#xff1a; https://blog.csdn.net/linxinfa/article/details/105817473 ifconfig # 可设置网络设备的状态&#xff0c;或是显示目前的设置。 命令详解&#xff1a;https://www.runoob.com/linux/linux-comm-ifconfig.html 一、临时修改 ifconfig e…

逃离互联网,进入体制内,又觉得做的事没有成就感,重新焦虑起来

原文链接&#xff1a; 逃离互联网&#xff0c;进入体制内&#xff0c;又觉得做的事没有成就感&#xff0c;重新焦虑起来 今日热帖&#xff0c;有网友发帖称&#xff1a;原本以为从互联网出来&#xff0c;逃离了加班&#xff0c;KPI&#xff0c;裁员&#xff0c;就可以不那么焦虑…

推荐提高程序员思维水平的一本重量级书籍

《程序员的思维修炼&#xff1a;开发认知潜能的九堂课》 这是一本提高程序员思维水平的书&#xff0c;但不仅仅限于程序员可以从中获得提高。这本书的适合任何级别的程序员&#xff0c;计算机科学学生&#xff0c;团队领导 &#xff0c;和希望自我提升的跨行业人士。总之&#…

为什么我强烈推荐大学生打CTF!

在我的专栏各大CTF平台WP中&#xff0c;我写了很多wp供大家学习 前言 写这个文章是因为我很多粉丝都是学生&#xff0c;经常有人问&#xff1a; 感觉大一第一个学期忙忙碌碌的过去了&#xff0c;啥都会一点&#xff0c;但是自己很难系统的学习到整个知识体系&#xff0c;很迷…

HTML的特殊字符

HTML的特殊字符 有些特殊的字符在 html 文件中是不能直接表示的&#xff0c;例如: 空格&#xff0c;小于号(<)&#xff0c;大于号(>)&#xff0c;按位与(&)。 空格 示例代码&#xff1a; 运行结果&#xff1a; 由于html 标签就是用 < > 表示的&#xff0…

3.网络游戏逆向分析与漏洞攻防-游戏启动流程漏洞-游戏启动流程的分析

内容参考于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;项目搭建 首先下图红框里是游戏启动的程序 游戏启动之后的名字&#xff08;fxgame.exe&#xff09; 一般游戏启动的架构&#xff1a; 第一种&#xff1a;登录器程序启动游戏主程序&#xff0c;然后游…

prometheus基于consul的服务发现

文章目录 一、基础二、安装consul下载地址启动consul访问consul 三、编写服务发现文件nodes.json四、prometheus配置consul发现修改prometheus.yml重启Prometheus 参考 一、基础 二、安装consul 下载地址 https://developer.hashicorp.com/consul/install 启动consul mkdi…

小程序端学习

P2 创建Uni-app 分离窗口 一样的Ctrl S P3 细节知识点 创建新的小程序页面

Web基础②nginx搭建与配置

目录 一.Nginx概述 1.定义 2.Nginx模块作用 &#xff08;1&#xff09;main模块 &#xff08;2&#xff09;stream服务模块 &#xff08;3&#xff09;邮件服务模块 &#xff08;4&#xff09;第三方模块 &#xff08;5&#xff09;events模块 &#xff08;6&#xff…

AWS安全组是什么?有什么用?

最近看到小伙伴在问&#xff0c;AWS安全组是什么&#xff1f;有什么用&#xff1f;今天我们大家就来简单聊聊&#xff0c;仅供参考哦&#xff01; AWS安全组是什么&#xff1f;有什么用&#xff1f; 【回答】&#xff1a;AWS安全组是一种虚拟防火墙&#xff0c;用于控制进出…