UDP报文格式详解
✏️✏️✏️各位看官好,今天给大家分享的是 传输层的另外一个重点协议——UDP。
清风的CSDN博客
🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流!
✈️✈️✈️动动你们发财的小手,点点关注点点赞!在此谢过啦!哈哈哈!😛😛😛
目录
一、UDP 协议段格式
二、UDP 的特点
2.1 无连接
2.2 不可靠
2.3 面向数据报
2.4 缓冲区
2.5 全双工
2.6 大小受限
三、 TCP 和 UDP 对比
一、UDP 协议段格式
- 16位UDP长度,表示整个数据报(UDP首部+UDP数据)的最大长度
- 如果校验和出错,就会直接丢弃
UDP 协议的校验和,是使用了一种简单粗暴的 CRC 算法,把 UDP 数据报中的每个字节都依次进行累加,把累加结果放到两个字节的变量中,传输数据的时候会把原始数据和校验和一起传输。
- 数据相同→校验和相同
- 校验和不同→数据不同
- 校验和相同,数据不一定相同。
二、UDP 的特点
2.1 无连接
2.2 不可靠
2.3 面向数据报
如果发送端一次发送100个字节,那么接收端也必须一次接收100个字节,而不能循环接收10次,每次接收10个字节。
2.4 缓冲区
- UDP没有真正意义上的 发送缓冲区。发送的数据会直接交给内核,由内核将数据传给网络层协议进行后续的传输动作。
- UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致,如果缓冲区满了,再到达的UDP数据就会被丢弃。
2.5 全双工
UDP的socket既能读,也能写,这个概念叫做 全双工。(Socket套接字,是由系统提供用于网络通信的技术,是基于TCP/IP协议的网络通信的基本操作单元。基于Socket套接字的网络程序开发就是网络编程)。
2.6 大小受限
三、 TCP 和 UDP 对比
- TCP用于可靠传输的情况,应用于文件传输,重要状态更新等场景。
- UDP用于对高速传输和实时性要求较高的通信领域,例如,早期的QQ,视频传输等。另外UDP可以用于广播。
🌈🌈🌈好啦,今天的分享就到这里!
🌈🌈🌈希望各位看官读完文章后,能够有所提升!
🎉🎉🎉创作不易,还希望各位大佬支持一下!
✈️✈️✈️点赞,你的认可是我创作的动力!
⭐⭐⭐收藏,你的青睐是我努力的方向!
✏️✏️✏️评论:你的意见是我进步的财富!
相关文章:

UDP报文格式详解
✏️✏️✏️各位看官好,今天给大家分享的是 传输层的另外一个重点协议——UDP。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流࿰…...

Python自动化测试如何自动生成测试用例?
汽车软件开发自动化测试攻略 随着软件开发在造车行业中占有越来越重要的地位,敏捷开发的思想在造车领域中也逐渐地被重视起来,随之而来的是整车厂对自动化测试需求越来越强烈。本文结合北汇在自动化测试方面的丰富经验,简单介绍一下实施自动…...
椋鸟C语言笔记#27:字符串数字提取(atoi、atol、atoll、atof)
萌新的学习笔记,写错了恳请斧正。 目录 atoi 模拟实现 atol与atoll(C99起) atof 合法的浮点值 返回值 使用示例 在stdlib.h中还有几个有意思的字符串函数 它们的功能是将字符串开头的数字提取出来 下面我们具体看一看这几个函数吧 …...
Git 命令使用总结
git init: 在当前目录创建一个新的空Git仓库。git clone [url]: 从远程仓库克隆一个项目到本地。git add [file]: 将文件添加到暂存区。git commit -m “message”: 提交暂存区的文件到本地仓库,并添加一条提交信息。git status: 查看当前工作区的状态(已…...
Linux常见面试题30题详细答案解析(二)
1. 如何使用Linux中的包管理器进行软件包依赖管理? Linux中的包管理器如apt、yum等可以自动处理软件包的依赖关系。当安装或升级软件包时,包管理器会自动解决软件包的依赖关系,确保所需的库和工具都已经安装。掌握如何使用包管理器进行依赖管…...

Linux查询指定时间点段日志Linux查询指定文件
Linux服务器高效查询日志查询文件 Ⅰ、常用几种日志查询语法Ⅱ、常用几种查询语法 Ⅰ、常用几种日志查询语法 #查询某日志前xx行日志 head -n 行数 日志文件名 #查询某日志后xx行日志 tail -n 行数 日志文件名 #查询固定时间点日志(前提是这个时间点确实有日志输出…...

2023年华为HCIA认证H12-811题库讲解
在VRP平台上,可以通过下面哪种方式返回到上一条历史命令?( ) A、Ctr1U B、Ctr1P C、左光标 D、上光标 试题答案:BD 试题解析:在VRP系统中,ctrlU为自定义快捷键,ct…...
MacOS上配置Jenkins开机自启动
之前文章有写过,如何在Windows环境下,通过vbsbat脚本的组合拳实现Jenkins的开机自启动,最近换了电脑,又要搭建Jenkins了,顺带整理分享下MacOS上配置Jenkins开机自启动的方法。 具体配置步骤: 打开终端应用…...

指针相关知识(入门)
通过前面的学习,我们已经对c语言有了一个初步的认识 接下来,我们继续学习。进入下一个阶段,指针。这个部分的知识较多,可能学习起来有些吃力,但是,从简到难,我们慢慢学习。 一.指针的概念 导入…...

我的NPI项目之Android 安全系列 -- Android Strongbox 初识
从Android9(Pie)开始,Google强烈建议支持Strongbox. 具体描述如下: 一直到目前的Android14. 对应的内容也一并贴出来: 说人话就是Android开始通过独立于主SoC的单元进行密钥存储了。 通常,这样的单元就是我们通常称作的Secure Element(SE)&am…...

3、Kafka 线上集群部署方案怎么做?
文章目录 1、操作系统的选择1.1、I/O 模型的使用1.2、数据网络传输效率1.3、社区支持度 2、磁盘的选择3、磁盘容量的规划3.1、举例思考本问题:3.2、计算一下:3.3、规划磁盘容量时你需要考虑下面这几个元素: 4、带宽规划4.1、计算 总结 1、操作…...
【Oracle】常用数据库sql记录
文章目录 1、获取指定日期所在年份2、获取指定日期所在月份3、获取指定日期去年同期日期4、获取指定日期所在年份的总天数5、获取年初到指定日期的天数6、除法运算7、递归查询8、REPLACE函数9、DECODE 函数10、聚合函数11、窗口函数11.1 ROW_NUMBER函数11.2 RANK函数11.3 LEAD …...

在线监控网址源码/ 网站监控工具源码/ 网站监控系统源码/定时任务/网站网址URL状态监控神器
源码介绍: 在线监控网址源码、 网站监控工具源码,它作为网站监控系统源码,有定时任务,支持卡密充值,是网站网址URL状态监控神器。让数据库监控更加简单和专业。远程云中监控、实时邮件告警、丰富的指标和图表、分析和…...
【Mysql】myisam和innodb的区别?
0 回答 myisam引擎是5.1版本之前的默认引擎,支持全文检索、压缩、空间函数等,但是不支持事务和行级锁,所以一般用于有大量查询少量插入的场景来使用,而且myisam不支持外键,并且索引和数据是分开存储的。innodb是基于聚簇索引建立的,和myisam相反它支持事务、外键,并且通…...

vue 集成行政区域选择插件region和数据回显
故事:最近,项目需要进行行政区域围栏的绘制,由于老旧项目是利用js保存全国行政区域地址和编码,在选择器select进行匹配显示,但此方法复杂,因此选择集成区域插件region 步骤一:用命令安装region…...
The LINQ expression “xxx“ could not be translated
错误示例: var A B .GroupBy(item > item.id) .Select(groupedList > new { PlannerId groupedList.Key, RxList groupedList }); 解决方案: var A B .GroupBy(item > item.id) .Select(groupedList > new { PlannerId groupedList.…...

ubuntu下搜索文件的几种方法
一、whereis命令: whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。 whereis的命令格式: whereis [-bmsu] [BMS 目录名 -f ] 文…...
openCV图像SIFT特征
SIFT(尺度不变特征变换)是一种用于计算图像局部特征的算法,它对图像的尺度、旋转和亮度变化具有不变性。SIFT特征在计算机视觉领域被广泛应用于目标识别、图像配准、三维重建等任务中。 SIFT特征的计算包括以下几个步骤: 尺度空…...

黑豹程序员-axios+springmvc传递数组
问题 奇怪的现象,axios在往后台传递数组时,springmvc竟然接收不到 解决 尝试多次无果,突然看一篇文章写vue中的数组不是真正的数组需要强转转化JSON.stringify 将信将疑下测试了一把,还真的传递成功了。 不光要JSON.stringify…...
34.用过JavaConfig方式的spring配置吗?它是如何替代xml的?
用过JavaConfig方式的spring配置吗?它是如何替代xml的? 基于Java的配置,允许你在少量的Java注解的帮助下,进行你的大部分Spring配置而非通过XML文件。 以@Configuration 注解为例,它用来标记类可以当做一个bean的定义,被Spring IOC容器使用。 另一个例子是@Bean注解,它…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

Android写一个捕获全局异常的工具类
项目开发和实际运行过程中难免会遇到异常发生,系统提供了一个可以捕获全局异常的工具Uncaughtexceptionhandler,它是Thread的子类(就是package java.lang;里线程的Thread)。本文将利用它将设备信息、报错信息以及错误的发生时间都…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...