UDP协议

2023-05-16

文章目录

  • UDP协议
    • 1.UDP协议概述
      • 1.1基于IP协议略微改进
      • 1.2不可靠性
      • 1.3无连接
      • 1.4UDP协议存在的意义
    • 2.UDP报文段
      • 2.1UDP报文段格式
      • 2.2校验和及其计算

UDP协议

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。RFC 768 描述了 UDP。 Internet 的传输层有两个主要协议,互为补充。无连接的是UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是TCP,该协议几乎做了所有的事情。

1.UDP协议概述

1.1基于IP协议略微改进

UDP协议是位于传输层的协议,是一种无连接的传输协议。
UDP协议是基于IP协议存在的,在IP协议的服务基础之上,又加入了:

  • 多路复用和多路分用
  • 简单的错误校验

可以说UDP协议就是把IP协议进行简单处理后暴露给了网络层

1.2不可靠性

由于UDP协议是无连接的不可靠协议,UDP只进行一种尽力而为的数据传输模式,UDP的不可靠性体现在:

  • 可能存在数据传输的丢失
  • 传输的数据非按序到达

1.3无连接

UDP协议的无连接意义是:

  • UDP数据报的发送方和接收方之间不需要通过“握手”建立连接,发送准备的时延小
  • 每个UDP数据报的处理是相独立的

1.4UDP协议存在的意义

  • UDP协议不需要建立连接,从而能减少时延
  • UDP协议的实现简单,不需要维护通信双方的连接
  • UDP协议的报文段头部开销少,所以在传输时能更有效地传输有用数据
  • UDP协议没有拥塞控制,不考虑拥塞问题应用可以更好地控制数据的发送时间和速率

2.UDP报文段

2.1UDP报文段格式

在这里插入图片描述

  • 源端口号(source port):指明发送UDP报文段的进程
  • 目的端口号(dest port):指明接收UDP报文段的进程,用于传输层的多路分用和复用
  • 长度(length):表示包含头部在内的整个UDP数据报的长度
  • 校验和(checksum):用于检验UDP报文段的传输是否发生错误

2.2校验和及其计算

计算校验和
在这里插入图片描述
校验和计算示例

在这里插入图片描述

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UDP协议 的相关文章

  • 是否可以在 socket.io 中使用 UDP?

    我正在开发一款游戏 听说 UDP 更适合实时游戏 我知道 socket io 使用 TCP 并且想知道是否有某种方法可以将其切换到 UDP 我尝试查找它 但只找到了 2012 年左右的帖子 其中说 UDP 仅在浏览器中处于实验阶段 从标准浏
  • 在不使用环回网络的情况下将数据包转发到同一主机中的服务

    我有这个 libnetfilter queue 应用程序 它根据某些 iptables 规则从内核接收数据包 在直接讨论我的问题之前 我提供了一个示例可行代码和其他工具来设置测试环境 以便我们的问题定义和可能的解决方案可以更加准确和稳健 以
  • 播放 UDP 数据包中收到的原始 PCM 音频

    远程设备正在 UDP 数据包中发送实时原始 PCM 音频 不包含标头 我需要在 java 中实现一个程序来接收这些数据包并在 PC 上实时播放它们 据我所知 原始 PCM 的属性是 16 位 单声道 采样率 24KHz 因此我尝试向该原始
  • 使用.Net Core创建UDP套接字

    如何创建一个 UDP 套接字以非阻塞方式接收本地端点中的数据 我不知道数据来自的远程端口 我在 Linux 中使用 NET Core 我认为我可以使用 ReceiveAsync 但它似乎无法以这种方式工作 我这样解决了这个问题 static
  • 在 iOS 中跨应用程序(后台/前台或分屏多任务处理)共享 UDP 数据

    我正在编写一个研究应用程序 该应用程序利用通过 UDP 广播数据的特定传感器 有各种商业应用程序使用此传感器 我们希望能够同时运行我们的应用程序和现有应用程序 在过去 iOS 8 及更低版本 我们会在后台运行应用程序来记录数据 并在前台运行
  • C# UDP广播和接收示例

    问题 我正在尝试将 udp 套接字绑定到特定地址 我会广播一条消息 同一个套接字需要能够接收消息 当前代码 static void Main UdpClient Configuration new UdpClient new IPEndPo
  • 简单的udp代理解决方案

    我正在寻找可以代理我的 udp 数据包的解决方案 我有一个客户端向服务器发送 udp 数据包 它们之间的连接非常糟糕 导致大量数据包丢失 一种解决方案是使用一个新的代理服务器 它将所有数据包从客户端重定向到目标服务器 新的代理服务器与这两个
  • 具有多个接口的 Python UDP 套接字

    我正在 Windows XP 机器上用 python2 7 编写脚本 本机使用不同的网卡连接到多个网络 我遇到了一个问题 我已将 UDP 套接字绑定到特定接口 我知道您可以通过仅提供网卡现有的 IP 地址来在 Windows 中完成此操作
  • udp数据包被tcpdump捕获,但没有被套接字接收[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我编写了一个 rawudp 程序 通过原始套接字发送 udp 数据包 按照网页http www tenouk com Module43a html h
  • 移动提供商无法进行 UDP 打洞

    实际上 我正在编写一个 Android 应用程序 该应用程序接收连接到 PC 的网络摄像头的图片 为了获得更多的 fps 我使用 udp 协议而不是 tcp 这个想法是 电脑将图片发送到手机的 IP 和端口 但电话提供商有不同的公共端口 所
  • 如果客户端在服务器之后启动,则 GStreamer v1.0 UDP 多播流无法正确解码

    我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输 我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行 如果我在服务器之前启动客户端 一切都很好 问题是当我启动客户端并且服务器已经启动时
  • NodeJS UDP 多播如何

    我正在尝试将 UDP 多播数据包发送到 230 185 192 108 以便每个订阅的人都会收到 有点卡住了 我相信它的广播正确 但似乎无法从任何客户端获取任何信息 Server var news Borussia Dortmund win
  • 用于接收 UDP 数据包的可变大小缓冲区

    我有一个 UDP 套接字 它将接收一些可能不同大小的数据包 并且我异步处理它 socket async receive from boost asio buffer buffer 65536 senderEndpoint handler 这
  • DatagramChannel.close() 在 Windows 上保持端口打开

    我正在实施一个发现流程 打开 UDP 套接字以侦听给定端口上的广播响应 发送一些请求 并期待稍后的响应 在给定时间段后关闭 UDP 套接字 第一次通话有效 但其他调用会出现绑定错误 地址已被使用 绑定 我运行的是Windows 7 我做了一
  • VS2015:应用程序无法正确启动(0xc000007b)

    我在 Visual Studio 2015 上为 Windows 10 PC 编写了代码 该应用程序主要关注 UDP 通信 我使用 boost 库 它工作正常 但当我将代码文件夹移至 Windows 7 时 我收到错误 应用程序无法正确启动
  • 什么是消息边界?

    什么是 消息边界 在以下情况下 TCP 和 UDP 之间的区别之一是 UDP 保留消息 边界 我理解之间的区别TCP and UDP 但我不确定的定义 消息边界 由于 UDP 在每个单独的数据包中包含目的地和端口信息 因此是否可以为消息提供
  • C++ UDP Socket端口复用

    如何在 C 中创建客户端 UDP 套接字 以便它可以侦听另一个应用程序正在侦听的端口 换句话说 如何在 C 中应用端口复用 我只想监听一个端口 您可以使用嗅探器来做到这一点 只需忽略来自不同端口的数据包即可 我可能需要阻止它发送一些特定的数
  • 在 Perl 中如何接受多个 TCP 连接?

    我对 Linux 的 Perl 脚本有疑问 它的主要目的是成为 3 个应用程序之间的中间人 它应该做什么 它应该能够等待 UDP 文本 不带空格 udp port 当它收到 UDP 文本时 它应该将其转发到连接的 TCP 客户端 问题是我的
  • 为什么 SNMP 通常在 UDP 上运行而不是 TCP/IP 上?

    今天早上 工作中出现了大问题 因为 SNMP 陷阱没有 通过 因为 SNMP 是通过 UDP 运行的 我记得在大学网络课上 UDP 不能像 TCP IP 那样保证传输 维基百科说 SNMP 可以在 TCP IP 上运行 但 UDP 更常见
  • recvfrom() 中的 addrlen 字段有何用途?

    我在程序中使用 recvfrom 从我在 src addr 中指定的服务器获取 DGRAM 数据 但是 我不确定为什么需要初始化并传入addrlen 我读了手册页 但不太明白它的意思 如果src addr不为NULL 并且底层协议提供了源地

随机推荐

  • VsCode 配置 C/C++ 开发环境,真的很简单

    旧日的旧图 工欲善其事 xff0c 必先利其器 最近在学习C语言版的数据结构 xff0c 要敲敲C C 43 43 的代码 xff0c DevC 43 43 成功把我劝退了 之前写后端用习惯了Idea 写前端习惯用VsCode了 xff0c
  • 8.16 IO多路复用——select的TCP服务器/客户端

    文章目录 select的TCP服务器 客户端select的服务器代码示例 select的客户端代码示例 select的TCP服务器 客户端 select的服务器 代码示例 span class token macro property sp
  • 毫米波雷达图解算法原理(基于TI雷达)

    毫米波雷达数据处理原理 前言基础bin文件解读 以下我们取1帧进行操作 xff1a 对数据矩阵进行操作前的转换 开始计算结果矩阵一维FFT xff08 距离 xff09 二维FFT xff08 速度 xff09 角度维FFT xff08 假
  • ubuntu18.04 安装ros与运行vins-mono

    Ubuntu18 04 安装环境及运行Vins mono xff08 2022年 xff09 AI技术聚合 安装 sudo apt get install ros melodic desktop full 正在解包 ros melodic
  • 全面认识海思SDK及嵌入式层开发(1)

    目录 一 全面认识和检测配套开发套装1 套装配件介绍2 检测开发板3 注意 二 视频设备开发的技术流1 视频从产生到被消费的整个流程2 视频行业的商业角度分段3 几个疑问点 一 全面认识和检测配套开发套装 购买方式 xff1a 淘宝搜索 g
  • Java网络编程——UDP通信原理(超详细解析一看就懂哦!!!)

    文章目录 前言一 TCP和UDP概述二 UDP1 UDP通信概述2 UDP通信特点3 UDP通信传输实现的基石3 1 DatagramPake常用方法3 2 DatagramSocket常用方法 4 UDP通信实现原理5 UDP通信原理 x
  • Linux脚本中如何删除换行符(血案)

    Linux脚本中如何删除换行符 Linux中换行符和Windows中换行符不同 xff0c 分别为 n和 r n 如何删除换行符呢 xff1f 如果你百度了半天才过来 xff0c 相信你应该看到过如下的处理方式吧 cat country t
  • raise ValueError(‘Expected input batch_size ({}) to match target batch_size ({}).‘

    raise ValueError Expected input batch size to match target batch size 记得在正向传播之前打印一下图片的尺寸 xff0c 这次没注意到图片其实都进来是 RGB 三通道的数据
  • RuntimeError mat1 dim 1 must match mat2 dim 0

    RuntimeError mat1 dim 1 must match mat2 dim 0 代码 self span class token punctuation span fc1 span class token operator 61
  • python 中 subprocess.Popen 总结

    python 中 subprocess Popen 总结 subprocess的目的就是启动一个新的进程并且与之通信 subprocess模块中只定义了一个类 Popen 可以使用Popen来创建进程 xff0c 并与进程进行复杂的交互 它
  • 相机标定(Camera calibration)原理、步骤

    相机标定 xff08 Camera calibration xff09 原理 步骤 简介 在图像测量过程以及机器视觉应用中 xff0c 为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系 xff0c 必须建立相机成像的几何
  • python3-rosdep2 : Depends: python3-catkin-pkg but it is not going to be installed

    python3 rosdep2 Depends python3 catkin pkg but it is not going to be installed 今天在 Ubuntu18 04 中安装ros莫名其妙的出现了上述问题 xff0c
  • 旋转矩阵求导

    旋转矩阵的导数 证明 quad 假设旋转矩阵为 R mathbf R theta
  • VINS中陀螺仪零偏的估计

    VINS中关于陀螺仪零偏的初始化估计 对于窗口中得连续两帧 b k b k b k 和 b
  • 非线性优化问题基本形式概述

    非线性优化问题以及在视觉SLAM中的应用 1 0 最小二乘基础概念 定义 quad 找到一个 n 维的变量 x
  • Ceres 自动求导解析-从原理到实践

    Ceres 自动求导解析 从原理到实践 文章目录 Ceres 自动求导解析 从原理到实践1 0 前言2 0 Ceres求导简介3 0 Ceres 自动求导原理3 1 官方解释3 2 自我理解 4 0 实践4 1 Jet 的实现4 2 多项式
  • 如何在付费页面复制走想要的文字

    1 按F12打开控制台 出现如下界面 xff1a 2 点击图中方框按钮或者按Ctrl 43 B选择元素 xff0c 出现如下界面 xff1a 3 在左边点击想要复制的文字 xff0c 右边就会弹出对应的元素 xff0c 然后双击右边元素就可
  • 锂电池容量下降怎么办?锂电池容量下降修复方法

    锂电池容量下降怎么办 锂电池容量下降修复方法 据存能电气小编所知 xff0c 锂离子电池的容量在300 500次充放电循环后会下降到80 xff5e 85 xff0c 想要恢复初始续航性能必须更换新电池 近日声称有科研人员发明了能让锂离子电
  • 2021-02-18

    多旋翼飞行器学习笔记 二 机架设计 2 1布局设计 1 机身基本布局 交叉型 xff1a 目前常用的是X字型布局 xff0c 因为 xff1a xff08 1 xff09 机动性更强 xff1b xff08 2 xff09 前视相机的视场角
  • UDP协议

    文章目录 UDP协议1 UDP协议概述1 1基于IP协议略微改进1 2不可靠性1 3无连接1 4UDP协议存在的意义 2 UDP报文段2 1UDP报文段格式2 2校验和及其计算 UDP协议 Internet 协议集支持一个无连接的传输协议