wireshark抓包工具的使用及分析

前段时间看到群里在讨论Wireshark抓包工具,想写一篇使用笔记但一直没来得及写,本篇就通过实例来分享wireshark抓包工具的使用。

Wireshark简介

Wireshark 是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。

Wireshark下载、安装

下载链接:

https://www.wireshark.org/#download

93d8adc6a4c87f5434c9944a9b864f76.png

官网下载速度较慢,在本公众号聊天界面回复关键字:Wireshark ,获取网盘链接,若链接失效可联系我获取。

安装与一般的PC机软件安装方式一样,按默认方式安装即可。

Wireshark的使用

我们就借助往期文章:C语言、嵌入式应用:TCP通信实例分析的TCP通信的demo来做演示。

实验框图如:

c55dd4f91e80da7f68b261cfac48f85c.png

在本公众号聊天界面回复关键字:Wireshark,获取本次试验代码及工具:

57ee6c8a3d9ced4bcf94db8f50e6565d.png

其中tcp_client为RT-Thread Studio工程,使用RT-Thread Studio工具导入之后,修改WiFi信息与你电脑连接的WiFi一致:

95b6097917f9a15a93c0c954a98ce908.png

编译下载到小熊派开发板即可。

启动Wireshark抓包工具,选择无线网卡:

4b935f151b08760a90cee381028fcb5b.png

输入过滤信息ip.src == xxx.xxx.xxx.xxx or ip.dst == xxx.xxx.xxx.xxx,比如我这边是ip.src == 192.168.1.3 or ip.dst == 192.168.1.3

84b53524e70ed65ccc90b1f35f127d62.png

这样就可以只保留这个IP收发数据,如果不设置过滤信息则显示出来的分组太多了,不便于我们进行分析。

启动小熊派开发板串口终端及网络调试助手,然后互相发送数据:

d9044db33863f30a39e6f65fa575d555.png

此时Wireshark抓包工具抓取到了11条数据包:

730d41d4d05bfc7d0913fecca98e4034.png

通信双方只是互发一条字符串数据而已,怎么会产生11个数据包呢?

这是TCP通信所必须的,除了具体的数据包之外还包括了建立连接、断开连接过程需要的一些数据。

我们都知道TCP是一个可靠的、面向连接的传输层协议它建立连接有三次握手的过程、断开连接有四次挥手的过程:

dbc5a8ec740e897dc59f5121c53b1962.png

fc18845ce66b952ea378229f022ddf2f.png

(图片来源:野火《LWIP应用开发实战指南》)

通俗的理解:

84417a1bba1112d3bd726985a87f9df4.png

bd82fae5c69866fcb74d17e390c965cc.png

具体的握手、挥手过程本篇笔记不再展开,可阅读:【面试必考】TCP协议“三次握手”与“四次挥手”及【socket笔记】TCP、UDP通信总结

我们先来看这11个数据包是怎么划分的。打开Wireshark抓包工具的统计->流量图

174a4adead104575e7c7b6e0d85b041e.png

71e64c3e133ebb16d9fd807098279de5.png

下面,我们以第④个数据包来做具体的分析。在这之前我们先看一个图:

3467a2c7d7c97e2acca69f11a69a47d4.png

(图片来源:野火《LWIP应用开发实战指南》)

从图中我们可以看到,从上到下看,各层数据是添加该层头部信息组成新的数据包,从下到上相反。我们来看我们抓到的数据包:

c2162628eb2bd98d86286422fec1cd1f.png

选中相关信息,最下面的具体的数据同步高亮显示,如:

8ba2187ec5d51f8b455995ac37938965.png

f8577bac9a419cabb1e042bffa573e94.png

c2138a6f8d6268e3ebc652e679317874.png

更具体的每个字节是什么,我们可以再展开:

3cf7ce20d5673143cb21cc3859f6d2b0.png

613fb677021aab1b476671cbfc70df3b.png

至此,我们关于Wireshark抓包工具的基本使用就分享完了,知道了基本的使用及分析方法,我们就可以按照这样的方法去分析其它协议了。以上分享如有错误,欢迎指出,谢谢!

推荐资料:

1、野火《LWIP应用开发实战指南》

2、https://www.rt-thread.org/document/site/tutorial/qemu-network/wireshark/wireshark/

3、https://www.scaugreen.cn/posts/19508/

猜你喜欢

一些不可不知的计算机网络基础

C语言、嵌入式应用:TCP通信实例分析

【socket应用】基于C语言的天气客户端的实现

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

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

相关文章

EventLoop笔记

node环境 Event Loop各阶段: - timers 阶段:这个阶段执行 setTimeout 和 setInterval 的回调函数。- I/O callbacks 阶段:不在 timers 阶段、close callbacks 阶段和 check 阶段这三个阶段执行的回调,都由此阶段负责&#xff0c…

如何实现android和服务器长连接呢?推送消息的原理

转载地址:http://blog.csdn.net/q376420785/article/details/8653958 前言:现在的大多数移动端应用都有实时得到消息的能力,简单来说,有发送消息的主动权和接受消息的被动权。例如:微信,QQ,天气…

linux入门系统那个好,初学Linux哪个发行版本好?这些更合适!

Linux是非常受欢迎的技术,现在很多人都开始转行学习Linux,不过大家都知道Linux发行版本众多,在学习的时候我该选择哪个发行版本呢?为大家介绍一下。其实在挑选Linux发行版本之前,我们首先要根据自己的需求决定。如果抱着试试的心…

git 使用及常用命令介绍

一、git 常用命令 git clone 地址 克隆项目 git status 查看当前状态 git add 文件或文件夹 (加入本地暂存目录) git commit -m "注释" 提交到本地版本库(暂存区) git commit -a -m "注释" 提交全部改动文件 …

asp.net中的记忆盲区

<1> 连接数据库 用read方法取出数据 在web.config取出连接字符串 string sqlconn ConfigurationManager.ConnectionStrings["db_showHouseConnectionString"].ToString(); SqlConnection connnew SqlConnection (sqlconn ); SqlComman…

调试网络收发不通问题

今天在做之前一个项目重构的事情&#xff0c;需要把之前的代码重新做功能&#xff0c;我们有两个设备&#xff0c;他们通过网线连接&#xff0c;用UDP来传输数据。很多人都怀疑UDP丢包什么&#xff0c;不及时什么之类的&#xff0c;如果想把事情做得足够快&#xff0c;最好还是…

VB6.0和VB.Net对照表

想在网上找一下VB.Net中&#xff0c;哪些是VB6.0遗留下来的东西&#xff0c;哪些是VB.Net增加的东西。结果中文的没有找到&#xff0c;找到了一个日文网页。简单的翻译了一下&#xff0c;放在这里&#xff0c;供需要的人参考。 VB6.0和VB.Net的对照表VB6.0VB.NETAddItem Object…

hibernate的初次使用

转载地址&#xff1a;http://blog.csdn.net/aboy123/article/details/10222675 一、Hibernate概述 &#xff08;一&#xff09;什么是Hibernate&#xff1f; hibernate核心内容是ORM&#xff08;关系对象模型&#xff09;。可以将对象自动的生成数据库中的信息&#xff0c;使…

linux 关联数组,linux 普通数组和关联数组

数组&#xff1a;就是借助索引将多个数据存储为一个集合。普通数组&#xff1a;数组的索引只能使用整数关联数组&#xff1a;数组的索引可以使用整数和字符串(要bash4.0以上的版本才支持关联数组)数组通常与循环或者其他判断式交互使用才有比较高的意义普通数组的定义array1(a …

layui之在table的编辑的按钮的思考

点编辑的时候&#xff0c;如果没有在html界面写form&#xff0c;而是在同级目录下写的 修改html的话呢&#xff0c; 就可以在点 编辑 按钮的时候&#xff0c;调用打开tab的方法&#xff0c;把form的html打开&#xff0c;而不用去后台转发转载于:https://www.cnblogs.com/fuckin…

删除rz上传失败乱码的文件

通过rz上传文件失败时&#xff0c;会产生大小为0的乱码的文件&#xff0c;如下 ls -l -rw-r–r– 1 root root 47031 12-15 13:48 ?ղ??.htm 这种类型的文件可用以下命令 find . -maxdepth 1 -size 0 | xargs rm -rf 说明&#xff1a;这种文件大小为0&#xff0c;并且在上…

我用过 | Keil的发展历史

Keil&#xff0c;相信搞嵌入式软硬件开发的读者都不陌生&#xff0c;在全球单片机&#xff08;MCU&#xff09;集成开发环境&#xff08;IDE&#xff09;中&#xff0c;可以说 Keil 占据了半壁江山。Keil 既是一家公司的名称&#xff0c;也是一款 IDE 软件。下面讲述一下 Keil …

C#实现简单WEB服务器

一、HTTP协议的作用原理WWW是以Internet作为传输媒介的一个应用系统&#xff0c;WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型&#xff0c;由Web 浏览器(客户机)和Web服务器(服务器)构成&#xff0c;两者之间采用超文本传送协议&#xff08;HTTP&…

奥鹏C语言专科在线作业答案,电子科大12春《C语言(专科)》在线作业三

《C语言(专科)》在线作业三试卷总分&#xff1a;100 测试时间&#xff1a;-- 试卷得分&#xff1a;100单选题、单选题(共 20 道试题&#xff0c;共 100 分。) 得分&#xff1a;1001. 若有定义&#xff1a;intw[3][5];&#xff0c;则以下不能正确表示该数组元素…

理解Android Binder机制原理

原文地址&#xff1a; http://blog.csdn.net/universus/article/details/6211589 Binder是Android系统进程间通信&#xff08;IPC&#xff09;方式之一。Linux已经拥有的进程间通信IPC手段包括(Internet Process Connection)&#xff1a; 管道&#xff08;Pipe&#xff09;、信…

嵌入式算法-傅里叶变换算法

摘要&#xff1a;傅里叶变换的核心在于&#xff0c;“任何连续周期信号可以由一组适当的正弦曲线组合而成”&#xff0c;在这个基础上对信号的中特定频率的正弦波进行分解或者重组&#xff0c;基于频率方面分析波形。1、傅里叶变换的意义近似周期性的方波&#xff08;橙色&…

磁盘,硬盘,软盘,光盘的区别

计算机存储器分为两大类&#xff1a;内存存储器和外部存储器&#xff08;简称内存或内存条和外存&#xff09;。内存容量小&#xff0c;存取速度快&#xff0c;只能临时保存信息&#xff08;经cup处理后的数据&#xff09;&#xff0c;断电后信息就会消失。外存容量大&#xff…

Server 2008 R2 AD RMS完整部署:AD部署篇

在上一篇里我们完成了基本环境的准备&#xff0c;这一篇主要是讲AD的部署&#xff0c;完成之后我们需要把RMS服务器和两个客户端都加入到域中。好了废话就不说了&#xff0c;首先在我们创建的DC虚机上登录&#xff0c;并对计算机名称进行修改。 完成后先不要忙着重启&#xff0…

WIN2003设完C盘权限后终端连不上。

设完权限后不要马上重启&#xff0c;要先测试终端是否可以连接&#xff0c;否则出现以下的错误就麻烦了。事件类型: 错误事件来源: Userenv事件种类: 无事件 ID: 1500日期: 2006-7-5事件: 16:43:57用户: NT AUTHORITY\NETWORK SERVICE计算机: 描述:Windows 不能让您登录&…

简易电子钟c语言程序,(最新整理)基于51单片机的电子钟C语言程序

《(最新整理)基于51单片机的电子钟C语言程序》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《(最新整理)基于51单片机的电子钟C语言程序(9页珍藏版)》请在人人文库网上搜索。1、完整)基于51单片机的电子钟C语言程序(完整)基于51单片机的电子钟C语言程序编辑整理&…