小白网-奉贤部落-奉贤免费信息发布平台

标题: UDP指什么(udp是啥) [打印本页]

作者: [db:作者]    时间: 2025-7-26 13:08
标题: UDP指什么(udp是啥)
前言前一部分讲了路由协议相关的知识点,包括如何通过路由规则、动态路由协议等信息选择数据报出口。
今天是五一节,就来说说UDP相关的知识点,还是八股文。

如果说MAC层定义了本地局域网的传输行为,IP层定义了整个网络端到端的传输行为,这两层基本定义了网络传输是以包为单位的现象,第二层叫帧,网络层叫包,传输层叫段。数据包是分开传输的,自己路由,在不同的设备中封装和解封装,不保证到达。

UDP是一种简单的面向数据包的传输层协议。
该过程的每个输出操作恰好生成一个UDP数据报,并将其组装成要发送的IP数据报。
UDP不提供可靠性,只负责将应用程序传递的数据发送到IP层,但不保证它们能到达目的地。
" UDP功能"
[*]简单交流[*]任意传输,任何人都可以将数据传输到相应的端口。[*]不会根据网络情况而改变。1.UDP头端口号表示发送进程和接收进程。
因为IP层已经将IP数据报分配给TCP或UDP(根据IP报头中协议字段的值)
因此,TCP端口号由TCP查看,而UDP端口号由UDP查看。
TCP端口号和UDP端口号相互独立。
UDP字段值是UDP报头和UDP数据的字节长度。
最小值为8字节,即无数据。
IP数据报长度的值是数据报的全长,所以UDP数据报长度是全长减去IP头的长度。
2.UDP校验和UDP校验和覆盖UDP头和UDP数据,而IP校验和只覆盖IP头,不覆盖数据。
UDP的校验和是可选的,而TCP的校验和是必需的。
UDP校验和的基本计算方法与IP报头校验和类似,但也有一些不同。
UDP数据报的长度可以是奇数字节,但是校验和算法是加几个16位的字。解决方法是在必要时在末尾添加填充字节0,只是为了检查sum的计算。
UDP数据报和TCP end都包含一个12字节的伪报头,该报头是为计算校验和而设置的。
伪报头包含IP报头的一些字段,以便UDP可以两次检查数据是否正确到达目的地。
如果校验和的结果为0,则存储值全为1(65535),在二进制补码的计算中等价。
如果发送的校验和为0,则发送方没有计算校验和。
如果发送方没有计算校验和,而接收方检测到校验和错误,UDP数据报将被悄悄丢弃。
3.IP分段“当要发送的数据包大小大于路径MTU时,需要IP数据报分段”
IP数据报被分段后,只有在到达目的地时才会被重组。
重组由目的地的IP层完成,以便使分段和重组过程对传输层(TCP和UDP)透明。
已经分段的数据报可以再次分段,IP报头中包含的数据为分段和重组提供了足够的信息。
对于发送方发送的每个IP数据报,其标识字段包含一个唯一值,当数据报被分片时,该值不会被复制到每个分片中。
标志字段用其中一个位指示“更多的切片”。
除了最后一个片,对于组成数据报的每隔一个片,该位应该被设置为1。
切片偏移字段指的是切片从原始数据报的开始处偏移的位置。
当数据报被分段时,每个分段的总长度值应改为该分段的长度值。
标志字段中有一个位称为“无碎片”位。如果该位为1,IP将不分段数据报。相反,丢弃数据报并发送ICMP错误消息。
当IP数据报被分段时,每个分段成为一个具有自己的IP报头的分组,在选择路由器时,该报头独立于其他分组。到了目的地可能就坏了。
如果有一段数据丢失,整个数据报将被重传。因为是中间路由器将数据报分段,而不是原始系统,后者不知道数据报是如何分段的。
4.ICMP不可达错误(需要分段)的另一种情况是当路由器接收到需要分段的数据报,并且在IP报头中设置了DF的标志位。
如果路由器没有提供这种新的ICMP错误消息格式,下一站的MTU将被设置为0。
5.Traceroute是深入研究TCP/IP协议的方便有效的工具。
不能保证从源端到目的端的两个连续的IP数据报具有相同的路由。
首先发送一个TTL字段为1的UDP数据报,然后每次将TTL字段递增1,以确定路径中的每台路由器。当丢弃UDP数据报时,每台路由器都会返回ICMP超时消息2,而最终目的主机会生成ICMP端口不可达的消息。
Traceroute不仅可以找到路由,还可以确定路径的MTU。
“确定路径MTU:”发送数据包,并设置“无碎片”标志位。发送的第一个数据包的长度正好等于出口MTU,每次收到ICMP“无法分段”错误时,数据包长度都会减少。
6.最大UDP数据报长度理论上,IP数据报的最大速度是65,535字节,受限于IP头的16位总长度字段。
除去20字节的IP头和8字节的UDP头,UDP数据报中用户数据的最大长度为65,507字节。
但是,一般实现提供的长度小于这个最大值。
两个限制因素:
(1)应用程序可能受到其程序接口的限制。例如,socket API可以设置接收和发送缓存的长度。
(2)TCP/IP的内核实现。可能有一些实现特征(或错误)使得IP数据报的长度小于65535字节。
7.ICMP源站禁止错误报告。当系统接收数据报的速度超过其处理速度时,可能会发生此错误。
单词“可能”是因为即使系统没有缓存和丢弃数据报,也不需要发送源抑制消息。
UDP和TCP的区别(1) TCP面向连接,UDP无连接。
“什么是面向连接?」
面向连接的协议将首先建立连接。例如,TCP会执行三次握手,但UDP不会。
所谓连接建立,就是维护客户端和服务器之间的连接,建立一定的数据结构来维持双方交互的状态,以这样的数据结构来保证所谓的面向连接的特性。
(2)TCP提供可靠的交互,通过TCP连接传输的数据会按顺序到达,不会出现错误、丢失或重复。
UDP继承了IP包的特性,不保证不丢失,也不保证按顺序到达。
(3)TCP是面向字节流的,而UDP继承了IP的特点,是基于包的,一个一个发送,一个一个接收。
(4)TCP有拥塞控制,根据接收方的吞吐量来控制发送速度,UDP没有。
(5)TCP是有状态服务,UDP是无状态服务。
使用场景需要的资源较少,处于网络条件较好的内网,或者对丢包不敏感。[*]不需要建立连接但可以广播的应用程序DHCP是一种广播形式,基于UDP协议。组播,D类地址,即组播地址。使用此地址向一组机器多播数据包。[*]它需要高处理速度、低延迟并能容忍少量分组丢失,但要求即使网络拥塞,发送速度也不会改变。===============================
我是Liusy,一个喜欢健身的程序员。
更多干货和最新消息,请关注微信官方账号:上古伪神。
如果对你有帮助,关注它,转发它,就是对我最大的支持!!!谢谢你




欢迎光临 小白网-奉贤部落-奉贤免费信息发布平台 (http://www.ts-xiangyue.com/) Powered by Discuz! X3.2