5.7.3 UDP协议格式(二)使用Wireshark分析UDP用户数据报

news2024/11/19 1:33:29

5.7.3 UDP协议格式(二)使用Wireshark分析UDP用户数据报

我们通过对Wireshark采集的UDP用户数据报进行分析,判定一下UDP用户数据报报文接收的是否正确,这里我们首先要对Wireshark采集到的UDP数据的含义。

如图

Wireshark

其中分组详情面板中显示的是采集到数据的基本信息,包括数据报采集的时间、报文长度等,采集到的数据以十六进制数据在分组字节流面板中显示。

  1. 以太帧格式的信息:

    如图

    帧

    分组字节流面板中前14个字节的信息是以太帧的信息,其中前六个字节是目的MAC地址,紧接着的六个字节是源MAC地址,再接着的两个字节0800表示的是网络层携带的数据类型是IP数据报,这里我们需要注意的是帧尾的4字节的CRC校验和Wireshark软件是没有采集的,因为网卡没有提供CRC的信息给软件的捕获引擎,所以帧的总长应该是110+4字节114字节,符合最短的以太网有效帧长。

  2. IP数据报首部

    Wireshark中捕获的IP数据报的详细信息参看(5.2.4 IP数据报(二)分析Wireshark捕获的数据帧)

    从第十五个字节开始是IP数据报的首部信息,因为UDP是封装在网络层IP数据报中的,IP数据报的内容可以从分组详情面板中解析的内容看到,在分组字节流面板中第15个字节开始45表示的是使用的是IPv4协议,首部是固定的20个字节,IP数据报首部的其他信息参看(5.2.3 IP数据报(一)IP数据报的格式)

  3. UDP首部8个字节

    如图
    UDP首部
    我们知道UDP的首部一共是4个字段,每个字段是两个字节,所以我们可以把这8个字节进行拆分拆分结果如下
    4个字段
    源端口是53699是一个一般的端口,目的端口32761,UDP用户数据报长度76字节,校验和2c9e,剩余的就是UDP的数据部分,一共是76字节减去UDP首部的8个字节,所以数据部分一共是68字节。

基于以上基础知识我们来看一下校验和是否正确。

计算UDP首部校验和

  1. UDP首部校验和字段设置为全零。

    d1c37ff9
    004c0000
  2. 我们将UDP用户数据报中的首部和UDP的数据部分分别以16比特为单位进行划分,也就是两个字节两个字节进行划分。

    这里我们需要说明的是**如果UDP的数据字段长度为奇数个字节的话,责令填充一个字节的全零,因为我们知道对于UDP的校验和是按照每16比特位进行划分(5.7.2 UDP协议格式(一)——UDP差错控制),也就是说按照两字节作为一组。**所以如果长度是奇数个字节的话应该填充一个字节的零。对于示例是68个字节是偶数就不用进行填充了。当然作为填充的字节不会被当做接收的数据,因为在UDP首部的长度字段已经指示了报文的长度。

  3. 伪首部部分参与校验和的计算我们知道伪首部包括源IP地址、目的IP地址、IP首部的协议字段、UDP的长度字段

    伪首部

  4. 反码求和运算,反码求和运算的规则如下

反码求和

从低位到高位逐位进行计算,这里0+0等于0,0+1=1,1+1=10,所以这里需要向高位产生一个进位,如果最后在超过16为还有进位的话,最后加到尾巴中。

  1. 对累加结果取反码就得到UDP的校验和。

    UDP首部+UDP数据+伪首部————>结果取反

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

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

相关文章

编译时间和运行态时间交换的优缺点

前言 (1)前几天,我刷视频无意之间看到一个视频说,sizeof(a),这个a是会自增吗? (2)如果有经验的人肯定会说,不会自增,这是常识。那么将这句话转化为汇编之后会…

GLP-1爆火2023:神药显雏形,争夺引内卷

2023年过半,如果要从创新药角度做一份总结,什么赛道、哪类药物会是“当红炸子鸡”?答案一定是GLP-1类药物。 原本用于治疗二型糖尿病的药物,在国内社交媒体上,关于司美格鲁肽的减肥奇效,甚至引发了一股抢药…

GBDT算法原理以及实例理解(含Python代码简单实现版)

一、算法简介: GBDT 的全称是 Gradient Boosting Decision Tree,梯度提升树,在传统机器学习算法中,GBDT算的上是TOP前三的算法。 想要理解GBDT的真正意义,那就必须理解GBDT中的Gradient Boosting和Decision Tree分别…

python开发构建基于国家气象台免费免费数据查询接口的气象数据采集与可视化分析应用

天气气象数据是用于描述和记录大气环境状态和变化的数据。它包含了各种气象要素和参数的观测值,如温度、湿度、风速、降水量、气压等。 天气气象数据通常由气象站点、卫星观测和气象雷达等设备获取。这些设备会定期测量和记录各种气象要素,并将数据传输…

怎么虚化图片?虚化图片的软件分享!​

虚化图片是一种广泛应用于摄影和设计领域的技术。它可以通过柔化图像的某些部分,使图片更加优美、柔和,使人们更加关注图像的主体,强调出图片的重点。虚化图片的使用场景非常广泛。它可以用于制作海报、广告、杂志等印刷媒体,也可…

编译、安装、调试Linux内核

这里写目录标题 编译安装内核下载内核安装依赖更改.config编译内核安装首先安装模块安装内核更改引导更改grub重启 其他操作清理内核源目录卸载安装的内核修改内核配置菜单实现对新加入内核源码的控制 常见问题1. Module.symvers is missing2. No rule to make target ‘debian…

Redux的讲解与教程

我们在学习和使用React做项目的时候,肯定离不开Redux的使用。那么 “Redux” 是什么呢?。它有什么作用?它帮助我解决什么问题?我为什么要使用它?搞懂这些能让我们更好的理解和使用Redux。 Redux 是什么? R…

setjmp和longjmp

使用这两个函数时&#xff0c;一定要牢记&#xff0c; longjmp函数是有去无回的&#xff0c;后面还有两个错误的使用示例。 #include <setjmp.h> int setjmp(jmp_buf env); void longjmp(jmp_buf env, int val); 基础例子&#xff1a; #include <setjmp.h> #inc…

XHbuilder 需要的 ipa 签名,超详细的教程,你不看吃亏的是自己!

今天使用 hbuilder 运行到 ios 真机的时候&#xff0c;突然发现还需要 ipa 签名&#xff0c;这是什么东东呢&#xff1f; 1、IPA 签名是什么&#xff1f; 因苹果公司禁止企业证书用于非企业内部开发者。所以开发者无法再使用DCloud的企业证书签名的标准运行基座。 运行标准基…

预约直播 | 展心展力MetaApp:基于DeepRec的稀疏模型训练实践

MetaApp-推荐广告研发部&#xff0c;主要负责 MetaApp 拳头产品 233 乐园的首页信息流的推荐和广告系统&#xff0c;是比较传统的推广搜组。本次议题介绍了 MetaApp-推荐广告研发部 从传统的TensorFlow&#xff08;cpu&#xff09;自研分布式ps方案&#xff0c;逐步迁移到使用…

智能安全配电装置伙房食堂中的应用

【摘要】伙房食堂是高频用火用电场所&#xff0c;用火用电设备集中&#xff0c;同时人流量密集&#xff0c;如果没有做好预防工作&#xff0c;则容易引发火灾&#xff0c;造成人员伤亡。智能安全配电装置作为一种安全配电产品&#xff0c;可以有效预防电气事故的发生&#xff0…

HttpRunner_参数化进阶

目录 一.获取返回包数据 二.调用其他接口返回值 三.yml文件 四.设置全局变量并引用 五.调用函数 六.参数化驱动(最简单的方式) 七.参数化驱动(复杂的方式)   八.使用指定的报告模板指定报告生成路径 九.保存测试过程数据 十.单独使用HttpRunner 一.获取返回包数据 …

QCN6274 QCN9274 What is the difference?|WIFI7 Solution|Wallys

QCN6274 QCN9274 What is the difference?|WIFI7 Solution|Wallys Q:QCN6274 QCN9274 What is the difference? A:The QCN6274 is a Qualcomm WiFi 7 chip, and Wallys is currently in the process of developing a WiFi module integrated with the QCN9274 chip. Its imp…

Pytorch实现多GPU并行训练(DDP)

Pytorch实现并行训练通常有两个接口&#xff1a;DP&#xff08;DataParallel&#xff09;和DDP&#xff08;DistributedDataParallel&#xff09;。目前DP&#xff08;DataParallel&#xff09;已经被Pytorch官方deprecate掉了&#xff0c;原因有二&#xff1a;1&#xff0c;DP…

浅聊Android性能优化~

作者&#xff1a;一只修仙的猿 前言 关于性能优化&#xff0c;可能我们的第一反应是这是高手做的事情&#xff0c;一直以来我也是这样认为的。但在最近一段时间&#xff0c;在公司项目上做了一些框架的性能优化&#xff0c;让我初步掀开了性能优化的面纱&#xff0c;也对他有了…

VirtualBox 部署 KVM 虚拟化

什么是KVM技术&#xff1f; KVM&#xff08;Kernel-based Virtual Machine&#xff09;是一种开源的虚拟化技术&#xff0c;它是Linux内核的一部分。KVM通过将Linux内核转换为Hypervisor&#xff0c;允许在同一物理主机上运行多个虚拟机实例&#xff0c;每个实例可以独享一部分…

JAVA学习之String学习

1.底层是用什么实现的&#xff1f; JDK8用的char数组&#xff0c;JDK9开始使用byte数组,而且都是final型&#xff0c;所以不同字符串&#xff08;值&#xff09;的地址必然不同。 char和byte的区别&#xff1a;char是2个字节表示&#xff0c;而byte是一个字节。 JDK17中&…

Vue3解决:[Vue warn]: Failed to resolve component: el-table(或el-button) 的三种解决方案

1、问题描述&#xff1a; 其一、报错为&#xff1a; [Vue warn]: Failed to resolve component: el-table If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement. at <App> 或者&#xff1a; …

网络安全(黑客)自学

建议一&#xff1a;黑客七个等级 黑客&#xff0c;对很多人来说充满诱惑力。很多人可以发现这门领域如同任何一门领域&#xff0c;越深入越敬畏&#xff0c;知识如海洋&#xff0c;黑客也存在一些等级&#xff0c;参考知道创宇 CEO ic&#xff08;世界顶级黑客团队 0x557 成员&…

kubectl-ai:K8S资源清单的GPT助手

琦彦&#xff0c;在 **云原生百宝箱 **公众号等你&#xff0c;与你一起探讨应用迁移&#xff0c;GitOps&#xff0c;二次开发&#xff0c;解决方案&#xff0c;CNCF生态&#xff0c;及生活况味。 kubectl-ai 项目是一个kubectl使用 OpenAI GPT 生成和应用 Kubernetes 清单的插件…