当前位置: 首页 > news >正文

用户数据报协议UDP

UDP的格式

载荷存放的是:应用层完整的UDP数据报

报头结构: 

  • 源端口号:发出的信息的来源端口
  • 目的端口号:信息要到达的目的端口
  • UDP长度:2个字节(16位),即UDP总长度为:2^16bit = 2^10bit * 2^6bit = 1KB * 64 = 64KB.所以一个UDP的最大长度为64KB
  • UDP校验和:网络的传输并非稳定传输,还有很多额外的因素.校验和可以在一定程度上判断传输的信息是否正确

UDP的特点

  1. 无连接:对目的IP与端口号直接传输,不要建立连接(类似于寄信)
  2. 不可靠:只负责发送,如果发送失败也不会给发送端返回任何错误信息(只负责发,发完就不管了)
  3. 面向数据报:应用层交给UDP的报文不会被进行拆分,UDP按照原样进行发送.同样也不会进行合并.
  4. 只有接收缓冲区:发送的信息会直接交给内核.在接收缓冲区中不能保证收到信息的顺序与发送的一致,缓冲区满后丢弃新的UDP数据.
  5. 全双工:UDP的socket既能发送也能接收

拓展

基于UDP怎样实现可靠传输 :

针对不可靠,可引入确认应答.确保接收端收到信息后返回应答.

针对信息接收与发送的顺序不一致,可引入序列号.给每一个发送的UDP加上一个序列号,接收端对序列号进行一定的排序可得到发送时的UDP数据顺序

还可额外引入一个超时重传,可能发送端因为网络阻塞信息没能发送到接收端,接收端无法接收信息也不会应答.当一定时间后,发送端没有收到答应可以进行信息的重传

基于UDP发送大于64KB的数据:

既然无法在传输层对数据报进行分拆,程序员可以在应用层对要发送的数据报进行手动一定的拆分.拆分成多个包后,通过多个UDP进行发送出去

相关文章:

用户数据报协议UDP

UDP的格式 载荷存放的是:应用层完整的UDP数据报 报头结构: 源端口号:发出的信息的来源端口目的端口号:信息要到达的目的端口UDP长度:2个字节(16位),即UDP总长度为:2^16bit 2^10bit * 2^6bit 1KB * 64 64KB.所以一个UDP的最大长度为64KBUDP校验和:网络的传输并非稳定传输,…...

STM32F429IGT6使用CubeMX配置外部中断按键

1、硬件电路 2、设置RCC,选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、NVIC配置 PC13相同 5、生成工程配置 6、部分代码 中断回调函数 /* USER CODE BEGIN 0 */void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if(GPIO_Pin GPIO_PIN_0){HAL_GPIO…...

时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测)

时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测) 目录 时序预测 | Python实现LSTM长短期记忆网络时间序列预测(电力负荷预测)效果一览基本描述模型结构程序设计参考资料效果一览...

[开发|前端] 路由守卫笔记

描述 vue-router提供的导航跳转或取消的api。 router.beforeEach 切换路由前调用 router.beforeResolve 组件内路由守卫解析之后调用,和beforeEach用法类似 router.afterEach 切换后调用 全局路由守卫有上面3个,调用时机不同 路由守卫都有3个参数 …...

网络基础——网络的由来与发展史

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、网络的由来 二、计算机网络的发展史 1、第一阶段 2、第二阶段 3、第三阶段 前言 每天都是使用网络,那么你知道网络…...

八数码(bfs)

思路&#xff1a; &#xff08;1&#xff09;用string来存储状态&#xff0c;用d<string,int>来记录状态变换次数&#xff1b; &#xff08;2&#xff09;在bfs过程中&#xff0c;先初始化&#xff08;q,d)&#xff1b;每次拿出队头状态&#xff0c;得到x的相对位置&am…...

CCLINK IE FIELD BASIC转MODBUS-TCP网关cclink与以太网的区别

协议的不同&#xff0c;数据读取困难&#xff0c;这是很多生产管理系统的难题。但是现在&#xff0c;捷米JM-CCLKIE-TCP通讯网关&#xff0c;让这个问题变得非常简单。这款通讯网关可以将各种MODBUS-TCP设备接入到CCLINK IE FIELD BASIC网络中&#xff0c;连接到MODBUS-TCP总线…...

【Rust】Rust学习 第十一章编写自动化测试

Rust 是一个相当注重正确性的编程语言&#xff0c;不过正确性是一个难以证明的复杂主题。Rust 的类型系统在此问题上下了很大的功夫&#xff0c;不过它不可能捕获所有种类的错误。为此&#xff0c;Rust 也在语言本身包含了编写软件测试的支持。 编写一个叫做 add_two 的将传递…...

关于使用pycharm遇到只能使用unittest方式运行,无法直接选择Run

相信大家可能都遇到过这个问题&#xff0c;使用pycharm直接运行脚本的时候&#xff0c;只能选择unittest的方式&#xff0c;能愁死个人 经过几次各种尝试无果之后&#xff0c;博主就放弃死磕了&#xff0c;原谅博主是个菜鸟 后来遇到这样的问题&#xff0c;往往也就直接使用cm…...

Docker+rancher部署SkyWalking8.5并应用在springboot服务中

1.Skywalking介绍 Skywalking是一个国产的开源框架&#xff0c;2015年有吴晟个人开源&#xff0c;2017年加入Apache孵化器&#xff0c;国人开源的产品&#xff0c;主要开发人员来自于华为&#xff0c;2019年4月17日Apache董事会批准SkyWalking成为顶级项目&#xff0c;支持Jav…...

代码随想录第45天 | 322. 零钱兑换、279. 完全平方数

322. 零钱兑换 动规五部曲分析如下&#xff1a; 确定dp数组以及下标的含义 dp[j]&#xff1a;凑足总额为j所需钱币的最少个数为dp[j] 确定递推公式 凑足总额为j - coins[i]的最少个数为dp[j - coins[i]]&#xff0c;那么只需要加上一个钱币coins[i]即dp[j - coins[i]] 1就是…...

怎么加入Microsoft Cloud Partner Program?

目录 前言 加入Microsoft Cloud Partner Program 1、注册成为微软合作伙伴 2、完成合作伙伴资格要求...

LNMP简易搭建

目录 前言 一、拓扑图 二、NGINX配置 三、配置MySQL 四、配置php环境 五、部署应用 总结 前言 LNMP平台指的是将Linux、Nginx、MySQL和PHP&#xff08;或者其他的编程语言&#xff0c;如Python、Perl等&#xff09;集成在一起的一种Web服务器环境。它是一种常用的开发和部署网…...

CClink IE转Modbus TCP网关连接三菱FX5U PLC

捷米JM-CCLKIE-TCP 是自主研发的一款 CCLINK IE FIELD BASIC 从站功能的通讯网关。该产品主要功能是将各种 MODBUS-TCP 设备接入到 CCLINK IE FIELD BASIC 网络中。 捷米JM-CCLKIE-TCP网关连接到 CCLINK IE FIELD BASIC 总线中做为从站使用&#xff0c;连接到 MODBUS-TCP 总线…...

PyTorch 微调终极指南:第 1 部分 — 预训练模型及其配置

一、说明 如今&#xff0c;在训练深度学习模型时&#xff0c;通过在自己的数据上微调预训练模型来迁移学习已成为首选方法。通过微调这些模型&#xff0c;我们可以利用他们的专业知识并使其适应我们的特定任务&#xff0c;从而节省宝贵的时间和计算资源。本文分为四个部分&…...

GO学习之 微框架(Gin)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...

C语言 字符指针

1、介绍 概念&#xff1a; 字符指针&#xff0c;就是字符类型的指针&#xff0c;同整型指针&#xff0c;指针指向的元素表示整型一样&#xff0c;字符指针指向的元素表示的是字符。 假设&#xff1a; char ch a;char * pc &ch; pc 就是字符指针变量&#xff0c;字符指…...

Springboot所有的依赖

<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!-- 声明springboot的版本号 -->…...

Flutter BottomSheet 三段式拖拽

BottomSheetBehavior 追踪 BottomSheet系统默认实现效果准备要实现的功能点&#xff1a;定义三段式状态&#xff1a;BottomSheetBehavoir阀值定义1. 未达到滚动阀值&#xff0c;恢复状态2. 达到滚动阀值&#xff0c;更新状态 前面倒是有讲过Android原生的BottomSheetBehavior&a…...

php后端实现调用高德地图进行POI搜索

对于当前位置或者选定省市位置进行查询 接口实现 /*** 查询地址* ApiTitle (查询地址)* ApiSummary (查询地址)* ApiMethod (POST)* ApiRoute (/api/demo/address)* ApiParams (name"dart", type"integer", requiredtrue, description"省…...

避坑指南:Python模拟抖音扫码登录时,那些你可能会遇到的‘Referer’和‘Token’校验问题

Python模拟抖音扫码登录实战&#xff1a;破解Referer校验与Token失效的五大陷阱 当你在深夜调试抖音扫码登录接口时&#xff0c;控制台突然抛出403错误——这可能是每个爬虫开发者都经历过的噩梦时刻。不同于常规教程展示的理想流程&#xff0c;真实开发中你会遇到各种隐蔽的校…...

FireRedASR-AED-L轻量化部署教程:8GB显存以下设备也能流畅运行1.1B模型

FireRedASR-AED-L轻量化部署教程&#xff1a;8GB显存以下设备也能流畅运行1.1B模型 想体验专业级的本地语音识别&#xff0c;但被动辄几十GB的显存要求劝退&#xff1f;今天给大家介绍一个好消息&#xff1a;基于1.1B参数的FireRedASR-AED-L大模型&#xff0c;现在只需要不到8…...

JADX深度解析:如何高效反编译Android应用并理解其内部架构

JADX深度解析&#xff1a;如何高效反编译Android应用并理解其内部架构 【免费下载链接】jadx Dex to Java decompiler 项目地址: https://gitcode.com/gh_mirrors/ja/jadx JADX作为Android逆向工程领域的核心工具&#xff0c;能够将Dex字节码转换为可读的Java源代码。这…...

数字员工:不同场景下的落地案例全景

数字员工&#xff1a;不同场景下的落地案例全景 数字员工正在从概念走向规模化落地&#xff0c;覆盖制造、金融、零售、人力、客服等多个行业。以下是2025-2026年各领域真实应用案例的详细拆解。 一、供应链与制造场景 1. 壹沓科技&#xff1a;供应链物流AI Agent 企业背景&…...

抖音去水印批量下载工具:一键高效保存全网优质内容

抖音去水印批量下载工具&#xff1a;一键高效保存全网优质内容 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 还在为抖音上的精彩视频无法完整保存而烦恼吗&am…...

2026届最火的降AI率网站解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 当下&#xff0c;占据主流地位的降 AIGC 工具&#xff0c;凭借同义词替换、句式重组以及语义…...

猫抓Cat-Catch:3步解决网页视频下载难题的终极方案

猫抓Cat-Catch&#xff1a;3步解决网页视频下载难题的终极方案 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 当我们浏览网页时&#xff0c;总会遇…...

如何用Mermaid Live Editor轻松创建可视化图表:5个步骤告别复杂绘图工具

如何用Mermaid Live Editor轻松创建可视化图表&#xff1a;5个步骤告别复杂绘图工具 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/me…...

Go语言怎么用信号量控制并发_Go语言semaphore信号量教程【入门】

Go 官方标准库不提供 semaphore 类型&#xff0c;应使用 golang.org/x/sync/semaphore&#xff1b;Acquire 阻塞等待许可&#xff0c;TryAcquire 立即返回&#xff1b;必须严格配对申请与释放&#xff0c;且由同一 goroutine 执行&#xff1b;适用于 I/O 密集型资源限流&#x…...

告别printf调试:用NRF52832的UART串口实现高效日志输出(附SDK15.3配置)

NRF52832串口日志实战&#xff1a;从printf到高效调试的进阶之路 调试嵌入式系统就像在黑暗房间里找钥匙——传统printf调试如同每次开灯看一眼又关上&#xff0c;而UART日志系统则是装上了智能照明&#xff0c;让问题无处遁形。对于NRF52832这样的低功耗蓝牙芯片开发者来说&am…...