【Java】传输层UDP

news/2024/5/18 15:29:41 标签: java, udp, 开发语言

传输层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.niftyadmin.cn/n/5015528.html

相关文章

LabVIEW检测润滑油中的水分和铁颗粒

LabVIEW检测润滑油中的水分和铁颗粒 润滑油广泛应用于现代机械设备,由于工作环境日益恶劣,润滑油经常被水分乳化,加速对机械设备的腐蚀。此外,润滑油还受到机械零件摩擦中产生的Fe颗粒的污染,削弱了其机械润滑效果。润…

Spring-MVC的文件上传下载,及插件的使用(让项目开发更节省时间)

目录 一、概述 ( 1 ) 介绍 ( 2 ) 讲述 二、上传 三、下载 四、jrebel的使用 五、多文件上传 给我们带来什么收获 一、概述 ( 1 ) 介绍 Spring MVC的文件上传下载是指在Spring MVC框架中实现文件的上传和下载功能。文件上传是指将本地计算机上的文件上传到服务器端…

Redis系列之客户端Redisson

概述 官方推荐的客户端,支持Redis单实例、Redis哨兵、Redis Cluster、Redis master-slave等各种部署架构。 GitHub, 功能: 分布式锁 分布式锁 使用Redisson提供的分布式锁的一个最常见场景,应用部署为多个节点,然…

Java设计模式-结构性设计模式(代理设计模式)

简介 为其他对象提供⼀种代理以控制对这个对象的访问,属于结构型模式。客户端并不直接调⽤实际的对象,⽽是通过调⽤代理,来间接的调⽤实际的对象应用场景 各⼤数码专营店,代理⼚商进⾏销售对应的产品,代理商持有真正的…

2023国赛数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

lenovo联想笔记本ThinkPad P16V Gen 1(21FC,21FD)原装出厂Win11系统

原厂W11系统自带所有驱动、出厂主题壁纸、Office办公软件、联想电脑管家等预装程序 链接:https://pan.baidu.com/s/17dTExDSz-EDN4Qd-PZGJuw?pwdrgl3 提取码:rgl3 所需要工具:32G或以上的U盘 文件格式:ISO 文件大小…

springMVC的简单数据绑定

java //获得传递过来的参数//方式1RequestMapping("/add")public String add(HttpServletRequest request){String id request.getParameter("id");System.out.println(id);return "success";}//方式2RequestMapping("/add2")public …

基于SSM的学院实验中心管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:采用JSP技术开发 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目&#x…