UDP协议 落日映苍穹つ 2024-04-25 08:44 134阅读 0赞 **UDP**(User Datagram Protocol 即用户数据报协议)是传输层的重要协议之一(还有一个重要协议是TCP) ## UDP协议端格式 ## **UDP数据报 = 报头 + 载荷(应用层数据包)** ![0843ebe9f8634b738e1a6e29f7b63c36.png][] 其中UDP报头中一共有 **4** 个字段,每个字段 **2** 个字节(因此一共 **8** 字节) ![d2a414b07518437186b130f76f6d6192.png][] 即: ![cd199b59dae3415d9e7453d4bbf11c1d.png][] UDP报头中使用2个字节表示端口号,因此,端口号的取值范围为:0 - 65535,这也是合法端口号的取值范围,其中 **0 - 1023 为知名端口号(例如ssh服务器,使用22端口,端口号是固定的),1024 - 65535为操作系统动态分配的端口号** 16位UDP长度:整个数据报(UDP首部 + UDP数据)的最大长度 16位UDP校验和:检测数据经过传输后是否正确 > 网络中的数据传输,本质上是通过光信号、电信号等进行传播,而这些传输可能受到干扰,(例如,使用高电平表示1 低电平表示 0 ,在外界磁场的影响下,低电平就可能变为高电平,此时 0 就变为了 1,就发生了比特翻转,数据就出现了错误)因此,在接收数据后,要检测收到的数据是否正确(通过校验和检验),若检测发现数据有误,就可以将其丢弃 > **UDP校验和是如何进行校验的呢?** UDP使用了**CRC校验算法(循环冗余校验和)**来计算校验和,即将UDP数据报中的每个字节都进行累加,再将累加结果保存在2个字节的UDP校验和中(在这里不用考虑数据是否会溢出的问题,最终计算结果是多少就保存多少) 在发送UDP数据报之前,发送方先使用CRC校验算法,计算出校验和(v1),并将其保存到UDP数据报中 当接收方接收到数据后,也会使用CRC校验算法,计算出结果(v2),再比较v1和v2是否相同,若相同,则数据正确,若不同,则在传输过程中发送了比特翻转 ## UDP的特点 ## **无连接:**发送方只需要知道接收方的IP和端口号就可以直接进行传输了,不需要建立连接 **不可靠传输:**无确认机制也无重传机制,若由于网络故障导致数据无法发送给接收方,UDP协议层也不会向应用层返回任何错误信息 **面向数据报:**以数据报为单位进行传输,应用层交给UDP多长的报文,UDP原样发送,不能灵活控制读写数据的次数和数量 **有接收缓冲区,无发送缓冲区:**UDP无发送缓冲区,只要有数据,就进行发送,不管对方是否能够正确接收,因此不会缓冲,也就不需要发送缓冲区;而UDP有接收缓冲区,但不能保证收到的UDP报文顺序和发送UDP报文的顺序一致,当缓冲区满时,新的数据报无法进入接收缓冲区,此数据报就会被丢弃 **大小受限(一次最多传输64K):**由于UDP报头中使用2字节(取值范围为0 - 65535)来表示16位UDP长度,因此能传输的最大数据长度为64K(包括UDP首部) > **由于使用UDP协议大小受限,那么,若需要传输的数据超过64K时,应该如何传输呢?** 若需要传输的数据超过64K,则需要在应用层手动分包,多次发送,并在接收方手动拼装;或是改用TCP协议 ## 基于UDP的应用层协议 ## NFS(Network File System):网络文件系统 TFTP(Trivial File Transfer Protocol):简单文件传输协议 DHCP(Dynamic Host Configuration Protocol):动态主机配置协议 DNS(Domain Name System):域名解析协议 SNMP(Simple Network Management Protocol):简单网络管理协议 ... [0843ebe9f8634b738e1a6e29f7b63c36.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/25/4ea94626418941eb82e3885566668a2a.png [d2a414b07518437186b130f76f6d6192.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/25/4865cf3649684feda6d869fce967c155.png [cd199b59dae3415d9e7453d4bbf11c1d.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/04/25/d46c2592ff5f411eb04bcda7ec58d8a2.png
相关 UDP协议 (User Datagram Protocol 即用户数据报协议)是传输层的重要协议之一(还有一个重要协议是TCP) 落日映苍穹つ/ 2024年04月25日 08:44/ 0 赞/ 135 阅读
相关 UDP协议 网络传输中,由于一些外部干扰,就可能会出现数据传输出错的情况。因此,就需要有办法,能够识别出出错的数据。校验和,就是这样的一种检查手段。校验和本质上是一个字符串,体积比原... ゝ一世哀愁。/ 2024年04月23日 21:19/ 0 赞/ 132 阅读
相关 UDP协议 UDP协议 文章目录 UDP协议 一、UDP协议 二、UDP的首部格式 1.首部字段 三、UDP协议的特点 1.无连 悠悠/ 2024年02月23日 02:45/ 0 赞/ 25 阅读
相关 UDP协议 ![在这里插入图片描述][54b363736e2148a3a82cb2451df1fb8e.gif_pic_center] 文章目录 一、前沿知识 应 太过爱你忘了你带给我的痛/ 2023年09月27日 14:24/ 0 赞/ 178 阅读
相关 UDP协议 UDP (User Datagram Protocol)用户数据报协议,在数据传输时彼此之间不需要建立连接,传输前需要把数据定义成数据报,并且传输效率高,但是不安全。 Dat 野性酷女/ 2023年08月17日 16:10/ 0 赞/ 154 阅读
相关 UDP协议 前面我们介绍了了TCP协议,深入浅出TCP协议,为什么需要TCP协议?知道TCP是面向连接的提供可靠性服务的传输层协议,今天讲下同属于传输层的另一个协议——UDP。 正文 素颜马尾好姑娘i/ 2023年02月26日 10:25/ 0 赞/ 61 阅读
相关 UDP协议 一、通信协议。 -- UDP协议 TCP -> Tranmission Control Protocol UDP -> User Data Protocol IP 水深无声/ 2022年12月13日 14:02/ 0 赞/ 279 阅读
相关 UDP协议 UDP 是面向数据报的传输层协议(TCP是面向字节流的协议)。面向报文的传输方式是指应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。 UDP不提供错误 以你之姓@/ 2022年08月21日 01:29/ 0 赞/ 380 阅读
相关 《网络协议》UDP 协议 概述 UDP 是无连接、不可靠的数据报传输层协议,为应用程序发送和接收数据报,只是将数据报的分组从一台主机发送到另一台主机,但并不保证数据报能够到达另一端,任何 清疚/ 2022年08月14日 03:51/ 0 赞/ 382 阅读
相关 UDP协议 1)UDP协议概述 ![20190807084647592.png][] 2)UDP服务器与客户端程序 服务器端: String 谁践踏了优雅/ 2021年11月05日 13:26/ 0 赞/ 480 阅读
还没有评论,来说两句吧...