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

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

相关文章

干货!这份伦敦银操指南请收好

伦敦银要操得好,投资者要有纯熟的看k线技巧,找到走势图中的支撑和主力地位是很重要的一环。通常当银价1小时、4小时、日线图出现比较大的阳线,那么大阳线的底部、顶部和中部,都是比较有效的支撑,当中又以日线尤为重要。…

无人机的视频图传技术

在操控无人机时,视频图传技术显得尤为关键。通过这项技术,无人机的摄像头所捕捉的画面能实时回传至遥控器,使操作者全面掌握无人机的拍摄情况。同时,无人机图传技术也是衡量无人机性能的重要标准,它关乎飞行距离与时间…

【selenium】三大切换 iframe 弹窗alert 句柄window 和 鼠标操作

目录 一、iframe 1、切换方式: 1、第一种情况: 2、第二种情况: 方式1: 先找到iframe,定位iframe元素(可以通过元素定位的各种方式:xpath,css等等),用对象接收&…

C++ 模板(初阶)

目录 本节目标 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 本节目标 1. 泛型编程 2. 函数模板 3. 类模板 1. 泛型编程 如何实现一个…

32单片机基础:OLED调试工具的使用

下面会介绍OLED显示屏的驱动函数模块,先学会如何使用,至于OLED屏幕的原理和代码编写, 我们之后会再写一篇。 现在我们就是用OLED当一个调试的显示屏,方便我们调试程序。 为什么要调试呢,是为了方便我们看现象&#…

《图解设计模式》笔记(二)交给子类

三、Template Method模式:将具体处理交给子类 示例程序类图 public static void main(String[] args) {// 生成一个持有H的CharDisplay类的实例AbstractDisplay d1 new CharDisplay(H);// 生成一个持有"Hello, world."的StringDisplay类的实例AbstractD…

电脑黑屏什么都不显示怎么办 电脑开机黑屏不显示任何东西的4种解决办法

相信有很多网友都有经历电脑开机黑屏不显示任何东西,找了很多方法都没处理好,其实关于这个的问题,首先还是要了解清楚开机黑屏的原因,才能够对症下药,下面大家可以跟小编一起来看看怎么解决吧 电脑开机黑屏不显示任何…

离散数学(一) 集合

属于关系 表示 枚举法; 叙述法; 文氏图法 基数 空集 全集 全集是相对唯一的

PyTorch深度学习实战(37)——CycleGAN详解与实现

PyTorch深度学习实战(37)——CycleGAN详解与实现 0. 前言1. CycleGAN 基本原理2. CycleGAN 模型分析3. 实现 CycleGAN小结系列链接 0. 前言 CycleGAN 是一种用于图像转换的生成对抗网络(Generative Adversarial Network, GAN),可以在不需要配…

春节复工之后怎么做才可以快速出单

尽管近年来,许多人认为外贸市场形势严峻,不少业务员都面临着业绩下滑、客户流失、市场萎缩等困境。 然而,我却没有受到太大的影响,反而提前五个月就完成了去年的年度目标。前段时间,我计算了自己入职现公司两年左右的…

05.STLvector、list、stack、queue

STL标准模板库 standard template library STL将原来常用的容器和操作进行封装,增加了C的编码效率 容器 string #include vector #include list #include stack #include queue #include set #include map #include 迭代器 容器和算法之间的粘合剂&#xff0…

四川尚熠电子商务有限公司电商服务正规吗?

在数字化浪潮中,电子商务已成为推动经济发展的重要力量。四川尚熠电子商务有限公司作为一家专注于抖音电商服务的企业,其正规性自然成为了消费者和合作伙伴关注的焦点。本文将通过对其背景、业务范围、服务流程以及用户反馈等方面的深入分析,…