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

目录

  • 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代表以太网帧所携带的上层数据类型。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

台电x80HD 安装linux系统,可调电压电源供电,外网访问、3D打印klipper固件

一、系统安装 参照https://blog.csdn.net/gangtieren/article/details/102975027安装 安装过程遇到的问题: 1、试了 linux mint 21 、ubuntu20.04 、ubuntu22.04 都没有直接安装成功,u盘选择安装进入系统后一直黑屏,只有ubuntu18.04 选择后稍…

ChatGPT读PDF、生成思维导图的几种方案

大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、读书和自媒体。 日常办公,我们离不开pdf文档读取,思维导图制作,那么ChatGPT能够给我们什么帮助呢? 通常的方法是:我们…

【大数据】大数据相关概念

文章目录 大数据:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型以及价值密度四大特征。Hadoop:是一个能够对大量数据进行分布式处理的软件框…

华硕天选2ubuntu18.04升级内核后黑屏

https://piaoyun.cc/post/26957.html 1.开机,进入grub画面 2.按’‘‘e’’’ 进入编辑开机指令的模式,同样找到’‘‘quite splash’’,并在后面加上对应的字。 1.Intel 82852/82855 或8系列显示晶片:i915.modeset1或i915.modeset0 2.Nvidia&#xff…

Pytest教程__钩子方法setup、teardown、setup_class、teardown_class(8)

pytest跳过用例执行的用法与unittest跳过用例大致相同。 pytest跳过用例的方法如下: pytest.mark.skip(reason):无条件用例。reason是跳过原因,下同。pytest.mark.skipIf(condition, reason):condition为True时跳过用例。 pyte…

设计模式之单例模式

一.单例模式 1.1 定义 我们来解释一下什么是单例模式.在软件系统中有很多对象,他们在同一时刻只能被一个用户或者多个线程访问,如果被共享的word文档在同一时间内,只能由一个用户对其进行写操作. 换一种说法就是 在单例模式中,类自身负责创建自己的唯一实例&#…

从零开始 Spring Boot 47:缓存

从零开始 Spring Boot 47:缓存 图源:简书 (jianshu.com) Spring 提供一个简单但使用的缓存(Cache)机制,我们可以利用它来优化代码执行效率。 简单示例 老规矩,我们从一个简单示例开始: Serv…

夜不收见证:夫妻从内江到成都,从真诚到真相

他们从四川内江的一条小巷,走进了成都的大街小巷。那里的房屋挨挨挤挤,像是在讲述他们曾经的梦想和勇气。他们是那些在内江的土地上种下了友情种子的少年,他们在成都的大地上,硕果累累。 他们从初中的课桌前走到了成人的世界里&am…

特征选择:过滤法,嵌入法,包装法

特征选择时首先要去除冗余特征。 它是由其他其他的特征中推演出来的。比如,一个球的体积,那么半径这个特征就是冗余的,因为我们可以由球的体积推算半径。冗余特征在很多时候都是不起作用的 过滤法 过滤方法通常用作预处理步骤,特…

6、DuiLib控件消息响应处理

文章目录 1、DuiLib控件消息响应处理2、基本的消息响应处理 Notify3、仿 MFC 形式消息响应 DUI_DECLARE_MESSAGE_MAP4、事件委托 MakeDelegate5、消息捕获&#xff08;拦截&#xff09;原生消息 HandleMessage 1、DuiLib控件消息响应处理 <?xml version"1.0" en…

PromptBench:大型语言模型的对抗性基准测试

PromptBench是微软研究人员设计的一个用于测量大型语言模型(llm)对对抗性提示鲁棒性的基准测试。这个的工具是理解LLM的重要一步&#xff0c;随着这些模型在各种应用中越来越普遍&#xff0c;这个主题也变得越来越重要。 研究及其方法论 PromptBench采用多种对抗性文本攻击&am…

前端后端交互-ElementUI(日期选择器)

日期选择器 页面效果 页面效果 组件源码 <!-- daterange: 范围选择类型format: 绑定后表单中显示的格式value-format: 传递时显示的格式--> <template><el-date-picker v-model"rangeTime" type"daterange" range-separator"至" …

吴恩达471机器学习入门课程3第1周——K-means

K-means 聚类 1 - 实现 K-means1.1 找到最近的质心练习11.2 计算质心均值练习2 2 - K-means在样本数据集上的应用3 - 随机初始化4 - K-means图像压缩4.1 数据集可视化处理数据 4.2图像像素上的 K-mean4.3 压缩图片 实现 K-means 算法&#xff0c;并将其用于图像压缩。 您将从一…

fscan安装配置(windows、linux系统)

fscan安装配置(windows、linux系统) 1、简介 fscan一款内网综合扫描工具&#xff0c;方便一键自动化、全方位漏扫扫描。 它支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探…

qt 时间编程之时钟

这里写目录标题 开启time格式自动 QTIM打点 qtime qt的时间类 qtimer qt的定时类 头文件包含以及定义 #include<QTime> #include<QTimer>QTime * time; QTimer * timer;开启 右键槽 timer start&#xff08;50&#xff09; 到达50毫米的时候会触发 time out信号…

AcWing801: 二进制中1的个数(两种方法详解)

原题引出 方法一&#xff1a;使用lowbit 算法的时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)&#xff0c;使用lowbit操作&#xff0c;每次操作截取一个数字的最后一个1后面的所有位&#xff0c;每次减去lowbit得到的数字&#xff0c;直到数字减到0&#xff0c;就得到了最终…

基于SSM+jsp的电子商城系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Redis原理 - 内存策略

原文首更地址&#xff0c;阅读效果更佳&#xff01; Redis 本身是一个典型的 key-value 内存存储数据库&#xff0c;因此所有的 key、value 都保存在之前学习过的 Dict 结构中。不过在其 database 结构体中&#xff0c;有两个 Dict &#xff1a;一个用来记录 key-value&#xf…

day1

在linux内核中&#xff0c;当用户打开设备文件时&#xff0c;内核中的VFS层会调用设备驱动中的sys_open()函数&#xff0c;在sys_open()函数中&#xff0c;内核会根据文件的inode号判断文件是否存在于文件系统中&#xff0c;如果存在&#xff0c;内核会找到这个文件的文件信息结…

翻筋斗觅食策略改进灰狼算法(IGWO)

目录 一、动态扰动因子策略 二、翻筋斗觅食策略 三、改进灰狼算法收敛曲线图 灰狼优化算法存在收敛的不合理性等缺陷&#xff0c;目前对GWO算法的收敛性改进方式较少&#xff0c;除此之外&#xff0c;当GWO迭代至后期&#xff0c;所有灰狼个体都逼近狼、狼、狼&#xff0c;…