【Java】传输层UDP

news2024/11/27 13:38:49

传输层UDP

  • UDP基本特点
    • 无连接
    • 不可靠
    • 面向数据报
    • 缓冲区
    • 大小受限
  • UDP协议端格式
    • 16位UDP长度
    • 16位UDP检验和

UDP基本特点

UDP传输的过程类似于寄信

无连接,不可靠传输,面向数据报,全双工

无连接

知道对端的IP和端口号就直接进行传输,不需要建立连接;

不可靠

没有任何安全机制,发送端发送数据报以后,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返回任何错误信息

面向数据报

应用层交给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并;
用UDP传输100个字节的数据:

如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节;而不能循环接收10次, 每次接收10个字节

缓冲区

UDP只有接收缓冲区,没有发送缓冲区:

UDP没有真正意义上的 发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作;
UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致;如果缓冲区满了,再到达的UDP数据就会被丢弃;

UDP的socket 既能读,也能写,这个概念叫做 全双工

大小受限

UDP协议首部中有一个16位的最大长度。也就是说一个UDP能传输的数据最大长度是64K(包含UDP首
部)。

UDP协议端格式

在这里插入图片描述
其中十六位源端口号和十六位目的端口号很好理解

16位UDP长度

UDP数据报中的16位UDP长度占据16个比特位,总共能表示2^16-1的数据,此处单位使用字节,也就是UDP数据报的最大长度是64kb,超过这个长度的UDP报文会被拆分为多个片段进行传输和重新组装

16位UDP检验和

在网络传输数据的过程中,如果收到了外界的干扰,数据可能会出现错误

再网络传输中,数据往往是通过光信号,电信号,电磁波作为介质来传播的,如果此时遭受到了一些磁场或者高能粒子射线等能够影响这些信号传播,此处数据就会出现错误,可能会导致出现比特翻转这样的现象

在接受方收到数据之后,需要先确认这个数据是否是一个错误的数据,此时通过校验和是最简单有效的方式

UDP的校验和使用的一种简单粗暴的CRC校验算法(循环冗余校验和)

CRC(Cyclic Redundancy Check,循环冗余校验)是一种常用的错误检测技术,用于验证数据在传输或存储过程中是否发生了错误或篡改。

CRC基于多项式除法,它通过对待发送的数据进行一系列的异或运算,生成一个固定长度的校验码。这个校验码会被附加到原始数据中一起进行传输。接收方在接收到数据后,再次进行一系列的异或运算计算校验码,并与接收到的校验码进行比较。如果两者不一致,就说明数据发生了错误。

如果数据相同,则校验和相同
但是此时,校验和相同,代表的数据不一定相同,因为会存在偶然情况,在两个不同的数据报进行计算校验和时,产生了相同的校验和,但是在工程上,往往可以忽略这个误差

如果出现了校验和检验不通过,这个数据报就会被丢弃

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

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

相关文章

Linux进程间通信(IPC)的几种方式

概述: “ 进程间通信(IPC,Inter-Process Communication),指至少两个进程或线程间传送数据或信号的一些技术或方法。进程是计算机系统分配资源的最小单位(进程是分配资源最小的单位,而线程是调度的最小单位,…

java八股文面试[数据库]——行溢出

行记录格式 1) 行格式分类 表的行格式决定了它的行是如何物理存储的,这反过来又会影响查询和DML操作的性能。如果在单个page页中容纳更多行,查询和索引查找可以更快地工作,缓冲池中所需的内存更少,写入更新时所需的I/O更少。 I…

如何利用TikTok营销策略,来帮你赢得用户的心?

TikTok作为一款全球热门的短视频社交应用,已经成为许多品牌和营销人员的首选平台之一。作为一个出海公众号博主,我将在下面的文章中探讨TikTok营销的重要性、策略和成功案例。 首先,我们来谈一谈TikTok营销的重要性。随着移动互联网的迅速发…

突然发现ONLYOFFICE支持了.wps格式系列文件了

突然发现ONLYOFFICE支持了.wps格式系列文件了 最近做慕课,突然发现,我国产金山的WPS办公软件的.wps后缀名格式文件,居然被ONLYOFFICE这款办公软件支持打开了,找到官网仔细查看更新说明才确认就是最新一次更新加入的,并…

LabVIEW利用人工神经网络辅助进行结冰检测

LabVIEW利用人工神经网络辅助进行结冰检测 结冰对各个领域构成重大威胁,包括但不限于航空航天和风力涡轮机行业。在起飞过程中,飞机机翼上轻微积冰会导致升力降低25%。研究报告称,涡轮叶片上的冰堆积可在19个月的运行时间内造成29MWh的功率损…

View体系简析

应用程序中的View框架 应用程序中的View框架如图所示。 View和ViewRoot 如果以xml文件来描述UI界面的layout&#xff0c;可以发现里面的所有元素实际上都形成了树状结构的关系&#xff0c;比如&#xff1a; <LinearLayout xmlns:android"http://schemas.android.c…

算法通关村-----快速排序的应用

数组中的第K个最大元素 问题描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。详见leetcode215 问题分析 之前我们已经使用堆排序/堆查找的…

群晖NAS:黑群cpu信息显示不正确修正

群晖NAS&#xff1a;黑群cpu信息显示不正确修正 黑群晖的面板信息&#xff0c;cpu信息一直是错误的&#xff0c;很难受&#xff0c;修正方法如下&#xff1a; 【1】下载插件&#xff1a; 打开&#xff1a; https://github.com/FOXBI/ch_cpuinfo/releases 下载&#xff1a; …

图像分割笔记(二): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程))

文章目录 一、图像分割介绍二、YOLOv5-Seg介绍三、代码获取四、视频讲解五、环境搭建六、数据集准备6.1 数据集转换6.2 数据集验证七、模型训练八、模型验证九、模型测试十、评价指标一、图像分割介绍 图像分割是指将一幅图像划分为若干个互不重叠的区域,每个区域内的像素具有…

win7打开文件夹总弹出新窗口怎么办

我们在使用电脑打开文件夹时&#xff0c;都是在同一个窗口显示&#xff0c;查看非常方便&#xff0c;如果遇到每次打开文件夹弹出新窗口就总觉得很烦人&#xff0c;下面就一起来看看解决win7文件夹每次打开新窗口的方法。 一、 使用360或相关杀毒软件查杀木马&#xff0c;完成…

Kafka3.0.0版本——文件存储机制

这里写木目录标题 一、Topic 数据的存储机制1.1、Topic 数据的存储机制的概述1.2、Topic 数据的存储机制的图解1.3、Topic 数据的存储机制的文件解释 二、Topic数据的存储位置示例 一、Topic 数据的存储机制 1.1、Topic 数据的存储机制的概述 Topic是逻辑上的概念&#xff0c…

网易互娱游戏测试岗位面试喜欢问什么?

对游戏感兴趣&#xff0c;但是计算机技能还有些许欠缺的同学们可以试下游戏测试这个岗位。下面总结了网易互娱游戏测试岗位的面经。 网易互娱的游戏测试岗位面试的主要内容包括&#xff1a;简历里的项目和实践经历&#xff0c;简单的技术问题和游戏相关的经历和技术。一定要有…

【C语言】探讨常见自定义类型的存储形式

&#x1f6a9;纸上得来终觉浅&#xff0c; 绝知此事要躬行。 &#x1f31f;主页&#xff1a;June-Frost &#x1f680;专栏&#xff1a;C语言 &#x1f525;该文章将探讨结构体&#xff0c;位段&#xff0c;共用体的存储形式。 目录&#xff1a; &#x1f30d;结构体内存对齐✉…

MySQL的常用术语

目录 1.关系 2.元组 3.属性 MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 1.关系 前面的博客有说到,MySQL是一款关系型数据库管理软件,一个关系就是 一张二维表(表) 我想大家都知道表格怎么…

linux常用命令及解释大全(一)

目录 一、系统信息 二、关机、重启及登出 三、文件和目录 3.1 导航命令 3.2 查看命令 3.3 创建和删除命令 3.4 复制和链接命令 3.5 其他命令 四、文件搜索 五、挂载文件系统 六、磁盘空间 七、用户和群组 总结 前言 Linux 是一种自由和开放源代码的操作系统&…

编写软件检测报告有哪些注意事项?软件检测报告获取

软件检测报告是指把测试的过程和结果写成文档&#xff0c;对发现的问题和缺陷进行分析&#xff0c;为纠正软件的存在的质量问题提供依据&#xff0c;同时为软件验收和交付打下基础。 一、编写软件检测报告的注意事项 1、报告的结构要合理和清晰。应该按照一定的逻辑顺序&…

基于Java+SpringBoot+Vue前后端分离医院挂号就诊系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

重磅| Falcon 180B 正式在 Hugging Face Hub 上发布!

引言 我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face&#xff01; Falcon 180B 为开源大模型树立了全新的标杆。作为当前最大的开源大模型&#xff0c;有180B 参数并且是在在 3.5 万亿 token 的 TII RefinedWeb 数…

K8S访问控制------认证(authentication )、授权(authorization )体系

一、账号分类 在K8S体系中有两种账号类型:User accounts(用户账号),即针对human user的;Service accounts(服务账号),即针对pod的。这两种账号都可以访问 API server,都需要经历认证、授权、准入控制等步骤,相关逻辑图如下所示: 二、authentication (认证) 在…

【Linux】- Linux下搭建Java环境[IDEA,JDK8,Tomcat]

Java环境 1. 安装JDK2.安装tomcat3.安装idea4. 安装MySQL5.7 1. 安装JDK /usr/local&#xff1a;存放用户自行安装的软件&#xff0c;默认情况下不会被系统软件包管理器管理 发现解压后的文件已经整体移动到/usr/local/java 文件夹下 打开bin目录&#xff0c;可以看到java的版…