UDP的报文结构及注意事项

news2024/11/24 13:31:26

UDP的报文结构及注意事项

  • 🔎UDP的报文结构
    • 源端口和目的端口
    • 报文长度
    • 校验和
  • 🔎UDP的注意事项
    • 端口号
    • 报文长度
    • 校验和
  • 🔎结尾

🔎UDP的报文结构

在这里插入图片描述
图片来自网络


在这里插入图片描述

源端口和目的端口

如果将 源IP 和 目的IP 看作是两台计算机在网络中的地址
那么 源端口 和 目的端口 就看作是两台计算机中的程序(比如 QQ)

举个栗子🥝

唐僧的自我介绍
贫僧自东土大唐而来, 欲往西天拜佛求经

这里的东土大唐就是源IP, 西天就是目的IP
这里的贫僧就是源端口, 拜佛就是目的端口

报文长度

一个 UDP 报文长度的最大值是 64KB
(2字节 --> 0 ~ 65535 --> 65535 / 1024 ≈ 64)

校验和

校验和是为了判断当前传输的数据是否出错

网络传输是有一定几率出现故障的(外部环境的干扰,强磁场的影响等)

举个栗子🥝

女神让滑稽老哥去买菜
分别是(1)芹菜 (2)黄瓜 (3)豆角 (4)白菜, 一共4样

滑稽老哥由于出门太急,只听清了要买4样菜
这时候滑稽老哥买的菜的种类不等于4样, 那么他一定是买错了
但是如果他买了4样菜,也不一定就买对了, 有可能滑稽老哥将黄瓜买成了土豆

校验和就是为了判定买的菜是不是4样
如果不是4样菜, 就一定是出错了
如果是, 也不一定就对


为了让校验和能够识别率更高一些(更为可靠), 计算的时候通常会用数据内容作为参数进行计算
数据内容发生变化, 校验和也会发生变化
(选取内容的一部分, 通过一些算术运算, 数学公式的变换,得到一个数值. 例如奇偶校验等)

发送方, 把载荷数据, 带入到校验和算法中, 计算生成的校验和结果(sum1)

在这里插入图片描述
接收方, 收到的数据, 既有载荷, 也有校验和 sum1
接收方通过同样的算法计算载荷得到校验和 sum2
对比 sum1 与 sum2 是否相同
如果不同, 则证明传输有误

🔎UDP的注意事项

端口号

端口号的取值范围是 0 ~ 65535 (2字节)

其中 < 1024 的端口号, 称为 “知名端口号”, 这部分端口是给一些服务器预留的, 编码的时候通常不使用这部分端口号

报文长度

使用 UDP 编程时, 需要注意 UDP 的报文长度不能过长

校验和

校验和的结果相同, 不一定传输无误
校验和的结果不同, 一定传输有误

🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油

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

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

相关文章

完美解决丨#在python中,如果引用的变量未定义,则会报告NameError: name ‘变量名‘ is not defined。

NameError 在python中&#xff0c;如果引用的变量未定义&#xff0c;则会报告NameError: name 变量名 is not defined。 如下代码抛出了一个异常&#xff1a; !/usr/bin/env python -- coding:utf-8 -- print hello world print hello %s % name 报错信息如下&#xff1a; Trac…

基于springboot和ajax的简单项目 02 代码部分实现,思路 (上)

01.由于是对功能的实现&#xff0c;应该是按照功能的需要去写代码&#xff0c;所以&#xff0c;先看前端html文件的代码。 02.项目的开始界面是starter.html文件。 关键的script标签 <script type"text/javascript">$(function(){//页面加载完成之后执行doLo…

VS中解决方案和项目的区别

总目录 文章目录总目录一、概述1、解决方案2、项目3、项目文件4、解决方案文件夹二、图解1、图解解决方案和项目的关系2、图解sln文件3、图解项目文件结语一、概述 1、解决方案 解决方案是一个容器&#xff0c;通常包含多个项目&#xff0c;这些项目通常相互引用。 解决方案中…

CSDN粉丝首破一千关,有你名字

2023-4-11&#xff0c;CSDN粉丝首破一千关。 感谢词版本1,哈哈哈哈哈哈哈哈 在编程世界里&#xff0c;人们可以像创造生命一样创造程序&#xff0c;而我对这种创造和创新的热情&#xff0c;从我的csdn博客社区粉丝首次突破一千人的消息中得到了极大的满足和激励。作为一个Pyth…

Spring中Bean初始化和销毁的多种方式

Spring中Bean初始化和销毁的多种方式一、Bean的多种初始化方式1.PostConstruct注解2.实现InitializingBean接口3.声明init-method方法二、Bean的多种销毁方式1.PreDestroy注解2.实现DisposableBean接口3.声明destroy-method方法三、总结Spring中支持在Bean的加载时声明初始化方…

跑得快的不止是程序丄【掌握自动化测试让你过五关斩六将】

拥有自动化测试技能的软件测试人员更具竞争力&#xff0c;这是当下面试过的人都非常认同的一句话。 作为一名软件测试人员&#xff0c;我们都知道“时间就是金钱”&#xff0c;尤其是在快速迭代的敏捷开发模式下&#xff0c;更是如此。在传统的软件测试流程中&#xff0c;手工…

【MySQL】JDBC编程

摄影分享 目录 数据库编程的必备条件 Java的数据库编程&#xff1a;JDBC JDBC的使用步骤 1. 创建数据源DataSourece 2.连接数据库 3.构造并执行sql语句 4.遍历结果集合 5.释放资源 数据库编程的必备条件 编程语言&#xff0c;如Java&#xff0c;C、C、Python等数据库&am…

谁说35岁是程序员的中年危机?那是他还不知道这些新路子

文章目录一、年纪大能不能进大厂&#xff1f;二、为什么说35是危机&#xff1f;1.精力衰退2.脑力衰退3.知识/技术迭代三、年龄大的程序员有哪些出路&#xff1f;1.技术管理2.创业3.技术外包4.做老师5.做自媒体6.写书四、结语我自己今年已有44了&#xff0c;从2021年开始就已经不…

详解自动化测试之 Selenium 与 Junit

文章目录1. 什么是自动化2. 自动化测试的分类3. selenium&#xff08;web 自动化测试工具&#xff09;4. 一个简单的自动化例子5. selenium 常用方法5.1 查找页面元素 findElement ()5.2 元素的定位 By 类5.3 xpath 路径语言6. 常见的元素操作6.1 输入文本 sendKeys6.2 点击 cl…

什么是Android FrameWork,请你介绍一下?

Framework是什么 Framework的中文意思是“框架”&#xff0c;在软件开发中通常指开发框架&#xff0c;在一个系统中处于内核层之上&#xff0c;为顶层应用提供接口&#xff0c;被设计用来帮助开发者快速开发顶层应用&#xff0c;而不必关心系统内核运行机制&#xff0c;通常Fr…

zabbix报警配置

一、前言 这里用的是zabbix6.0LTS版本&#xff0c;这里记录自定义配置报警&#xff0c;因为邮件报警基本已经很少有人使用了&#xff0c;大部分是&#xff0c;短信、飞书、钉钉等等工具&#xff0c;所有需要定制化报警 二、定义脚本存放路径 cd /usr/local/zabbix/etc[rootn…

MODBUS 转 EtherNet/IP 网关连接希望森兰变频器案例

Modbus转Ethernet/Ip网关&#xff0c;用于将多个 MODBUS 从站设备接入 ETHERNET/IP 主站网络&#xff0c;实现 MODBUS 转 ETHERNET/IP 功能。配上 MODBUS 转 EtherNet 网关专用的 EDS 文件,实现 ETHERNET/IP 主 站对 MODBUS 从站设备的控制。 需要设备 .24v电源模块 罗克韦尔PL…

【城市污水处理过程中典型异常工况智能识别】(基于迁移学习,拓扑结构卷积神经网络的污水异常工况识别)

基于迁移学习拓扑结构卷积神经网络的污水异常工况识别 **摘 要&#xff1a;针对城市污水处理过程的异常工况识别问题&#xff0c;本文提出了基于图像纹理性分析的工况识别方法。首先总结了几种典型的异常工况的特点&#xff0c;并且分析了卷积神经网络特征提取异常工况的几种纹…

月薪20k的性能测试必备技能:发现性能瓶颈掌握性能调优

背景 当下云计算、大数据盛行的背景下&#xff0c;大并发和大吞吐量的需求已经是摆在企业面前的问题了&#xff0c;其中网络的性能要求尤为关键&#xff0c;除了软件本身需要考虑到性能方面的要求&#xff0c;一些硬件上面的优化也是必不可少的。 作为一名测试工作者&#xf…

ubuntu将主文件夹的文件夹中文名称改为英文

许多人在使用ubuntu时使用汉语的&#xff0c;但是主文件夹下的文件夹也随之变成了中文&#xff0c;导致命令行下输入文件夹名称非常的困难&#xff0c;那么怎么简单的把名字改成英文的呢&#xff1f;&#xff08;也不知道哪个版本开始不出现下面这个图示提示了&#xff09; 方法…

Vue2-黑马(十二)

目录&#xff1a; &#xff08;1&#xff09;vue2-登录-store-user.js &#xff08;2&#xff09;实战-登录-store-user.js &#xff08;3&#xff09;登录-实战--permission.js-获取角色 &#xff08;1&#xff09;vue2-登录-store-user.js 我们进入store中的actions查看它…

MySQL - 基于SSL安全连接的主从复制

目录 &#x1f341;主从复制的原理 &#x1f341;部署master &#x1f341;部署slave &#x1f341;测试SSL主从复制 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;MySQL专栏&#xff1a;MySQL专栏地址 生产环境中一台mysql主机存在单点故障&#xff0c;所…

c/c++:二维数组,数组的行数和列数求法sizeof,数组初始化不同形式,5个学生,3门功课,求学生总成绩和功课总成绩

c/c&#xff1a;二维数组&#xff0c;数组的行数和列数求法sizeof&#xff0c;数组初始化不同形式&#xff0c;5个学生&#xff0c;3门功课&#xff0c;求学生总成绩和功课总成绩 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#x…

【从零开始学Skynet】实战篇《球球大作战》(十一):测试登录流程

终于可以测试work协议了。只要走得通&#xff0c;就代表完成了整套底层框架。 1、主服务修改 我们重新修改主服务&#xff0c;让它智能一些&#xff0c;根据配置文件自动开启服务&#xff0c;无须手动设置。如下代码所示&#xff1a; local skynet require "skynet"…

Linux应用编程(信号基础)

一、基本概念 信号是事件发生时对进程的通知机制&#xff0c;也可以把它称为软件中断。信号与硬件中断的相似之处在于能够打断程序当前执行的正常流程&#xff0c;其实是在软件层次上对中断机制的一种模拟。大多数情况下&#xff0c;是无法预测信号达到的准确时间&#xff0c;…