数据链路层(MAC)、网络层(IP)、传输层(TCP/UDP)抓包分析

news2024/11/25 20:42:26

目录

  • OSI七层模型
  • 数据包逐层封装头部
  • 抓包分析
    • 数据包概况
    • 数据链路层抓包
    • 网络层抓包(IP协议抓包)
    • UDP抓包
    • 数据负载抓包
  • Linux cooked-mode capture

OSI七层模型

OSI模型(OSI model),开放式系统互联通信参考模型(英语:Open System Interconnection Reference Model,缩写为 OSI)。
抓包通常抓取数据链路层、网络层、传输层的包。
在这里插入图片描述

数据包逐层封装头部

OSI主要关注5层,数据从上至下逐级封装,加入每层的头部信息,在物理层转换为比特率发送;
接收端使用逆向顺序把数据逐级解封装,发送给应用层。
在这里插入图片描述

抓包分析

linux下使用tcpdump抓包,抓取指定网卡,端口为50005 的包,保存到123.pcap,抓包完成后使用wireshark打开分析。

sudo tcpdump -i ens33 port 50005 -w 123.pcap -vvvv

下面抓一个UDP包进行分析。
TCP抓包分析看这里:https://blog.csdn.net/weixin_40355471/article/details/131187114?spm=1001.2014.3001.5502
在这里插入图片描述

数据包概况

点击第二条记录,wireshark分析抓包的第一条信息,是整个包的信息概况:
在这里插入图片描述

数据链路层抓包

数据链路层头部共14个字节,前6字节是目的MAC地址,随后6字节是源MAC地址,最后2字节是以太网帧所携带的上层数据类型:

IPv4: 0x0800
ARP:0x0806
PPPoE:0x8864
802.1Q tag: 0x8100
IPV6: 0x86DD
MPLS Label:0x8847

在这里插入图片描述
通常第二条是数据链路层抓包,分别是目的MAC,源MAC,数据类型。
在这里插入图片描述
转换为16进制。

00 0c 29 59 de c5 00 0c 29 66 95 33 08 00   

网络层抓包(IP协议抓包)

数据传输网络层使用IP协议。

IP指网际互连协议,Internet Protocol的缩写,是TCP/IP体系中的网络层协议。实现大规模、异构网络的互联互通;分割顶层网络应用和底层网络技术之间的耦合关系。IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

IP数据包包头:20个字节。
在这里插入图片描述

第1个字节(45) ,前4位4表示的是IP协议的版本,即IPv4;后4位,IHL(Internet Header Length 报头长度),表示IP报文头部按32位字长(32位,4字节)计数的长度,也即报文头的长度等于IHL的值乘以4。
第2个字节 是区分服务。
第3,4个字节 是指首部和数据之和的长度,即 IP数据包包头和IP数据之和,不包括以太帧头部的字节
第5,6个字节 是一个数据报被分片后的标识,便于正确的重装原来的数据报。
第7,8个字节 分前3位为标志位和后13位为片偏移,其中标识位只有两位有意义。
第9个字节 表示的是数据报在网络中的寿命。
第10个字节 指出数据报携带的数据时使用的协议类型(01表示ICMP协议; 06表示TCP协议; 11表示UDP协议)。
第11,12个字节 表示首位检验和,对数据报的保留与丢弃进行判别。
第13,14,15,16个字节 表示发送者的IP地址(源IP)。
第17,18,19,20个字节 表示接收者的IP地址(目的IP)。

抓包分析:
在这里插入图片描述

导出16进制。

45 00 00 26 55 df 40 00 40 11 d3 20 c0 a8 48 32 c0 a8 48 44

UDP抓包

UDP,用户数据报协议(User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

udp头部格式比较简单。
在这里插入图片描述

源端口号:发送方端口号。
目标端口号:接收方端口号。
包长度:整个UDP数据报的长度 = 报头+载荷。
校验和:检测UDP数据(包含头部和数据部分)报在传输中是否有错,有错则丢弃。

在这里插入图片描述

导出16进制。

c3 55 b7 1f 00 12 69 ce

数据负载抓包

在这里插入图片描述
导出16进制,转换为十进制,对照ASCII 码表,就是hello back。

68 65 6c 6c 6f 20 62 61 63 6b

ASCII 码表:
在这里插入图片描述

Linux cooked-mode capture

Wireshark分析抓包时,数据链路层显示Linux cooked-mode capture,这是Linux上libpcap所使用的伪协议,因为不是所有的网卡接口都具有相同的链路层协议。抓包时不指定网卡会出现(tcpdump -i any)。

在这里插入图片描述

转换成16进制如下:

00 00 00 01 00 06 c4 70 ab fc 1b a9 00 00 08 00

前6字节代表上图中的前三项,随后6字节是源MAC地址,后面2字节全0未使用,最后2字节0800代表以太网帧所携带的上层数据类型。

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

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

相关文章

【读书笔记】《小王子》- [法] 安托万•德•圣埃克苏佩里 / [法国] 安东尼·德·圣-埃克苏佩里

文章目录 Chapter 01Chapter 02Chapter 03Chapter 04Chapter 05Chapter 06Chapter 07Chapter 08Chapter 09 Chapter 01 Chapter 02 “因为我住的地方非常小…” 想起了陀思妥耶夫斯基书中的一句话,“要爱具体的人,不要爱抽象的人;要爱生活本…

给开发者的ChatGPT提示词工程指南

ChatGPT Prompt Engineering for Development 基本大语言模型和指令精调大语言模型的区别: 指令精调大语言模型经过遵从指令的训练,即通过RLHF(基于人类反馈的强化学习)方式在指令上精调过,因而更加有帮助&#xff0…

OverLeaf(LaTeX在线编辑器)制作项目周报

目录 注册及登录 1、登录官网 2、设置语言 制作周报 1、新建项目 2、整体预览 3、分段解析 3.1 页面大小/页边距 3.2 页眉页脚 3.3 标题样式 3.4 内容分栏显示 3.5 调整行间距 3.6 插入图片 3.7 图片和文字排版 3.8 分页 3.9 标题和内容 4、编译和导出 4.1 编…

hutool poi、apache poi实现导入导出以及解析excel

一、前言 看了例子之后后续需要更加深入学习或者更多理解其他API的话,建议看官方文档。hutool项目是中国人维护的,有中文文档,阅读起来很方便。apache poi比较底层一点,可以更加自由去二次开发自己所需的功能。 hutool官方文档 …

zkML零知识机器学习介绍

1. 引言 零知识证明技术的2大基石为: 1)succinctness:相比于直接运行整个计算本身,验证该计算完整性证明要简单很多。2)zero-knowledge:可在不泄露计算隐私的情况下,证明计算的完整性。 生成…

【Java入门】-- Java基础详解之 [数组、冒泡排序]

目录 1.为什么需要数组? 2.数组的介绍 3.数组的快速入门 4.数组的使用 5.动态初始化 6.静态初始化 7.数组的细节 8.数组的赋值机制 9.数组拷贝 10.数组反转 11.二维数组 12.冒泡排序 1.为什么需要数组? 有五个学生,他们英语成绩…

探索不同学习率对训练精度和Loss的影响

验证精度、验证Loss的影响 1 问题 在探索mnist数据集过程中,学习率的不同,对我们的实验结果,各种参数数值的改变有何变化,有何不同。 学习率对精度和损失的影响研究。训练周期100学习率 [0.1, 0.01, 0.001, 0.0001](1) 不同学习率…

蓝牙网关Gateway_数据采集,连接控制,室内定位VDB2602

蓝牙网关,内部集成了WiFi、蓝牙、4G等多种无线通信方式,因此也继承了蓝牙、WiFi的有扫描功能、连接功能、数据透传功能,被应用于智能家居的各种场景中,例如:远程控制BLE装置,接收BLE设备发送的数据&#xf…

线程的创建和使用(一)

1、线程 1.1、线程的概念 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 1.2、创建线程 方法一:继承Thread类 public class Exe_01 {public static void main(String[] args…

pandas与pyspark计算效率对比

日常工作中,主要还是应用HQL和SparkSQL,数据量大,分布式计算很快; 本地数据处理,一般会使用python的pandas包,api丰富,写法比较简单,但只能利用单核性能跑数,数据量大可…

【MySQL入门】-- 数据库简单的SELECT语句详解

目录 1.SQL分类 2.注释 3.数据导入指令 4.基本的SELECT语句 5.列的别名 6.去重复行 7.显示表结构 8.一些数据库基本操作 1.SQL分类 SQL语言在功能上主要分为三大类: DDL(Data Defintion Language)数据定义语言:定义不同的数据库,表…

【C#】并行编程实战:任务并行性(中)

本章继续介绍任务并行性,因篇幅所限,本章为中篇。 4、取消任务 .NET Framework 提供了以下两个类来支持任务取消: CancellationTokenSource :此类负责创建取消令牌,并将取消请求传递给通过源创建的所有令牌。 Cancell…

关于xinput1_3.dll丢失的详细解决方法

xinput1_3.dll是电脑文件中的dll文件(动态链接库文件)。如果计算机中丢失了某个dll文件,可能会导致某些软件和游戏等程序无法正常启动运行,并且导致电脑系统弹窗报错。 在我们打开软件或者游戏的时候,电脑提示xinput1_…

8、共享模型之工具

目录 8.1 线程池2、ThreadPoolExecutor(及其重要)1) 线程池状态2) 构造方法3) newFixedThreadPool4) newCachedThreadPool5) newSingleThreadExecutor6) 提交任务7) 关闭线程池8) 任务调度线程池 8.1 线程池 2、ThreadPoolExecutor(及其重要…

中国电子学会2023年05月份青少年软件编程Python等级考试试卷六级真题(含答案)

2023-05 Python六级真题 分数:100 题数:38 测试时长:60min 一、单选题(共25题,共50分) 1. 明明每天坚持背英语单词,他建立了英语单词错题本文件“mistakes.txt”,将每天记错的单词增加到该文件中&…

DuiLib的编译和运行

文章目录 1、原生DuiLib的编译和运行1.1、下载并解压成这个样子1.2、打开.sln解决方案文件1.3、编译成功 2、网易DuiLib编译和运行2.1、下载并解压成这个样子2.2、打开.sln解决方案文件2.3、编译成功 3、腾讯DuiLib编译和运行vs 20173.1、下载并解压成这个样子3.2、打开.sln解决…

使用 Node.js、K8s 和分布式 SQL 构建世界上最具弹性的待办事项列表应用程序

本文演示了如何使用 Kubernetes (K8s) 和分布式 SQL 构建云原生 Node.js 应用程序。 开发可扩展且可靠的应用程序是一项热爱的工作。一个云原生系统可能包括单元测试、集成测试、构建测试,以及用于构建和部署应用程序的完整管道,只需单击一个按钮即可。 …

【计算机网络】第二章应用层-电子科技大学2023期末考试

第二章 应用层 应用层协议原理 网络应用程序体系结构 客户机/服务器体系结构:至少有一个服务器,一个客户机,其中服务器总是打开的,具有固定的众所周知的IP地址,主机群集常被用于创建强大的虚拟服务器,而客…

【Trino实战】Trino下ORC与Parquet查询性能分析

Trino下ORC与Parquet查询性能分析 环境 OS:CentOS 6.5 JDK:1.8 内存:256G 磁盘:HDD CPU:Dual 8-core Intel Xeon CPU (32 Hyper-Threads) E5-2630 v3 2.40GHz HDFS:2.9.2 Hive:2.3.9 T…

[n00bzCTF 2023] CPR 全

Crypto AES 给了java的加密原码,AES加密,有key import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; import java.n…