传输层-用户数据报协议(UDP)

news2025/8/12 12:38:49

UDP协议概述

用户数据报协议 UDP 是 Internet 传输层协议,提供无连接、不可靠、数据报尽力传输服务。

  • 无连接:因此在支持两个进程间通信时,没有握手过程。
  • 不可靠:当应用进程将一个报文发送近 UDP 套接字时,UDP 并不能保证将该报文送达到目的的接收进程。

不仅如此,在发送方依次发送的报文段,UDP 即便将这些报文段送达到接收进程,也可能是乱序到达的。UDP 没有拥塞机制,所有 UDP 发送端可以用任何速率向其下层(即网络层)注入数据。当然,实际端到端吞吐量可能小于这种速率,这可能是因为中间链路的带宽受限或因为网络拥塞而造成的。

使用 UDP 的主要原因:

  1. 应用进程更容易控制发送什么数据以及何时发送。会出现分组的丢失和重复。
  2. 无须建立连接:TCP 需要三次握手建立,UDP 不需要任何准备即可进行数据传输。
  3. 无连接状态:TCP 需要再端系统中维护连接状态,包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数等;而 UDP 是无连接的,因此也无需维护连接状态。
  4. 首部开销小:每个 TCP 报文段都至少有 20 字节的首部开销,而 UDP 仅有 8 字节的开销。

虽然 UDP 提供不可靠传输服务,但使用 UDP 的应用仍然可以实现可靠数据参数。这可以通过在应用程序自身中建立可靠传输机制来完成,如 停-等协议或滑动窗口协议等。也就是说,应用进程可以使用 UPD 的同时进行可靠通信,只是需要在应用层设计可靠传输机制而已。

UDP 数据报结构

  1. UDP 首部四个字段,每个字段长度都是 2 个字节( 16 bit ),共 8 个字节,。
  2. 源端口号和目的端口号:用于 UDP 实现复用和分解,范围(0~65535)。
  3. 长度:指示 UDP 报文段中的字节数 (首部和数据的总和)。
  4. 校验和:接收方使用来检测报文段是否出现差错。
    shuyu

UPD数据传输过程

shuyu
  • int socket():创建套接字。
  • int bind():绑定套接字的本地端点地址。
  • ssize_t sendto():发送数据。
  • ssize_t recvfrom():接收数据。
  • int close():关闭套接字。

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

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

相关文章

python+vue+elementui固定资产管理系统django mysql

目 录 摘 要 I ABSTRACT I 目 录 III 第1章 绪论 1 1.1开发背景 1 1.2开发意义 1 1.3研究内容 1 第2章 主要技术和工具介绍 3 前端技术:nodejsvueelementui 我们最初的项目结构由五个文件组成: manage.py:使用…

为什么管理类硕士(MBA/MEM/MPA)报考会成为职场人的香饽饽?

没个硕士学位,将来出门可能真的都不好意思打招呼了。近些天传言2023年考研人数达到接近550万的信息满天飞,无论真假,从目前已公布报考人数的院校来看,在去年的457万基础上再涨一波的几率是很大的。这其中,报考管理类、…

电科大离散数学-2-命题逻辑-1

目录 2.1 什么是命题 2.1.1 命题的定义 2.1.2 复合命题 2.2 命题联结词 2.2.1 否定联结词 2.2.2 合取联结词 2.2.3 析取联结词 2.2.4 蕴涵联结词 2.2.5 等价联结词 2.3 命题符号化及应用 2.3.1 命题连接词总结 2.3.2 命题联结词的优先级 2.3.3 命题联接词与开关电…

scala

Scala 概述 Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的 静态类型编程语言(静态语言需要提前编译的如:Java、c、c等,动态语言如:js)。 Scala是一…

4-20mA转RS-485,Modbus数据采集模块 YL121

特点: ● 模拟信号采集,隔离转换 RS-485输出 ● 采用12位AD转换器,测量精度优于0.1% ● 通过RS-485接口可以程控校准模块精度 ● 信号输入 / 输出之间隔离耐压1000VDC ● 宽电源供电范围:8 ~ 32VDC ● 可靠性高,…

equals与==判断相等

一、 判断相等,判断的是物理地址相等。 二、equals 判断相等 equals 与hashCode 都是Object的方法。 所有的类都继承于Object,如果不重写equals。equals判断相等,底层也是使用来判断物理地址相等。 public boolean equals(Object obj) {re…

影响MySQL索引B+树高度的是什么?

提到MySQL,想必大多后端同学都不会陌生,提到B树,想必还是有很大部分都知道InnoDB引擎的索引实现,利用了B树的数据结构。 那InnoDB 的一棵B树可以存放多少行数据?它又有多高呢? 到底是哪些因素会对此造成影…

【软件测试】测试人的职责,我就是不当背锅侠......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 测试的目的&#xf…

基于机器视觉的移动消防机器人(四)--实验验证

本文素材来源于北方民族大学 机电工程学院 作者:牟义达、黄瑞翔、李涛 指导老师:田国禾、张春涛 1. 自主行走功能验证 实验目的:让机器人小车行驶500ms后停500ms,循环重复。 实验器材:计算机、消防机器人小车。 实…

ACM MM ECCV 2022 | 美团视觉8篇论文揭秘内容领域的智能科技

人工智能技术正在成为内容领域的中台力量,其中视觉AI已经渗透到内容生产、内容审核、内容分发、用户互动、商业化变现等各个环节。美团视觉智能部以场景化的内容产品、智能化的内容工具助力产业,在内容的创作、内容分发等环节应用广泛。 前不久&#xff…

开源项目让你也可以尝试玩转工业物联网以及智慧工厂(智能制造),IOT开源网关、SCADA取数开源、PLC数据采集

物联网进入与传统产业深度融合发展的崭新阶段。未来10年内,全球物联网将创造10多万亿美元的价值,约占全球经济的1/10,并与城市管理、生产制造、汽车驾驶、能源环保等形成数个千亿级规模以上的细分市场。 随着物联网技术的快速发展&#xff0c…

win10怎么录屏?windows自带录屏功能怎么用

​相信很多小伙伴家里的电脑都是win10系统的,想要录制电脑上的画面,那么就需要用到了windows自带的录屏功能。win10怎么录屏?windows自带的录屏功能怎么用?别担心,今天小编就来教教大家如何在win10系统上录制电脑屏幕。…

Python程序员:代码写的好,丝滑的壁纸少不了

人生苦短,我用Python序言python批量下载最后序言 不知道大家的电脑桌面一般用的什么类型的壁纸? 早上来上班,打开电脑,被漂亮的桌面壁纸所吸引,年底将近,这又是哪个地方的节日? 才晓得&#x…

[附源码]java毕业设计美妆销售系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

[附源码]java毕业设计农产品网络销售系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

论文阅读笔记 | 三维目标检测——F-PointNet算法

如有错误,恳请指出。 文章目录1. 背景2. 网络结构2.1 Frustum Proposal2.2 3D Instance Segmentation2.3 3D Box Estimation3. 实验结果paper:《Frustum PointNets for 3D Object Detection from RGB-D Data》1. 背景 基与鸟瞰图投影的方法(…

一个小台灯

22年11月填旧坑 项目地址:myhome: 服务器终端和微信小程序 (gitee.com) 物联网台灯小项目——ILamp 1、主要硬件,STM32,ESP8266; 2、3D打印的外壳,淘宝金属灯杆、灯罩、配重块; 3、喷涂了白色油漆外观…

pytorch深度学习实战lesson20

第二十课 卷积层的多输入和多输出通道 目录 理论部分 多输入通道 多输出通道 实践部分 理论部分 多输入通道 假设图片大小是200*200的话,那么用张量表示这个图片的话就是200*200*3,因为彩色图片是由红、绿、蓝三个通道构成的,因此表示一…

看完这套Java笔记,才明白笔者同时斩获7份大厂offer是有原因的!

不知道各位程序员朋友有没有做笔记的习惯?不过,我觉得大家还是蛮喜欢收藏笔记的,嘿嘿,我也是。 前几天恰好看到一篇文章,里面详细罗列了关于Java的所有知识点。看目录,是从Jvm开始,再讲集合、多…

PHP使用阿里云对象存储oss

目录 1.使用composer安装依赖 2.编写代码 3.调用 4.遇到问题 (1) 上传成功 访问发现没有权限 (2) 接着访问,发现直接下载 (3) 上传文件 发现文件内容是空 5.自定义域名上传文件 (1) 配置: (2) 代码修改 1.使用composer安装依赖 composer requ…