传输层的UDP协议

news2025/1/15 21:01:32

1.  UDP协议报文格式

1.1 16位端口号

UDP协议报文中,端口号2个字节,包括 源端口号目的端口号。 

1.2 16位UDP长度

UDP报文长度为2个字节 ,即UDP数据报长度为0~65535,也就是64kb。

1.3  16位UDP检验和

数据在网络传输的过程中,可能会受到一些外部干扰,导致数据传输出错。因此,检验和就是一个检查手段,来判断数据在传输的过程中是否出了错

【检验和完成数据校验的基本流程】:

(1)发送方把要发送的数据处理好,将该数据记为data1 ,并通过相应的算法,计算出校验和sum1.

(2)发送方将data1和sum1一起发送给 接收方。

(3)接收方 接收到数据后,收到的数据记为 data2(可能和data1不同了),且收到 校验和sum1。

(4)接收方根据data2数据,按照相同的算法,计算出校验和sum2.

(5)对比校验和sum1sum2是否相同。如果不同,说明data1和data2不相同,也就是数据传输时出错了。如果sum1和sum2相同,则大概率data1和data2是相同的(存在不同的可能性)。

通过以上流程,就可以判断数据在网络中传输时是否发生了错误。

【那么计算校验和使用的是什么算法呢】

UDP使用的算法是CRC循环冗余算法。此算法将要计算校验和的数据,每个字节进行累加,并将结果保存在 UDP报文中 存放 校验和数据的 两个字节 的变量中。如果数据在传输的过程中数据发生了错误,接受方算出的校验和也会有差异,这样就能判断数据经过传输后是否发生了错误。

除了CRC算法,还有更靠谱的算法,就是 md5算法

md5算法,通过一系列公式,算出来的校验和,有以下特点:

(1)定长:无论发送方发送的数据有多长,通过md5算法,算出来的校验和都是 固定的长度。

 

 

(2)分散:即使发送方连续两次发送数据,且两次发送的数据只存在个别字符不同,md5算法给这两条数据算出的校验和仍有很大差异

 

 

 

(3)不可逆:给定一个数据,使用md5算法能够得出 校验和。若 给出该校验和,要求生成原始数据,则是不可行的。

 以上是UDP协议的相关知识,UDP协议的特点面向数据报,全双工,无连接,不可靠。也因此,相对于TCP协议来说,UDP协议传输数据的效率更高UDP协议的机制相对来说也更加简单。

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

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

相关文章

Opencv4.5读取视频文件失败的原因

0. 写在前面 这篇短文是对上期编译的一个补充:Windows11OpenCV4.5Qt5.9.1安装教程_opencv4.5.4 windows11安装-CSDN博客 1. 问题现象 上篇博文是读取图片数据成功,结果今天做项目,测试视频文件和录像时,发现capture.isOpened()返…

ROS2组件component自定义实现

ROS2系列文章目录 ROS2中nav_msgs/msg/Path 数据含义及使用 ROS2中std_msgs/msg/Header 数据含义及使用 ROS中TF变换详解 ROS2中launch编写及参数含义(launch.xml、python) 提示:阅读并实践本文档后,将掌握并理解ros1中nodele…

Python面向对象析构函数你学会了吗?

​ 当我第一次接触Python面向对象编程时,我完全被析构函数的概念给搞懵了。但是,随着我深入研究,我发现它其实并没有那么复杂。 1.析构函数是什么 析构函数是Python面向对象编程中的一个重要概念,它是在对象生命周期结束时自动调…

网工内推 | 浪潮原厂售前、方案经理,上市公司大平台,最高20K

01 浪潮集团 招聘岗位:售前经理 职责描述: 1、负责数字生态、数字教育、工业互联网、数字乡村、智慧城市、智慧交通等数字经济领域解决方案的售前工作,包括但不限于融合方案编制、项目调研、订制文档输出及客户咨询支持。 2、负责与公司各产…

数据完整性

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 数据完整性 数据完整性是关系数据库的一个重要特征,一般包含实体完整性、参照完整性和用户自定义完整性 3 种 实体完整性 实体完整性:规定表中的每…

VXLAN学习笔记

声明:该博客内容大部分参考参考链接整理 什么是VXLAN? VXLAN(Virtual Extensible LAN)即虚拟扩展局域网,是大二层网络中广泛使用的网络虚拟化技术。在源网络设备与目的网络设备之间建立一条逻辑VXLAN隧道,采用MAC in UDP的封装方…

Python的asyncio 多线程

-- 多线程、进程、协程是什么就不讲了,(就是你理解的一边呼吸,一边看文章) 仅解决问题的话,下边两篇不用看, Python 中的 async await 概念-CSDN博客 再深一点的看这个 Python中的多线程、进程、协程、…

Vue.js+SpringBoot开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

【项目设计】基于Httplib和Mysql的视频播放

项目源码(绝对可以直接运行) 一、项目介绍 1. 对视频播放系统的认识 搭建视频共享播放服务器,可以让所有人通过浏览器访问服务器,实现视频的上传查看,以及管理并播放的功能。主要是完成服务器端的程序业务功能的实现…

腾讯云轻量4核8G12M服务器性能如何?价格感人

腾讯云轻量4核8G12M服务器配置446元一年,646元12个月,腾讯云轻量应用服务器具有100%CPU性能,系统盘为180GB SSD盘,12M带宽下载速度1536KB/秒,月流量2000GB,折合每天66.6GB流量,超出月流量包的流…

springboot276基于JS的个人云盘管理系统的设计与实现

个人云盘管理系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装个人云盘管理系统软件来发挥其…

开发反应式API

开发反应式API 开发反应式API1 使用SpringWebFlux1.1 Spring WebFlux 简介1.2 编写反应式控制器 2 定义函数式请求处理器3 测试反应式控制器3.1 测试 GET 请求3.2 测试 POST 请求3.3 使用实时服务器进行测试 4 反应式消费RESTAPI4.1 获取资源4.2 发送资源4.3 删除资源4.4 处理错…

大话设计模式——7.抽象工厂模式(Abstract Factory Pattern)

1.介绍 抽象工厂模式是工厂模式的进一步优化,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。属于创建型模式。 UML图: 2.示例 车辆制造工厂,不仅可以制造轿车也可以用来生产自行车。 1)Abs…

【技术类-02】python实现docx段落文字的“手动换行符(软回车)”变成“段落标记(硬回车)”

作品展示 背景需求: 制作周计划时,需要将周计划docx内所有的表格里的手动换行符(软回车)”变成“段落标记(硬回车)”, 全部改成段落标记(硬回车) 但是19份docx每份都要打…

人工智能入门学习笔记1:什么是人工智能

一、什么是人工智能 人工智能(Artificial Intelligence),是一个以计算机科学(Computer Science)为基础,由计算机、心理学、哲学等多学科交叉融合的交叉学科、新兴学科,研究、开发用于模拟、延伸和扩展人的智能的理论、…

day06、07-MySQL

文章目录 一、MySQL概述1.1 安装1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 二. 数据库设计-DDL2.1 项目开发流程2.2 数据库操作2.2.1 查询数据库2.2.2 创建数据库2.2.3 使用数据库2.2.4 删除数据库 2.3 图形化工具2.3.1 介绍2.3.2 安装2.3.3 使用2.2.3.1 连接数据库…

Docker 容器化技术:构建高效、可移植的开发环境和部署流程|Docker 网络

为了支持网络协议栈的多个实例,Linux 在网络协议栈中引入了网络命名空间。这些独立的协议栈被隔离到不同的命名空间中,处于不同命名空间中的网络协议栈是完全隔离的,彼此无法通信。通过对网络资源的隔离,就能在一台宿主机上虚拟多…

【ACW 服务端】页面操作Java增删改查代码生成

版本: 1.2.2-JDK17-SNAPSHOT 项目地址:wu-smart-acw 演示地址:演示地址 admin/admin Java增删改查代码生成 找到对应菜单 选择你需要的数据实例 选择数据库 选择数据库表 选择客户端(如果是本地ACW服务代码启动默认注册上的客户端ID是…

错误:npm ERR! code CERT_HAS_EXPIRED 解决

问题: 在打开项目用npm install安装依赖时报错:npm ERR! code CERT_HAS_EXPIRED如下图: 原因: 说明正在尝试访问的npm registry 淘宝npm镜像源 的SSL证书已经过期,导致无法建立安全连接。 解决: 配置不…

深度学习基础知识之Atrous卷积(空洞卷积)

太久不看代码确实生疏了,盯着一堆不同的dilation,不知道有什么作用,论文中说是Atrous卷积,原来就是空洞卷积的意思。 Dilated/Atrous Convolution 空洞卷积(膨胀卷积/扩张卷积) 空洞卷积是一种不增加参数量…