一次完整的tcpdump -XX输出报文详解

news2025/1/17 12:31:22

报文:

03:32:51.745623 IP (tos 0x0, ttl 64, id 65006, offset 0, flags [DF], proto TCP (6), length 94)
    10.229.43.200.6471 > 10.229.43.200.55674: Flags [P.], cksum 0x6daa (incorrect -> 0x2e06), seq 1:43, ack 42, win 3635, options [nop,nop,TS val 2699525425 ecr 2699524773], length 42
        0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
        0x0010:  005e fdee 4000 4006 cf51 0ae5 2bc8 0ae5  .^..@.@..Q..+...
        0x0020:  2bc8 1947 d97a 74b5 d8b0 0127 bdc0 8018  +..G.zt....'....
        0x0030:  0e33 6daa 0000 0101 080a a0e7 7d31 a0e7  .3m.........}1..
        0x0040:  7aa5 0100 6842 0100 0000 0000 0000 2a00  z...hB........*.
        0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
        0x0060:  0000 0000 0000 0000 0000 0000

tcpdump -XX输出的16进制报文各部分的含义:

报文基本信息

03:32:51.745623 IP (tos 0x0, ttl 64, id 65006, offset 0, flags [DF], proto TCP (6), length 94)
10.229.43.200.6471 > 10.229.43.200.55674: Flags [P.], cksum 0x6daa (incorrect -> 0x2e06), seq 1:43, ack 42, win 3635, options [nop,nop,TS val 2699525425 ecr 2699524773], length 42
  • 时间戳03:32:51.745623,表示报文捕获的时间。

  • IP头部

    • tos 0x0:服务类型字段,值为0,表示常规服务。

    • ttl 64:生存时间,值为64,表示报文最多可以经过64个路由器。

    • id 65006:标识字段,用于唯一标识主机发送的每一分组。

    • offset 0:片偏移字段,值为0,表示该报文不分片。

    • flags [DF]:不分片标志位,表示该报文不允许分片。

    • proto TCP (6):协议字段,值为6,表示上层协议为TCP。

    • length 94:整个IP报文的长度为94字节。

  • TCP头部

    • Flags [P.]:标志位,P表示推送(PSH),.表示确认(ACK)。

    • cksum 0x6daa (incorrect -> 0x2e06):校验和,计算结果为0x6daa,但实际应为0x2e06,表示校验和错误。

    • seq 1:43:序列号范围,从1到43,表示该报文段包含42字节的数据。

    • ack 42:确认号,表示期望收到的下一个报文段的序列号为42。

    • win 3635:窗口大小,值为3635,表示接收方的接收窗口大小。

    • options [nop,nop,TS val 2699525425 ecr 2699524773]:选项字段,包含两个NOP(无操作)选项和一个时间戳选项,时间戳值为2699525425,时间戳回显值为2699524773。

    • length 42:TCP数据部分的长度为42字节。

16进制报文详细解释

0x0000:  0000 0000 0000 0000 0000 0000 0800 4500  ..............E.
0x0010:  005e fdee 4000 4006 cf51 0ae5 2bc8 0ae5  .^..@.@..Q..+...
0x0020:  2bc8 1947 d97a 74b5 d8b0 0127 bdc0 8018  +..G.zt....'....
0x0030:  0e33 6daa 0000 0101 080a a0e7 7d31 a0e7  .3m.........}1..
0x0040:  7aa5 0100 6842 0100 0000 0000 0000 2a00  z...hB........*.
0x0050:  0000 0000 0000 0000 0000 0000 0000 0000  ................
0x0060:  0000 0000 0000 0000 0000 0000
0x0000 - 0x000F:以太网头部(如果存在)
  • 0000 0000 0000 0000 0000 0000:目的MAC地址(全0,表示可能是一个原始IP报文,没有以太网封装)。

  • 0800:以太网类型字段,值为0800,表示这是一个IP报文。

0x0010 - 0x001F:IP头部
  • 4500:IP版本和首部长度。4表示IP版本为IPv4,5表示IP头部长度为5个32位字节,即20字节。

  • 005e:总长度,十六进制5e转换为十进制为94,表示整个IP报文长度为94字节。

  • fdee:标识字段,值为fdee,用于唯一标识主机发送的每一分组。

  • 4000:标志和片偏移字段。4表示不分片(DF位为1),00表示片偏移为0,即该IP报文不分片。

  • 4006:生存时间(TTL)和协议字段。40表示TTL为64,06表示协议为TCP。

  • cf51:头部校验和,用于检测IP头部在传输过程中是否出现错误。

  • 0ae5 2bc8:源IP地址,转换为点分十进制为10.229.43.200。

  • 0ae5 2bc8:目的IP地址,也是10.229.43.200。

0x0020 - 0x002F:TCP头部
  • 1947:源端口号,十六进制1947转换为十进制为6471。

  • d97a:目的端口号,十六进制d97a转换为十进制为55674。

  • 74b5 d8b0:序列号,值为74b5d8b0。

  • 0127:确认号,值为0127。

  • bdc0:数据偏移(高4位)和保留位(中间6位)以及紧急指针字段(低4位)。数据偏移值为b(十进制为11),表示TCP头部长度为11个32位字节,即44字节(包括20字节基本头部和24字节选项部分)。

  • 8018:标志位和窗口大小字段。80表示PSH(推送)和ACK(确认)标志位为1,18表示窗口大小为18(需要乘以2的10次方,即18 * 1024 = 18432,但这里应该是16位的窗口大小字段,直接转换为十进制为20010,可能是表示窗口大小为20010)。

0x0030 - 0x003F:TCP头部(继续)
  • 0e33:检验和,用于检测TCP报文段在传输过程中是否出现错误。

  • 6daa:紧急指针字段,值为6daa,但在这个报文段中紧急指针可能没有实际意义,因为紧急指针字段只有在紧急标志位为1时才有效。

  • 0000:填充字段,用于填充TCP头部,使其长度为整数个32位字节。

  • 0101:选项字段,表示TCP选项的类型和长度。01表示时间戳选项,01表示该选项长度为10字节。

  • 080a:时间戳选项的类型和子类型,08表示时间戳,0a表示时间戳回显。

  • a0e7 7d31:时间戳值,用于TCP的拥塞控制和往返时间测量等。

  • a0e7 7aa5:时间戳回显值,用于确认对方发送的时间戳。

0x0040 - 0x004F:TCP数据部分
  • 0100:TCP数据部分的开始,这部分数据的具体含义需要根据上层应用协议来解释。例如,如果这是一个HTTP协议的数据,那么这些字节可能是HTTP请求或响应的一部分内容。

  • 6842:TCP数据部分的继续。

  • 0100:TCP数据部分的继续。

  • 0000:TCP数据部分的继续,后面跟着的多个0000可能是数据的一部分,也可能是填充数据,具体取决于上层协议对数据的格式要求。

  • 0000:TCP数据部分的继续。

  • 2a00:TCP数据部分的继续。

0x0050 - 0x005F:TCP数据部分(继续)
  • 0000:TCP数据部分的继续,后面跟着的多个0000可能是数据的一部分,也可能是填充数据,具体取决于上层协议对数据的格式要求。

0x0060 - 0x006F:TCP数据部分(继续)
  • 0000:TCP数据部分的继续,后面跟着的多个0000可能是数据的一部分,也可能是填充数据,具体取决于上层协议对数据的格式要求。

总结

  • IP头部:20字节,包含IP版本、头部长度、总长度、标识、标志、片偏移、TTL、协议、头部校验和、源IP地址、目的IP地址。

  • TCP头部:20字节基本头部 + 24字节选项部分,包含源端口号、目的端口号、序列号、确认号、数据偏移、标志位、窗口大小、检验和、紧急指针、选项字段。

  • TCP数据部分:42字节,具体内容需要根据上层协议来解释。

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

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

相关文章

论文笔记-arXiv2025-A survey about Cold Start Recommendation

论文笔记-arXiv2025-Cold-Start Recommendation towards the Era of Large Language Models: A Comprehensive Survey and Roadmap 面向大语言模型(LLMs)时代的冷启动推荐:全面调研与路线图1.引言2.前言3.内容特征3.1数据不完整学习3.1.1鲁棒…

设计模式03:行为型设计模式之策略模式的使用情景及其基础Demo

1.策略模式 好处:动态切换算法或行为场景:实现同一功能用到不同的算法时和简单工厂对比:简单工厂是通过参数创建对象,调用同一个方法(实现细节不同);策略模式是上下文切换对象,调用…

飞机电气系统技术分析:数字样机技术引领创新

现代飞机正向着更安全、环保和经济的方向发展,飞机系统的设计日益复杂,对各子系统的性能和可靠性也提出了更高要求。作为飞机的重要组成部分,电气系统(Electrical System,ES)不仅负责为各类机载设备提供稳定…

(01)FreeRTOS移植到STM32

一、以STM32的裸机工程模板 任意模板即可 二、去官网上下载FreeRTOS V9.0.0 源码 在移植之前,我们首先要获取到 FreeRTOS 的官方的源码包。这里我们提供两个下载 链 接 , 一 个 是 官 网 : http://www.freertos.org/ , 另…

【Unity-Game4Automation PRO 插件】

Game4Automation PRO 插件 是一个用于 Unity 引擎 的工业自动化仿真工具,它提供了对工业自动化领域的仿真和虚拟调试支持,特别是在与工业机器人、生产线、PLC 系统的集成方面。该插件旨在将工业自动化的实时仿真与游戏开发的高质量 3D 可视化能力结合起来…

element select 绑定一个对象{}

背景&#xff1a; select组件的使用&#xff0c;适用广泛的基础单选 v-model 的值为当前被选中的 el-option 的 value 属性值。但是我们这里想绑定一个对象&#xff0c;一个el-option对应的对象。 <el-select v-model"state.form.modelA" …

mybatis延迟加载、缓存

目录 一、所需表 二、延迟加载 1.延迟加载概念 2.立即加载和延迟加载的应用场景 3.多对一延迟加载查询演示 (1)实体类 User Account (2)AccountMapper接口 (3)AccountMapper.xml (4)UserMapper接口 (5)UserMapper.xml (6)在总配置文件(mybatis-config.xml)中开启延…

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤 目录 前言 一、同步FIFO的使用 1、配置 2、仿真 二、异步FIFO的使用 1、配置 2、仿真 前言 在系统设计中&#xff0c;利用FIFO&#xff08;first in first out&#xff09;进行数据处理是再普遍不过的应用了&#xff0c…

一、1-2 5G-A通感融合基站产品及开通

1、通感融合定义和场景&#xff08;阅读&#xff09; 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理&#xff08;较难&#xff0c;理解即可&#xff09; 2.1 感知方式 2.2 通感融合架构 SF&#xff08;Sensing Function&#xff09;&#xff1a;核心网感知控制…

某政务行业基于 SeaTunnel 探索数据集成平台的架构实践

分享嘉宾&#xff1a;某政务公司大数据技术经理 孟小鹏 编辑整理&#xff1a;白鲸开源 曾辉 导读&#xff1a;本篇文章将从数据集成的基础概念入手&#xff0c;解析数据割裂给企业带来的挑战&#xff0c;阐述数据集成的重要性&#xff0c;并对常见的集成场景与工具进行阐述&…

【MySQL】使用C语言链接

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;MySQL 目录 一&#xff1a;&#x1f525; MySQL connect &#x1f98b; Connector / C 使用&#x1f98b; mysql 接口介绍&#x1f98b; 完整代码样例 二&#xff1a;&#x1f525; 共勉 一&#…

《Java核心技术II》并行流

并行流 从集合中获取并行流&#xff1a;Stream paralleWords words.parallelStream(); parallel方法将任意顺序流转换为并行流&#xff1a;Stream paralleWords Stream.of(wordArray).parallel(); 以下是不好的示范&#xff0c;假设对字符串的所有短单词计数&#xff1a; …

【Rust自学】13.2. 闭包 Pt.2:闭包的类型推断和标注

13.2.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发&#xff0c;而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中&#xff0c;我们会讨论 Rust 的一…

ETW HOOK[InfinityHook]技术解析

文章目录 概述分析过程参考资料 概述 ETW是操作系统为了对系统调用、异常等信息做了一个日志操作&#xff0c;本质就是在进行调用这些中断、异常、系统调用时会走向这个代码函数区域日志保存的功能。而ETW HOOK就是在驱动层微软的PatchGuard并未对其做到很好的检测&#xff0c…

码编译安装httpd 2.4,测试

下载链接&#xff1a;https://dlcdn.apache.org/httpd/httpd-2.4.62.tar.gz [rootopenEuler-1 ~]# yum install gcc gcc-c make -y [rootopenEuler-1 ~]# ll /root total 9648 -rw-------. 1 root root 920 Jan 10 17:15 anaconda-ks.cfg -rw-r--r-- 1 root root 9872432…

步入响应式编程篇(一)

响应式编程 为什么要有响应式编程&#xff1f;响应式编程的用法Flow api的用法处理器 为什么要有响应式编程&#xff1f; 传统编码&#xff0c;操作流程常见的是命令式编程范式&#xff0c;如对于一个请求或操作来说&#xff0c;都是串行执行&#xff0c;直到异常或执行结束&a…

C++—18、C++ 中如何写类

一、类的功能阐述 今天我们将用目前学到的类的基础知识从头开始编写一个类。只编写一个基本的Log类&#xff0c;来演示到目前为止我们学过的一些基本特性。随着接下来的学习你会看到从一个类的基本版本到一个更高级版本的过程和区别。高级版本可以做同样的事情&#xff0c;但可…

SW - 查看装配图中的零件的全路径名称

文章目录 SW - 查看装配图中的零件的全路径名称概述笔记END SW - 查看装配图中的零件的全路径名称 概述 装配图中&#xff0c;如果本机有多个不同版本的同名零件(e.g. v1/p1零件, v2/p1零件)&#xff0c;在装配图中想确认是哪个版本的零件。 如果编辑错了文件&#xff0c;或者…

【开源分享】nlohmann C++ JSON解析库

文章目录 1. Nlohmann JSON 库介绍2. 编译和使用2.1 获取库2.2 包含头文件2.3 使用示例2.4 编译 3. 优势4. 缺点5. 总结参考 1. Nlohmann JSON 库介绍 Nlohmann JSON 是一个用于 C 的现代 JSON 库&#xff0c;由 Niels Lohmann 开发。它以易用性和高性能著称&#xff0c;支持 …

神经网络基础-正则化方法

文章目录 1. 什么是正则化2. 正则化方法2.1 Dropout正则化2.2 批量归一化(BN层) 学习目标&#xff1a; 知道正则化的作用掌握随机失活 DropOut 策略知道 BN 层的作用 1. 什么是正则化 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小…