UDP协议

网络基础——udp协议 定义:UDP协议是在IP数据包服务上增加一点功能,即为应用程序提供一种以最少的协议机制向其他程序发送消息的协议。其协议号为17,RFC 768是UDP的正式规范。工作层级:UDP协议工作在OSI模型的传输层,处于IP协议的上一层。用途:UDP主要用于那些对实时性要求高,但对数据可靠性要求不高的应用场景,如视频和音频流传输、在线游戏、DNS查询、网络广播等。UDP协议以其无连接、低延迟、高效率的特点,在网络通信中扮演着重要角色。 阅读详情

1 UDP协议

1.1 UDP认识

UDP是一种简单的面向数据报、无连接、传输层协议,并且保留了信息边界。UDP不提供错误校正,不保证有序,无法去重复,没有流量控制和拥塞控制,不能保证数据一定到达目的地,但是可以通过校验和提供错误侦测。UDP提供的的是不可靠传输,因此要有应用层来提供这些功能。

使用UDP的应用程序:DNS,NFS(Network File System),TFTP,BOOTP,SNMP

1.2 UDP数据报封装成IP数据报

一般应用程序要求每一个UDP输出操作刚好产生一个UDP数据报,并组装成一份IP数据报去发送,UDP数据报封装成IP数据报的格式如下图:
UDP IN IP

2 UDP数据报首部

2.1 UDP数据报首部格式图

UDP数据报首部

2.2 UDP数据报首部各字段

(1)16位源端口号:发送端应用程序使用的端口号,用于区分数据报来自哪个进程,多路复用。
(2)16位目的端口号:数据送往接收端哪个应用程序,多路分用。
(3)16位UDP长度:UDP数据报首部和UDP数据报数据部分总字节数,最小长度为8字节(仅有首部)。
(4)16位UDP检验和:UDP的校验和是可选的,TCP是必需的。UDP的校验和覆盖首部及数据部分。2.3节中说明如何计算UDP校验和。
(5)数据:要发送的数据,可以为空(0字节)。

2.3 UDP检验和

UDP数据报的长度可以为奇数字节,但校验和算法是把若干16bit的字相加,因此需要在最后填充一些值为0的bit(填充的数据仅仅是为了计算校验和,并不会被发送),其次为了让UDP层可以验证数据正确到达了目的地,需要12字节的伪首部(同样不需要被传送,仅仅是为了校验和的计算)。UDP校验和计算使用的各字段如下图所示:
UDP CheckSum
《TCP/IP 详解》卷一 第一版中如下计算检验和字段的值:
发送方计算UDP检验和:
首先把检验和字段置为0,把上图中,各部分数据(包括UDP伪首部及填充字段)按每16bit进行二进制反码求和(若最高位产生进位就加到最低位上去),所求结果就是16bitUDP检验和字段的值。
接收方计算UDP检验和:
对收到的UDP数据报(加上了UDP首部和填充字节)按每16bit进行二进制反码求和(若最高位产生进位就加到最低位上去),若结果为全1,则UDP数据报在传输过程中没有出现差错,否则数据报有差错。
《TCP/IP 详解》卷一 第二版中如下计算检验和字段的值:
发送方计算UDP检验和:
首先把检验和字段置为0,把上图中,各部分数据(包括UDP伪首部及填充字段)按每16bit进行二进制反码求和(若最高位产生进位就加到最低位上去),最后结果再按位取反,所得结果就是16bitUDP检验和字段的值。
接收方计算UDP检验和:
对收到的UDP数据报(加上了UDP首部和填充字节)按每16bit进行二进制反码求和(若最高位产生进位就加到最低位上去),再按位取反,若结果为全0,则UDP数据报在传输过程中没有出现差错,否则数据报有差错。
注:检验和的值从不为0xFFFF

需要伪首部的原因:伪首部包含了部分IP首部的信息,能让UDP层验证数据是否正确到达目的地。(在《TCP/IP 详解》卷一第二版中这样说:Its purpos is to let the UDP layer verify that data has arrived at the correct destination(i.e, that IP has not accepted a misaddressed datagram, and that IP has not given UDP a datagram that is for anther transport protocol))。对此尚有点疑问,这为什么不能通过IP数据报首部的字段保证呢?

3 UDP服务器三类地址绑定

UDP服务器可以创建的三类地址绑定如下图:
UDP地址绑定
(1)第一行中服务器限定了只从本地localIP这个IP地址的lport端口接收数据报,而且只接收来自IP为foreign且端口为fport发来的数据。
(2)第二行中服务器限定了只从本地localIP这个IP地址的lport端口接收数据报,但可以接收任何主机发送的数据。
可以在同一个端口上启动不同的服务,比如:
192.168.18.11 8888 对于以太网
127.0.0.1 8888 本地环回接口
8888 其他(IP统配,像第三行)
(3)第三行中服务器只限定了接收数据的端口号,因此任何一个本地接口IP都可以接受它,而且数据可以来自任何主机发送的数据。

注:表中三行的顺序是UDP模块判断使用哪个端点接收数据采用的匹配顺序。

LwIP 协议栈之 udp 协议解析 前言 之前在做一个关于数据传输的时候,使用到了 WiFi 传输数据,而在传输数据时使用到的协议就是 LwIP 协议栈中的 udp 协议。现在来回顾总结一下。要叙述 LwIP 协议栈,那自然得明白 LwIP 协议栈具体是个啥。总的来说,LwIP 是 TCP/IP 协议中一种独立、简单的实现,其设计目的在于保证嵌入式产品拥有完整 TCP/IP 功能的同时,又能够保证协议栈对处理器资源的有效消耗,其运行一般仅需要几十 KB 的 RAM 和 40KB 左右的 ROM。上述所说便是关于 LwIP 协议栈的相关叙述。那 阅读详情

相关推荐

给汽车芯片做‘体检’:手把手教你用IEC62380和SN29500估算功能安全失效率

本文详细介绍了如何使用IEC62380和SN29500标准估算汽车芯片的功能安全失效率,涵盖基础认知、方法论对比及实战计算。通过具体案例演示两种标准的应用流程,帮助工程师准确评估半导体器件的可靠性,确保符合ISO 26262标准要求。

weixin_28725553的博客 460

UDP协议的详细解析

UDP数据报 一、UDP的概述 二、UDP的首部格式 UDP校验

Rad的博客 18万+

PythonWeb开发框架—Django之工程创建和models的定义和增删改查

文章介绍了Django工程的创建、models的定义和增删改查

weixin_42476668的博客 991

【网络】UDP协议

UDP(User Datagram Protocol)是一种无连接的传输层协议,它提供了一种简单的、不可靠的数据传输服务。UDP 提供了不面向连接的通信,且不对传送的数据报进行可靠的保证,适用于一次传送少量的数据,不适用于传输大量的数据。

m0_51064412的博客 1万+

Jenkins插件下载慢?3分钟搞定国内镜像加速(含华为/腾讯/清华源对比)

本文详细介绍了如何通过国内镜像源加速Jenkins插件下载,包括华为云、腾讯云和清华源等主流镜像站的性能对比及一键配置方案。通过实测数据展示华为云镜像站表现最佳,下载速度达19.4MB/s,并提供sed命令、管理界面配置和Docker定制三种高效加速方案,帮助开发者快速解决插件下载慢的问题。

sql99的博客 321

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口)

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口) 之前写了一篇关于C++调用海康相机SDK采集图像的文章,有很多人私下发送消息咨询了一些问题,由于工作繁忙,只答复了一部分问题,今天抽出时间从头梳理了一下大家提出的问题,把我能够回答的问题都解答一次。上一次的程序只是简单的实现了图像的采集,没有使用到线程,今天把程序重新做出调整,把线程和多态加进去。文章最后有项目的下载地址。 我使用的是QT Creator这个IDE,版本信息如下: 我把相机采集的图像转换为openC

大樱桃的博客 1万+

UDP协议详解

UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。UDP在IP报文的协议号是17。UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。

初念初恋的博客 9723

扫地机器人解决方案:工作原理与硬件构成

房间里柜子,鞋子,床,座椅,人都在什么地方?3、数字信号处理器。这主要是为控制芯片进行路径规划后,下发指令给执行的电机,包括舵轮(扫地机人前进,转向的轮子),扫地刷的电机,吸尘器的电机,让这些电机工作。扫地机器人的大脑主要用来规划路径,避障,以及人机交互,例如:人类设定打扫范围,以及语音指导扫地机器人进行打扫,都需要处理器进行处理后,将指令下发到执行机构。小脑属于跟执行层最近的控制区域,例如我们上面说的,后面两个处理器:数字信号处理器和微控制器都是对执行层(电机),进行控制和回馈外部信息的处理器。

迷途 7407

UDP和TCP协议(详解)

在简介UDP协议和TCP协议之前考虑到有些人可能网络这一块基础不是很牢固的铁子们,所以第一部分是先讲解网络编程中一些基础知识,如果有大佬已经提前了解过的话,就请直接滑到第二部分,那废话就不多说开启本篇博客啦。

weixin_74352792的博客 1万+

clock min pulse width检查

高电平脉宽 = clock fall edge到达FF/CK的时间 - clock rise edge到达FF/CK的时间;低电平脉宽 = 下一T clock rise edge到达FF/CK的时间 - clock fall edge到达FF/CK的时间。而required pulse width是根据FF/CK处的transition,根据查找表计算得到的。为什么clock transition越大,会导致required pulse width越大呢?5、 降低clock上的串扰。

芯冰乐 579

Android-Zygote进程的诞生—从init到Zygote启动

Android Zygote进程启动流程解析 Android系统的Zygote进程是所有应用进程的父进程,由init进程创建。启动流程分为: 内核阶段:加载init进程(PID=1) init进程阶段: 挂载基础文件系统(tmpfs、proc等) 设置SELinux安全策略 解析init.rc配置文件 Zygote启动:init进程通过app_process启动Zygote,预加载系统资源 SystemServer:Zygote fork出系统服务进程 关键点: init是用户空间第一个进程......

保持专注,保持热爱 641

传输层协议 ——— UDP协议

文章目录传输层再谈端口号端口号范围划分认识知名端口号两个问题netstatpidofUDP协议UDP协议格式UDP协议的特点面向数据报UDP的缓冲区UDP使用注意事项基于UDP的应用层协议 传输层 再谈端口号 端口号范围划分 认识知名端口号 两个问题 netstat pidof UDP协议 UDP协议格式 UDP协议的特点 面向数据报 UDP的缓冲区 UDP使用注意事项 基于UDP的应用层协议 ......

2021dragon的博客 1万+

YOLOv9改进策略 | Conv篇 | 2024最新ECCV最新大感受野的小波卷积WTConv助力YOLOv9有效涨点

本文给大家带来的改进机制是一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv9中的RepNCSPELAN4机制可以减少一定的参数量和计算量,达到一个可观的轻量化作用。

Snu77的博客 1544

UDP协议详解(UDP协议特点,UDP协议格式、UDP的应用)

目录前言1.UDP协议的特点2. UDP协议的特点3. UDP的应用 前言 TCP和UDP协议都是传输层的协议,其中传输层是负责端对端之间的连接,端是指端点。 端口的划分和知名端口 0~1023:知名端口 3306:Mysql数据库 1521:Oracle数据库 22:ssh服务器 21:ftp服务器 23:telnet服务器 80:http服务器 443:https服务器 可以使用cat /etc/services查看知名端口 ① 一个进程是否可以bind多个端口号? 可以的,一个进程可以绑定

zw的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

UDP 协议

UDP 协议

zzbzxzzdf的博客 4851

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

详解UDP协议

UDP是一种无连接的、简单的传输层协议,UDP协议的设计目的是提供一种简单、轻量级的通信机制,适用于那些对实时性和传输效率有较高要求,但对数据完整性和可靠性要求相对较低的应用。

2301_80926085的博客 3167

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

传输层协议——UDP协议

当主机从网络中获取到数据后,需要自底向上进行数据的交付,而这个数据最终应该交给上层的哪个应用软件进程,就是由该数据当中的目的端口号来决定的。因为最终我们需要将数据交给应用层,而且是通过传输层将最终数据交给应用层的,所以传输层必定能够提取出相应的端口号,从而知道应该将数据交付给应用层的哪一个进程。在传输层,将报头和有效载荷分开后,提取出报头中的16位UDP长度,用其减去报头固定长度8字节,就是有效载荷的大小。比如HTTP,FTP,SSH等这些广为使用的应用层协议,它们的端口号都是固定的。

zdlynj的博客 1772

【网络】传输层——UDP协议

前面我们已经学习了网络的基础知识,对网络的基本框架已有认识,算是初步认识到网络了,如果上期我们的学习网络是步入基础知识,那么这次学习的板块就是基础知识的实践,我们今天的板块是学习网络重要之一,学习完这个板块对虚幻的网络就不再迷茫!!!二。

AAlykk的博客 2026

基于 UDP 协议的应用层协议

UDP 是一种无连接的、不可靠的传输层协议。它就像是网络中的 “快递小哥”,只管把数据包从发送方送到接收方,不保证数据包一定能准确无误地到达,也不会在发送前和接收方进行复杂的 “沟通” 来确认对方是否准备好接收。UDP 的优点在于它的简单性和高效性,能够快速地发送数据,适合于那些对实时性要求高的应用,如实时视频流、音频流等。

Mr_-G,一名勤奋底层软件开发工程师的博客 1073

协议篇之以太网UDP协议

TCP/IP协议是指一个协议簇,可以理解为以太网通信协议的集合,在这个集合里面有很多种协议,比如:TCP、IP、UDP等,其中,由于TCP核IP最为常用,所以协议的集合就命名为TCP/IP协议。本文中主要学习以太网TCP/IP协议的分层与传输层协议中的UDP协议。从数据报的格式角度来看,TCP/IP数据包的分层更像是一层一层的包装(套外壳),TCP/IP协议分层一般分为5层:应用层、传输层、网络层、数据链路层和物理层。

qq_42224089的博客 3570
上一篇: C与C++的区别
下一篇: C++中string使用
知行且执行
博客等级 码龄14年 38粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值