当前位置: 首页 > news >正文

Linux: tcpdump抓包示例

文章目录

  • 1. 前言
  • 2. TCP 状态机
  • 3. tcpdump 抓包示例
    • 3.1 抓连接握手包:三次握手
    • 3.2 抓数据包示例
    • 3.3 抓终结连接:四次挥手
  • 4. 参考资料

1. 前言

限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。

2. TCP 状态机

在这里插入图片描述

3. tcpdump 抓包示例

3.1 抓连接握手包:三次握手

在这里插入图片描述
上图所示 TCP连接建立过程 如下:

1. 客户端 发送 序号为 x 的 SYN 请求给服务端;
2. 服务端 以 序号为 y 的 SYN 请求、确认号为 x+1 的 ACK 回应客户端的 SYN 请求;
3. 客户端 再回应 服务端 序号为 y 的 SYN 请求一个 ACK,ACK 的 序列号为 x+1, 确认号为 y+1 。

应该了解的是:包的序列号 seq 是 服务端 和 客户端 独自维护的,而回应给对端的 ack 的编号,是对端发送过来包的 seq + 1 。看实际 TCP连接建立过程 抓包例子(只截取了握手信息):

# tcpdump -xx -vvv -A -S tcp and host 192.168.10.211
[  162.969323] device eth0 entered promiscuous mode
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
192.168.10.211.56925 > 192.168.10.198.8000: Flags [S], cksum 0xe487 (correct), seq 2305192361, win 64240, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
192.168.10.198.8000 > 192.168.10.211.56925: Flags [S.], cksum 0x738b (correct), seq 3370362890, ack 2305192362, win 64240, options [mss 1460,nop,nop,sackOK,nop,wscale 5], length 0
192.168.10.211.56925 > 192.168.10.198.8000: Flags [.], cksum 0x8f38 (correct), seq 2305192362, ack 3370362891, win 8212, length 0

从上面看到,有两台机器,IP 分别为 192.168.10.211192.168.10.198192.168.10.198 为 服务端,192.168.10.211 为客户端。> 指示了数据通信方向,如 192.168.10.211.56925 > 192.168.10.198.8000 表示 192.168.10.211192.168.10.198 发送数据。分析下抓包数据:

1. `Flags [S]` 标记 客户端 向服务端 发起连接 `SYN` 请求,即前面图中 TCP连接过程 中的 步骤1;
2. `[S.]` 标记 服务端 对 客户端 `SYN` 请求回应的 `ACK`,以及服务端发往客户端 SYN 请求,即前面图中 TCP连接过程 中的 步骤2;
3. `[.]` 标记 客户端回应服务端的 SYN 请求一个ACK,即前面图中 TCP连接过程 中的 步骤3。

3.2 抓数据包示例

在这里插入图片描述

192.168.10.211.56925 > 192.168.10.198.8000: Flags [P.], cksum 0x7121 (correct), seq 2305192362:2305192531, ack 3370362891, win 8212, length 169
192.168.10.198.8000 > 192.168.10.211.56925: Flags [.], cksum 0xa6d0 (correct), seq 3370362891, ack 2305192531, win 2003, length 0

3.3 抓终结连接:四次挥手

在这里插入图片描述

1. 客户端 调用 close() 主动关闭连接,向服务端发送序列号为 x 的 FIN 包;
2. 服务端 回应 客户端 序列号为 y、确认号为 x+1 的 ACK 。
3. 服务端 调用 close() 向 客户端 发送 序列包为 z、确认号为 x+1 的 FIN 包;
4. 客服端 回应 服务端 序列号为 x+1、确认号为 z+1 的 ACK,然后进入 TIME-WAIT 等待,超时后进入 CLOSED 终态。

数据抓包如下:

192.168.10.198.8000 > 192.168.10.211.57040: Flags [F.], cksum 0x941f (correct), seq 3223361884, ack 4164693292, win 2003, length 0
192.168.10.211.57040 > 192.168.10.198.8000: Flags [.], cksum 0x7bdf (correct), seq 4164693292, ack 3223361885, win 8211, length 0
192.168.10.211.57040 > 192.168.10.198.8000: Flags [F.], cksum 0x7bde (correct), seq 4164693292, ack 3223361885, win 8211, length 0
192.168.10.198.8000 > 192.168.10.211.57040: Flags [.], cksum 0x941e (correct), seq 3223361885, ack 4164693293, win 2003, length 0

其中,[F.] 标记带确认序号的 FIN 包,而 [.] 标记对 FIN 包的回应。

如果想了解 TCP 握手和挥手的内部细节,可参考博文 Linux:TCP三握四挥简析 。

4. 参考资料

https://www.rfc-editor.org/rfc/rfc793
https://blog.csdn.net/vnjohn/article/details/129245099

相关文章:

Linux: tcpdump抓包示例

文章目录 1. 前言2. TCP 状态机3. tcpdump 抓包示例3.1 抓连接握手包:三次握手3.2 抓数据包示例3.3 抓终结连接:四次挥手 4. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任…...

seafile server10.0.1 onlyoffice

目标:解决seafile server无法查看office相关文档问题 seafile server 已安装完成 安装onlyoffice 一、Install Docker Engine on Ubuntu 20.04 验证是否安装成功 sudo docker run hello-world 二、拉取onlyoffice/documentserver 镜像及安装 docker network cre…...

商城系统选型:Java商城系统还是PHP商城系统好?

电子商务的不断发展,商城系统成为了企业建设在线销售平台的重要组成部分。 可是在选择合适的商城系统时,许多企业面临着一个重要的决策:是选择Java商城系统还是PHP商城系统呢?下面就对这两种常见的商城系统进行比较,并…...

【多线程进阶】线程安全的集合类

文章目录 前言1. 多线程环境使用 ArrayList2. 多线程环境使用队列3. 多线程环境使用哈希表3.1 HashTable3.2 ConcurrentHashMap 总结 前言 本文主要讲解 Java 线程安全的集合类, 在之前学习过的集合类中, 只有 Vector, Stack, HashTable, 是线程安全的, 因为在他们的关键方法中…...

016 Spring Boot + Vue 图书管理系统

Spring Boot Vue 图书馆管理系统(library-system) 本地快捷预览项目 第一步:运行 db 文件夹下的springboot-vue.sql(询问作者获取),创建springboot-vue数据库 第二步:修改后端数据库配置文件,启动后端 …...

C语言中volatile/register/const/static/extern/auto关键字的作用

目录 一、volatile 二、register详解 三、const详解 四、static详解 五、extern详解 语法 作用 六、auto详解 突然想总结一下这些关键字的作用,灵活使用这些对程序的可靠性和速率都有提高 一、volatile volatile是防止编译器优化,如果是高频繁…...

docker compose的安装和使用

docker-copose 介绍 docker-compose 是一个容器编排工具(自动化部署、管理); 它用来在单台 Linux 服务器上运行多个 Docker 容器; docker-compose 使用YAML文件来配置所有需要运行的 Docker 容器,该 YAML 文件的默认名称为 docker-compose.…...

/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found (required by

在某项目中遇到下面的错误, ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ./model2trt_v2) ./model2trt_v2: /lib64/libstdc.so.6: version GLIBCXX_3.4.21 not found (required by ../../../lib/linux_lib/libcuda_utils…...

数字化转型的必备工具:智能呼叫中心系统的应用

数字化转型已经成为企业发展的必然趋势,在这个过程中,智能呼叫中心系统成为了一个不可或缺的工具。智能呼叫中心系统通过整合各种通信渠道和自动化技术,为企业提供了高效、智能的客户服务解决方案。 首先,系统能够集成多种通信渠…...

macOS Sonoma 正式版系统已发布,macos14值得更新吗

北京时间9月27日macOS Sonoma 正式版系统发布,为 Mac 带来一系列丰富新功能:优化小组件、升级视频会议、沉浸式游戏体验等,最新macos14值得更新吗?这里根据我一个月的试用beta版本体验来分享一下。 我使用的是M1芯片的MacBook air…...

数据结构-图-最短路径问题

最短路径问题 单源最短路径Dijkstra算法原理代码实现 Bellman-Ford算法原理代码实现SPFA优化SPFA代码实现 多元最短路径Floyd-Warshall算法原理代码实现 单源最短路径 🚀最短路径:从图G的某个顶点出发到达另一个顶点的最短路径,其中最短是指…...

弹性资源组件elastic-resource设计(二)-集群

简介 弹性资源组件提供动态资源能力,是分布式系统关键基础设施,分布式datax,分布式索引,事件引擎都需要集群和资源的弹性资源能力,提高伸缩性和作业处理能力。 本文介绍弹性资源组件的设计,包括架构设计和详细设计,指导开发人员代码开发,设计基于《flink原理源码分析(一…...

Flink学习笔记(一):Flink重要概念和原理

文章目录 1、Flink 介绍2、Flink 概述3、Flink 组件介绍3.1、Deploy 物理部署层3.2、Runtime 核心层3.3、API&Libraries 层3.4、扩展库 4、Flink 四大基石4.1、Checkpoint4.2、State4.3、Time4.4、Window 5、Flink 的应用场景5.1、Event-driven Applications【事件驱动】5.…...

网络中的一些基本概念

数据共享本质是网络数据传输 ,即计算机之间通过网络来传输数据,也称为 网络通信 。 根据网络互连的规模不同,可以划分为局域网和广域网。 局域网 LAN 局域网,即 Local Area Network ,简称 LAN 。 Local 即标识了局…...

mysql中varchar长度为多少

一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存…...

python+selenium实现UI自动化(入门篇)

一、基础准备。 python环境安装,参考:CSDN pycharm安装,参考:CSDN 谷歌浏览器驱动配置,参考:CSDN二、新建pycharm项目 截图中,上面是项目地址(可以提前在指定位置创建文件夹&#xf…...

深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict

深度学习基础知识 nn.Sequential | nn.ModuleList | nn.ModuleDict 1、nn.Sequential 、 nn.ModuleList 、 nn.ModuleDict 类都继承自 Module 类。2、nn.Sequential、nn.ModuleList 和 nn.ModuleDict语法3、Sequential 、ModuleDict、 ModuleList 的区别…...

【DevOps】搭建你的第一个 Docker 应用栈

搭建你的第一个 Docker 应用栈 1.Docker 集群部署2.第一个 Hello World2.1 获取应用栈各节点所需镜像2.2 应用栈容器节点互联2.3 应用栈容器节点启动2.4 应用栈容器节点的配置2.4.1 Redis Master 主数据库容器节点的配置2.4.2 Redis Slave 从数据库容器节点的配置2.4.3 Redis 数…...

软件测试职业生涯需要编写的全套文档模板,收藏这一篇就够了 ~

作为一名测试工程师,在整个的职业生涯中,会涉及到各种不同类型的文档编写,大体包括如下: 对应文档模板及文档编写视频如下: 一、测试岗位必备的文档 在一个常规的软件测试流程中,会涉及到测试计划、测试方…...

【Kubernetes】Pod——k8s中最重要的对象之一

Pod是什么?如何使用Pod?资源共享和通信Pod 中的存储Pod 联网:跨 Pod 通信 静态 Pod感谢 💖 Pod是什么? Pod是k8s中创建和管理的、最小的可部署的计算单元。它包含一个或多个容器。就像豌豆荚里面包含了多个豌豆一样。…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...

深度学习水论文:mamba+图像增强

🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...