UDP

server/2025/2/21 5:06:02/

UDP 是什么?

提供无连接的,尽最大努力的数据传输服务(不保证数据传输的可靠性)

UDP 的特点有哪些?

1)UDP 是无连接的;

2)UDP 使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态(这里面有很多参数)

3)UDP 是面向报文的

4)UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等);

5)UDP 支持一对一、一对多、多对一和多对多的交互通信;

6)UDP 的首部开销小,只有 8 个字节,比 TCP 的 20 个字节的首部要短。

UDP 对应的应用层协议

DNS :用于域名解析服务,使用 53 号端口

SNMP:简单网络管理协议,使用 161 号端口

TFTP(Trival File Transfer Protocal):简单文件传输协议,使用 69 号端口

UDP 和 TCP 的区别

1)TCP 面向连接(如打电话要先拨号建立连接)。UDP 是无连接的,即发送数据之前不需要建立连接。

2)TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP 尽最大努力交付,既不保证可靠交付。

3)TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构字节流。UDP 是面向报文的,UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等)。

4)每一条 TCP 连接只能是点到点的。UDP 支持一对一、一对多、多对一和多对多的交互通信。

5)TCP 首部开销 20 字节。UDP 的首部开销小,只有 8 个字节。

6)TCP 的逻辑通信信道是全双工的可靠信道,UDP 则是不可靠信道。

7)UDP 是面向报文的,发送方的 UDP 对应用层交下来的报文,不合并,不拆分,只是在其上面加上首部后就交给了下面的网络层,论应用层交给 UDP 多长的报文,它统统发送,一次发送一个。而对接收方,接到后直接去除首部,交给上面的应用层就完成任务了。因此,他需要应用层控制报文的大小。TCP 是面向字节流的,他把上面应用层交下来的数据看成无结构的字节流会发送,可以想象成流水形式的,发送方 TCP 会将数据放入“ 蓄水池 ” (缓存区),等到可以发送的时候就发送,不能发送就等着 ,TCP 会根据当前网络的拥塞状态来确定每个报文段的大小。

为什么域名解析用 UDP 协议?

1、报文开销小:UDP 是一种无连接的传输层协议,其报文头部相对简单,只有 8 个字节,相比之下,TCP 的报文头部至少为 20 个字节。在进行域名解析时,通常查询请求和响应的数据量都比较小,UDP 的小报文头部可以减少网络传输的开销。

2、快速传输:UDP 不需要建立链接,直接将数据封装成报文发送出去,因此可以快速地进行数据传输,对于域名解析这种对响应时间要求较高的应用来说,UDP 的快速传输性非常重要。

在进行 UDP 编程的时候,一次发送多少 bytes 好?

在进行 UDP 编程时,一次发送的数据量并没有一个绝对的最佳值,因为它受到多种因素影响,对于不同的系统,不同的要求,其得到的答案是不一样的。

我这里仅对像 ICQ 一类的发送聊天信息的情况做分析,对于其他情况,你或许也能得到一点帮助:首先,我们知道,TCP/IP 通常被认为是一个四层协议系统,包括链路层、网络层、运输层、应用层。UDP 属于运输层,下面我们由下至上一步一步来看:

以太网(Ethernet) 数据帧的长度必须在 46 - 1500 字节之间,这是由以太网的物理特性决定的。这个 1500 字节被称为链路层的 MTU (最大传输单元)。但这并不是指链路层的长度被限制在 1500 字节,其实这个 MTU 指的是链路层的数据区。并不包括链路层的首部和尾部的 18 个字节。

所以,事实上,这个 1500 字节就是网络层 IP 数据报的长度限制。因为 IP 数据报的首部为 20 字节,所以 IP 数据报的数据区长度最大为 1480 字节。而这个 1480 字节就是用来放 TCP 传来的 TCP 报文段或 UDP 传来的 UDP 数据报的。又因为 UDP 数据报的首部 8 字节,所以 UDP 数据报的数据区最大长度为 1472 字节就是我们可以使用的字节数。

当我们发送的 UDP 数据大于 1472 的时候会怎么样呢?

这也就是说 IP 数据报大于 1500 字节,这个时候发送方 IP 层就需要分片。把数据报分成若干片,使每一片都小于 MTU 。而接收方 IP 层则需要进行数据报的重组。这样就会多做许多事情,而更严重的是,由于 UDP 的特性,当某一片数据传送中丢失时,接收方便无法重组数据报,将导致丢弃整个 UDP 数据报。

因此,在普通的局域网环境下,建议将 UDP 的数据控制在 1472 字节以下为好。

进行 Internet 编程时则不同,因为 Internet 上的路由器可能会将 MTU 设为不同的值。

如果我们假定 MTU 为 1500 来发送数据的,而途径的某个网络的 MTU 值小于 1500 字节,那么系统将会使用一系列机制来调整 MTU 值,使数据报能够顺利到达目的地,这样就会做许多不必要的操作。鉴于 Internet 上的标准 MTU 值为 576 字节,所以建议在进行 Internet 的 UDP 编程时。最好将 UDP 的数据长度控制在 548 字节(576-8-20)以内。


http://www.ppmy.cn/server/169462.html

相关文章

芯麦GC4344立体声数模转换芯片深度解析:高精度音频与动态采样率技术

引言 在数字音频向高保真化、场景多元化发展的趋势下,数模转换器(DAC)的核心使命已不仅是简单的信号还原,而是需要在复杂环境中实现「自适应高精度」。芯半导体的GC4344正是这一理念的集大成者——它通过创新的四阶ΔΣ架构与智能…

【SQL】多表查询案例

📢本章节主要学习使用SQL多表查询的案例,多表查询基础概念 请点击此处。 🎄数据准备 首先我们创建一个新的表也就是薪资等级表,其余两个表(员工表和薪资表)在多表查询章节中已经创建。然后我么根据这三个表完成下面的12个需求。 create tab…

【DL】浅谈深度学习中的知识蒸馏 | 输出层知识蒸馏

目录 一 核心概念与背景 二 输出层知识蒸馏 1 教师模型训练 2 软标签生成(Soft Targets) 3 学生模型训练 三 扩展 1 有效性分析 2 关键影响因素 3 变体 一 核心概念与背景 知识蒸馏(Knowledge Distillation, KD)是一种模…

亚信安全正式接入DeepSeek

亚信安全致力于“数据驱动、AI原生”战略,早在2024年5月,推出了“信立方”安全大模型、安全MaaS平台和一系列安全智能体,为网络安全运营、网络安全检测提供AI技术能力。自2024年12月DeepSeek-V3发布以来,亚信安全人工智能实验室利…

Qt QTabWidget 总结

Qt QTabWidget 总结 1. 基本概念 用途:管理多个标签页,每个页可包含独立内容,用户通过点击标签切换页面。组成: 标签栏(QTabBar):显示标签标题、图标,支持交互(点击、关…

【第15章:量子深度学习与未来趋势—15.1 量子计算基础与量子机器学习的发展背景】

想象一下,你正在用ChatGPT生成一篇小说,突然它卡在"主角穿越虫洞"的情节上——这不是因为想象力枯竭,而是传统计算机的晶体管已经烧到冒烟。当前AI大模型的参数规模每4个月翻一番,但摩尔定律的终结让经典计算机的算力增长首次跟不上AI的进化速度。这时候,量子计…

php 系统命令执行及绕过

文章目录 php的基础概念php的基础语法1. PHP 基本语法结构2. PHP 变量3.输出数据4.数组5.超全局变量6.文件操作 php的命令执行可以执行命令的函数命令执行绕过利用代码中命令(如ls)执行命令替换过滤过滤特定字符串神技:利用base64编码解码的绕…

数据库提权总结

Mysql提权 UDF提权是利用MYSQL的自定义函数功能,将MYSQL账号转化为系统system权限 前提: 1.UDF提权条件 (1)Mysql版本大于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。 (2)Mysql…