【网络】WireShark过滤 | WireShark实现TCP三次握手和四次挥手
目录
一、开启WireShark的大门
1.1 WireShark简介
1.2 常用的Wireshark过滤方式
二、如何抓包搜索关键字
2.1 协议过滤
2.2 IP过滤
编辑
2.3 过滤端口
2.4 过滤MAC地址
2.5 过滤包长度
2.6 HTTP模式过滤
三、ARP协议分析
四、WireShark之ICMP协议
五、TCP三次握手与四次挥手
5.1 TCP三次握手
5.2 可视化看TCP三次握手
5.3 TCP四次挥手
5.4 可视化看TCP四次挥手
5.5 异常情况
一、开启WireShark的大门
相关文章:
【Linux】网络诊断 ping命令详解_linux ping-CSDN博客
【Linux】网络诊断 traceroute命令详解-CSDN博客
【Linux】nc 网络诊断 | 文件传输 命令详解-CSDN博客
【网络】抓包工具Wireshark下载安装和基本使用教程-CSDN博客
【网络】路由器和交换机的区别-CSDN博客
【网络】计算机网络基础概念入门-CSDN博客
【网络】网络层IP地址和IP数据报的格式-CSDN博客
【网络】网络层协议ARP和IP协议转发流程-CSDN博客
【网络】网络层ICMP协议-CSDN博客
【网络】传输层TCP协议-CSDN博客
1.1 WireShark简介
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。常用来检测网络问题、攻击溯源、或者分析底层通信机制。
cmd输入ipconfig,下图中是我的IP:192.168.21.218
下图左侧对应你的电脑网卡,可以注意旁边的折线图,有波动的就是在使用的网卡。
停止运行,再点击捕获,选项,可以看到是否选择混杂模式
如下选择使用混杂模式
混杂模式︰混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。
普通模式:普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。
1.2 常用的Wireshark过滤方式
- IP地址过滤:通过指定源IP地址或目的IP地址来过滤数据包,例如:ip.src==192.168.1.1 或 ip.dst==192.168.1.1。
- 网络协议过滤:通过指定网络协议来过滤数据包,例如:tcp、udp、Http等。
- 端口过滤:通过指定源端口或目的端口来过滤数据包,例如:tcp.srcport==80 或 tcp.dstport==443。
- 数据包长度过滤:通过指定数据包的长度来过滤数据包,例如:frame.len>100。
- 数据包内容过滤:通过指定数据包中的特定内容来过滤数据包,例如:http contains "passWord"。
- 协议字段过滤:通过指定协议字段的值来过滤数据包,例如:http.response.code==200。
- 时间窗口过滤:通过指定时间范围来过滤数据包,例如:frame.time>= "2022-01-01 00:00:00" and frame.time<= "2022-01-01 23:59:59"。
- 组合过滤:可以通过使用逻辑运算符(and、or、not)来组合多个过滤条件,例如:ip.src==192.168.1.1 and tcp.dstport==80。
二、如何抓包搜索关键字
2.1 协议过滤
点击蓝色鲨鱼状的是开始捕获,红色方块是停止。
比如说查TCP、UDP建立连接的时候是什么样的
tcp协议过滤
或者抓http的包,访问 192.168.2.153:8080
抓包结果如下,153 页面刷新响应218 HTTP 200 OK
2.2 IP过滤
或者搜一下我的网关试试
IP源地址:ip.src == 192.168.21.218
IP目的地址:ip.dst == 192.168.21.218
IP地址(包括源和目的): ip.addr == 192.168.21.218
逻辑运算符为 AND/ OR
有着强大的联想提示功能,我们输入"ip."后会有提示
示例如下:过滤本地 192.168.21.218 到 192.168.2.153 且协议为 http 的数据包:
ip.src_host == 192.168.21.218 and ip.dst_host == 192.168.2.153 and http
2.3 过滤端口
语法格式:
TCP端口:tcp.port == 80TCP目的端口:tcp.dstport == 80TCP源端口:tcp.srcport == 80UDP端口:udp.port eq 15000TCP 1-80之间的端口:tcp.port >= 1 and tcp.port <= 80tcp.port == 8080 || udp.port == 80
如下过滤8080 端口,可以看到从本机192.168.21.218 到 192.168.2.153且为HTTP协议
2.4 过滤MAC地址
语法格式
源MAC地址:eth.src == 8c-ec-4b-bc-94-ad目的MAC地址:eth.dst == 8c-ec-4b-7c-3b-f8MAC地址(包括源和目的):eth.addr == e0-78-a3-02-83-38
windows执行 arp -a可以看到本机所有网络接口接收到的IP及对应的物理地址
示例如下:
eth.addr==e0-78-a3-02-83-38
2.5 过滤包长度
语法格式
整个UDP数据包:udp.length == 20TCP数据包中的IP数据包:tcp.len >= 20整个IP数据包:ip.len == 20整个数据包:frame.len == 20
2.6 HTTP模式过滤
请求方法为GET :http.request.method=="GET"请求方法为POST:http.request.method=="POST"指定URI:http.request.uri.path contains "x"泛 指:http contains "x"
如下获取GET请求
http.request.method == "GET"
三、ARP协议分析
ARP(Address Resolution Protocol)即地址解析协议,由于是IP协议使用了ARP协议,因此通常就把ARP协议划归网络层。ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址。ARP的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便主机间能正常进行通信。
ping 192.168.21.254(这是我的网关)
如下是我本地的IP和物理地址
示例如下:
192.168.21.218(本机)发出一个广播来询问MAC地址:Who Has 192.168.21.254? Tell 192.168.21.218
182.168.21.254 做出应答:182.168.21.1254的MAC地址是 74: ea: c8: b1:51: 3f
ARP请求包(request)192.168.21.218——> 192.168.21.254
ARP响应包(reply)192.168.21.254——> 192.168.21.218
四、WireShark之ICMP协议
网络层使用了网际控制报文协议ICMP,Internet控制报文协议(Intemet Control Message Protocol, ICMP)是IP协议的一种补充,它与IP协议结合使用,以便提供与IP协议层配置和IP数据包处理相关的诊断和控制信息(IP协议本身并没有为终端系统提供直接的方法来发现那些发往目的地址失败的IP数据包,也没有提供直接的方式来获取诊断信息。)
ICMP通常被认为是IP层的一部分,它是在IP数据报内被封装传输的。
icmp数据包解读
(1) Frame: 物理层
(2) Ethernet II: 数据链路层
(3) Internet Protocol Version 4: 网络层
(4) Internet Control Message Protocol: icmp信息ping www.baidu.com
具体详情文章:【网络】网络层ICMP协议-CSDN博客
五、TCP三次握手与四次挥手
5.1 TCP三次握手
【网络】传输层TCP协议 | 三次握手 | 四次挥手-CSDN博客
下面是常见的TCP层的常用FLAGS。
标志位 | 描述 |
SYN | 建立连接 |
ACK | 确认 |
PSH | 有 DATA数据传输 |
FIN | 关闭连接 |
RST | 连接重置 |
标志位:
SYN(synchronize)指请求同步
ACK指确认同步
TCP 建立连接的过程叫做握手,握手需要在客户和服务器之间交换三个TCP报文段。下图为客户端主动发起的图解:
获取百度的IP地址
tcp && ip.addr == 110.242.68.3
www.baidu.com的IP地址(目的IP)
输入后,回车。刚开始页面是空的流量信息,接下来打开百度首页(浏览器网址www.baidu.com),关注这里的流量信息,可以发现三次握手的流量包信息已经显示在下方了
第一次握手
客户端发送一个TCP,标志位为SYN=1, 代表客户端请求建立连接。等待服务器收到数据包后,客户端变为监听状态。
第二次握手
服务器发回确认包, 标志位为 SYN,ACK。
SYN=1表示已经同步数据包
ACK=1表示确认收到
seq设为0,即服务器发出的第0个数据包
将确认序号设置为客户的seq加1,即ack=0+1=1
第三次握手
客户端再次发送确认包,SYN标志位为0,ACK标志位为1。
seq=0+1=1,客户端发送的第二个包,编号为1
ack=0+1=1,回复给服务器,表示服务器发出的0数据包已经收到。
5.2 可视化看TCP三次握手
统计——>流量图
三次握手的整个过程简单总结:
5.3 TCP四次挥手
本机地址:192.168.21.218,www.baidu.com的IP地址(IP 110.242.68.3)
第一次挥手:baidu.com发送带有[FIN,ACK]标志的数据包发送至本机,Seq=849,ACK=2786,发送后baidu.com进入FIN-WAIT-1(终止等待)状态。
此时Fin和Ack都为1,是一个客户端发送连接请求。
第二次挥手:本机收到baidu.com的FIN数据包,向baidu.com响应ACK数据包,Seq=2786(与baidu.com的FIN数据包 ACK值相同),ACK=850(等于baidu.com FIN数据包的 Seq +1 )。后本机进入了CLOSE-WAIT(关闭等待)状态。
第三次挥手:数据发送完后,本机向baidu.com发送[FIN,ACK]报文,Seq=2786(与上一条报文的Seq值相同),ACK=850(与上一条报文的ACK值相同)。
第四次挥手:baidu.com向本机发送标志为[RST,ACK]的报文,Seq=850(与本机发送baidu.com的FIN报文ACK值相同),ACK=2787(与本机发送到baidu.com的FIN报文的Seq值相同)。
RST:该标志表示连接复位请求,用来复位那些产生的错误连接,也用来拒绝错误和非法的数据包
5.4 可视化看TCP四次挥手
统计——>流量图
5.5 异常情况
异常情况:RST终止
在研究这三四次挥手的时候,发现了异常终止情况
我们一般都是正常的等待终止连接,但这时出现了服务器提出终止连接请求,看来是 TCP连接异常中断,因为TCP是全双工通信,两者通信地位相等,双方都有权利主动终止请求。
在服务器主动发送终止指令后,客户端被动响应终止。然后客户端主动提出keep-alive不断开连接,服务器响应再一次客户端提出keep-alive的时候,服务器RST终止了异常的连接。
————————————————
参考原文链接:wireshark分析tcp协议(二)四次挥手(异常情况)【理论 + 实操】_wireshark监测异常行为介绍-CSDN博客
【网络安全】Wireshark过滤数据包&分析TCP三次握手_wireshark过滤tcp-CSDN博客
相关文章:

【网络】WireShark过滤 | WireShark实现TCP三次握手和四次挥手
目录 一、开启WireShark的大门 1.1 WireShark简介 1.2 常用的Wireshark过滤方式 二、如何抓包搜索关键字 2.1 协议过滤 2.2 IP过滤 编辑 2.3 过滤端口 2.4 过滤MAC地址 2.5 过滤包长度 2.6 HTTP模式过滤 三、ARP协议分析 四、WireShark之ICMP协议 五、TCP三次握…...

开源免费的Linux服务器管理面板分享
开源免费的Linux服务器管理面板分享 一、1Panel1.1 1Panel 简介1.2 1Panel特点1.3 1Panel面板首页1.4 1Panel使用体验 二、webmin2.1 webmin简介2.2 webmin特点2.3 webmin首页2.4 webmin使用体验 三、Cockpit3.1 Cockpit简介3.2 Cockpit特点3.3 Cockpit首页3.4 Cockpit使用体验…...
leetcode算法-位运算
位运算,直接在二进制上进行的按位操作,位运算的种类如下: 1.按位异或^:异或的含义是操作的两位不同,则结果为1,相同则结果为0,所以两个相同的数异或,结果应该是0,3^3的结果是0,3^4的…...
「MySQL」约束
概述 分类 约束描述关键字非空约束限制该字段的数据不能为 nullNOT NULL唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE主键约束主键是一行数据的唯一标识,要求非空且唯一PRIMARY KEY默认约束保存数据时,如果未指定该字段的值,则采…...

C语言:详解操作符(下)
上一篇链接:C语言:详解操作符(上)摘要: 在上篇文章中,我们已经讲过位操作符等涉及二进制的操作符,这些有助于帮助我们后期理解数据如何在计算机中运算并存储,接下来本篇将更多的讲述…...

Vue3.0(六):VueX 4.x详解
Vuex4状态管理 什么是状态管理 在开发中,我们的应用程序需要处理各种各样的数据,这些数据需要保存在应用程序的某一个位置,对于这些数据的管理,就是 状态管理目前前端项目越来越复杂,多组件共享同一数据的状态很常见…...
突破编程_C++_面试(基础知识(13))
面试题45:C中的字符串如何存储 在C中,字符串可以通过多种方式存储,但最常见和推荐使用的方式是通过 std::string 类,该类位于 <string> 头文件中。std::string 是一个类模板的实例,通常用于存储字符数组&#x…...

掌握C语言文件操作:从入门到精通的完整指南!
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C语言学习 贝蒂的主页:Betty‘s blog 1. 什么是文件 文件其实是指一组相关数据的有序集合。这个数据集有一个名称&a…...

JavaEE作业-实验二
目录 1 实验内容 2 实验要求 3 思路 4 核心代码 5 实验结果 1 实验内容 实现两个整数求和的WEB程序 2 实验要求 ①采用SpringMVC框架实现 ②数据传送到WEB界面采用JSON方式 3 思路 ①创建一个SpringMVC项目,配置好相关的依赖和配置文件。 ②创建一个Con…...
2月8号作业
Sqlite3系统命令 .quit 退出数据库 .exit 退出数据库 .help 显示帮助信息,获取所有系统命令 .table 查看当前数据库下的所有表格 .schema 查看表的结构 Sqlite3语句 创建表格: create table 表名 (字段名 数据类型, 字段名 数据类型); create table if…...

08:K8S资源对象管理|服务与负载均衡|Ingress
K8S资源对象管理|服务与负载均衡|Ingress DaemonSet控制器污点策略容忍容忍污点 其他资源对象Job资源对象 有限生命周期CronJob资源对象 集群服务服务自动发现headless服务 实现服务定位与查找 服务类型 Ingress插件 发布服务的方式 DaemonSet控制器 Da…...

HarmonyOS 横屏调试与真机横屏运行
我们有些程序 需要横屏才能执行出效果 我们在预览器上 点击如下图指向出 就进入一个横屏调试了 但 我们真机运行 依旧是竖着的 我们如下图 找到 module.json5 在 abilities 下面 第一个对象 最下面 加上 "orientation": "landscape"然后 我们再真机运…...

Javaweb基础-tomcat,servlet
一.配置文件基础: properties配置文件: 由键值对组成 键和值之间的符号是等号 每一行都必须顶格写,前面不能有空格之类的其他符号 xml配置文件:(xml语法HTML语法HTML约束)xml约束-DTD / Schema DOM4…...

HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-中断管理
目录 一、中断基础概念二、中断管理使用说明三、中断管理模块接口四、代码分析(待续...)坚持就有收获 一、中断基础概念 在程序运行过程中,出现需要由 CPU 立即处理的事务时,CPU 暂时中止当前程序的执行转而处理这个事务…...

【开源】JAVA+Vue+SpringBoot实现就医保险管理系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…...

Stable Diffusion 模型下载:DreamShaper XL(梦想塑造者 XL)
本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十 下载地址 模型介绍 DreamShaper 是一个分格多样的大模型,可以生成写实、原画、2.5D 等…...

【机器学习】数据清洗之处理异常点
🎈个人主页:甜美的江 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步…...
JavaScript学习之旅10------掌握jQuery:实用应用案例深度解析
目录 写在开头1. jQuery基础知识回顾1.1. 选择器1.2. 事件1.3. 效果1.4. DOM操作1.5. AJAX 2. 实用应用案例分析2.1. 动态内容加载2.2. 表单验证2.3. 图像滑动门效果2.4. 创建动态导航菜单 3. 高级技巧与最佳实践3.1. 优化jQuery代码的性能3.2. jQuery插件的使用和自定义3.3. j…...
017_逆向工程搭建和使用
文章目录 启动代码生成器然后访问第一步处理:前端代码删除逆向生成的代码中有好多东西要引入创建gulimall-common插曲:修改模块名dao层entity层service层controllerRQuery文件当中的报错☆ 调整renren-generator的逆向工程逆向生成代码当中有什么总结...

位运算+leetcode(1)
基础 1.基础知识 以下都是针对数字的二进制进行操作 >> 右移操作符<< 左移操作符~ 取反操作符 & 有0就是0,全一才一 | 有一才一 ,全0才0^ 相同为0,相异为1 异或( ^ )运算的规律 a ^ 0 a a ^ a 0a ^ b ^ c a ^ (b …...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...