JavaEE UDP协议

JavaEE UDP协议

在之前的文章中有对UDP协议套接字的使用进行讲解,本文主要对UDP协议进行一些理论补充。

文章目录

  • JavaEE UDP协议
    • 1. 概念
    • 2. UDP协议格式
      • 2.1 数据报长度
      • 2.2 校验和/检验和
        • 2.2.1 CRC校验
        • 2.2.2 MD5算法

1. 概念

UDP,即User Datagram Protocol(用户数据报协议),为传输层协议

特点:

  • 无连接:知道对端的IP和端口号就直接进行传输,不需要建立连接;
  • 不可靠传输:没有确认机制,没有重传机制;如果因为网络故障该段无法发送给对方,UDP协议层也不会给应用层返回任何错误信息;
  • 面向数据报:不能够灵活的控制读写数据的次数和数量;

2. UDP协议格式

在这里插入图片描述

对于UDP数据报来说,遵循 UDP数据报 = 报头 + 载荷(应用层数据包)

在这里插入图片描述

2.1 数据报长度

由上述两图可以看出,UDP报头中一共有4个字段,每个字段2个字节(16个bit位),一共8个字节。

其中UDP协议首部中有一个16位的最大长度,也就是说UDP数据报最大长度是64KB(包含UDP首部)

2.2 校验和/检验和

在网络传输的过程中,数据可能会收到外界环境的干扰(如光信号/电信号)而出现问题,常见的有比特翻转

网络中的校验和并非是简单的按照长度/数量作为校验的标准,一定要让数据的内容能够参与进去,对此,在UDP中校验和一般是使用以下两种方式:

2.2.1 CRC校验

循环冗余校验(Cyclic Redundancy Check, 简称CRC)。

它的操作概述如下:

UDP数据报发送方在发送之前,先计算一遍CRC,把算好的CRC值放到UDP数据报中(设这个CRC值为value1)。接下来这个数据报通过网络传输到达接收端,接收端收到这个数据之后,也会按照同样的算法再算一遍CRC的值,得到的结果是value2,比较自己算的value2和收到的value1是否一致,如果一致,就说明数据是正确的,如果不一致,则传输过程中发生了比特翻转.

上述CRC算法中,如果只有一个bit位发生翻转,此时100%能够发现问题,但如果有两个/多个bit位发送翻转,有可能恰好校验和与之前一样!(这样的情况概率比较低,可以忽略不计)

2.2.2 MD5算法

MD5算法一般用于确保信息传输完整一致,它有以下特点:

  • 定长:任意长度的数据,算出的MD5值长度都是固定的
  • 分散:计算md5过程中,原始数据只要变化一点点,算出来的md5值就会有很大差异
  • 不可逆:提供一个源字符串计算md5值过程非常简单,但提供一个算好的md5值,,将它还原回原始的字符串,理论上是无法完成的

在进行校验和的适合可以使用MD5算法这种高精度的校验和算法!

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

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

相关文章

【PyRestTest】高级使用

本节主要涉及PyRestTest的高级特征的详细使用,主要指:generators(生成器), variable binding(变量绑定), data extraction(数据提取), content validators(文本验证) 它们是如何组合在一起的? 模板和上下文 测试和基准测试可以使用变量来模板化动态配置。使用基础的…

【Java程序设计】【C00172】基于SSM的老年人健康管理系统(论文+PPT)

基于SSM的老年人健康管理系统(论文PPT) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的老年人健康管理系统 本系统分为前台、管理员以及用户3个功能模块。 前台:当游客打开系统的网址后,首先看到的就是首…

【前端-VUE+TS】Vue3组件化-知识补充(六)

一. 动态组件 比如我们现在想要实现了一个功能: 点击一个tab-bar,切换不同的组件显示; 案例截图 这个案例我们可以通过两种不同的实现思路来实现: 方式一:通过v-if来判断,显示不同的组件;方式二…

【开源学习】TB-gateway -- 基本配置与使用

【开源学习】TB-gateway -- 基本配置与使用 tb-gateway 安装部署centOS 7 安装(不推荐)Docker 安装(推荐) tb-gateway 通用配置文件连接配置模块 thingsboard存储配置模块 storage远程调用配置模块 grpc连接器配置模块 connectors…

C++核心

4.2对象的初始化 生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全 C中的面向对象来源于生活,每个对象也会有初始设置以及 对象销毁前的清理数据的设置 4.2.1构造函数和析构函数 对象的初始化和清理…

数据恢复之道:DevicData-P-XXXXXXXX勒索病毒的预防与恢复攻略

尊敬的读者: 随着科技的发展,网络安全问题愈发突出,而勒索病毒作为其中的一种恶意软件,正不断演进成为威胁用户数据安全的严重问题。本文将深入介绍.DevicData-P-XXXXXXXX勒索病毒的特征,提供被感染文件的恢复方法&am…

os.environ函数用法

os.environ 是 Python 中 os 模块提供的一个字典,它表示当前系统的环境变量。环境变量是在操作系统级别设置的键值对,用于配置系统行为和提供信息给正在运行的进程。 os.environ 的基本用法包括获取和设置环境变量的值。下面是一些基本的使用示例&#…

jupyter python笔记杂乱

问题产生的原因: 无法执行sess.run()的原因是tensorflow版本不同导致的,tensorflow版本2.0无法兼容版本1.0 解决办法: tf.compat.v1.disable_eager_execution() 确保tf’2能运行tf1的代码 notebok打开指定文件夹 直接解决

落地PC ,AI的“iPhone时刻”要来了?

在AI技术浪潮持续翻涌的背景下,近段时间,不断有声音强调“2024年将是AIPC元年”。 为了奔赴这一可以预见的未来,产业链上下游的企业也“干劲十足”。品牌商方面,2024年的国际消费电子展(CES)上&#xff0c…

【ASP.NET Core 基础知识】--身份验证和授权--授权和策略

一、授权和策略的概念及应用 在ASP.NET Core中,授权和策略是重要的安全概念,用于确定用户是否有权限执行特定的操作或访问特定的资源。以下是关于ASP.NET Core中授权和策略的概念及其应用的一些重要信息: 1.1 授权(Authorizatio…

Linux 文件IO

目录 linux下的文件分类: 文件描述符原理:(底层原理,可跳过) 虚拟文件系统: 内存中的inode与磁盘中的inode open函数 函数原型: 形参列表: 代码: close函数 er…

GBASE南大通用分享-Database 属性

GBASE南大通用分享 获得当前数据库的名字或在连接打开后使用的数据库名字。  语法 [Visual Basic] Public Overrides ReadOnly Property Database As String Get [C#] public override string Database { get; }  实现 IDbConnection.Database  注释 Database…

Vue_Router_守卫

路由守卫:路由进行权限控制。 分为:全局守卫,独享守卫,组件内守卫。 全局守卫 //创建并暴露 路由器 const routernew Vrouter({mode:"hash"//"hash路径出现#但是兼容性强,history没有#兼容性差"…

一分钟在SpringBoot项目中使用EMQ

先展示最终的结果: 生产者端: RestController RequiredArgsConstructor public class TestController {private final MqttProducer mqttProducer;GetMapping("/test")public String test() {User build User.builder().age(100).sex(1).address("世界潍坊渤…

springboot(ssm茶叶销售系统 在线茶叶商城管理系统 Java系统

springboot(ssm茶叶销售系统 在线茶叶商城管理系统 Java系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7&…

protobuf 序列化协议之数据结构

. 一、数据结构 1、map /*** <pre>* map* ------------------------------------------------------------------------------------------* fieldNumber0Wiretype | entryMessage | fieldNumber0Wiretype | entryMessage* …

中国建设银行,这年终奖噶噶高!!!!(含算法原题)

国企年终 今天刷到一个近期帖子:「中国建设银行&#xff0c;这年终奖噶噶高!!!!」 先撇去具体内容不看&#xff0c;能在自然年的 月初&#xff0c;就把去年的奖金发了的企业&#xff0c;首先值得一个点赞。 再细看内容&#xff0c;年终奖是一个 字头的 位数。 由于国企通常没…

burp靶场--xss下篇【16-30】

burp靶场–xss下篇【16-30】 https://portswigger.net/web-security/all-labs#cross-site-scripting 实验16&#xff1a;允许使用一些 SVG 标记的反射型 XSS ### 实验要求&#xff1a; 该实验室有一个简单的反射型 XSS漏洞。该网站阻止了常见标签&#xff0c;但错过了一些 S…

Excel没有内置统计字数功能,但可以用一些变通的方法

是否需要计算Excel工作簿中某个单元格或单元格范围内的单词数? 出于多种原因,你可能需要计算文本数据中的字数。也许你有逗号分隔的列表,需要计算每个列表中的项目数。 不幸的是,Excel没有内置的单词计数方法。但是有一些聪明的方法可以得到你需要的结果。 这篇文章将向…

三步实现 Sentinel-Nacos 持久化

一、背景 版本&#xff1a;【Sentinel-1.8.6】 模式&#xff1a;【Push 模式】 参照官网介绍&#xff1a;生产环境下使用Sentinel &#xff0c;规则管理及推送模式有以下3种模式&#xff1a; 比较之后&#xff0c;目前微服务都使用了各种各样的配置中心&#xff0c;故采用Pus…