UDP协议介绍
目录
一、UDP基本概念
1、定义:
2、特点:
(1)无连接:
(2)不可靠传输:
(3)面向数据报:
(4)全双工:
二、UDP协议格式
1、UDP报文结构
2、各部分详解:
(1)源端口号:
(2)目的端口号:
(3)UDP长度:
(4)校检和:
三、UDP使用注意事项
四、基于UDP的应用层协议
五、总结
一、UDP基本概念
1、定义:
UDP(User Datagram Protocol,用户数据报协议)是 TCP/IP 协议簇中位于传输层的核心协议之一,是一种无连接、不可靠但高效的传输层协议。
2、特点:
(1)无连接:
发送方可以直接向目标地址和端口发送数据,减少了通信前的准备时间,这是它 “快” 的重要原因。
(2)不可靠传输:
UDP不保证数据的可靠送达
没有确认机制:发送方不知道接收方是否收到数据;
没有重传机制:数据丢失后不会自动重新发送;
没有顺序保证:数据包可能因传输路径不同,以乱序到达接收方。
(3)面向数据报:
“面向数据报” 是 UDP 最核心的传输逻辑之一,UDP以“数据报”为基本传输单位,每个数据报都是独立、完整的,发送方和接收方对数据的处理严格以数据报为边界。
由于数据报具有独立性,发送与接收“一一对应”,不会合并也不会拆分,数据报大小限制,这就造成了不能够灵活的控制读写数据的次数和数量。
(4)全双工:
全双工是指 UDP 支持通信双方在同一时间双向发送数据,且发送和接收过程互不干扰。
举个例子:视频通话中,你的设备向对方发送语音数据(A→B),同时也接收对方的语音数据(B→A),这两个过程并行进行;
二、UDP协议格式
1、UDP报文结构
UDP 报文结构非常简洁,由首部和数据两部分组成,整体长度固定且短小;
UDP 首部仅包含 8 个字节(64位),分为 4 个字段,每个字段各占 2 字节
2、各部分详解:
(1)源端口号:
用于标识发送端的端口。在一些不需要回复的场景中,源端口号可以为 0,此时表示不需要对方回送数据。
(2)目的端口号:
用于标识接收端的端口,是数据准确送达目标应用程序的关键。
(3)UDP长度:
指的是 UDP 报文的总长度,包括首部(固定8字节)和数据部分,最大65535字节(约64KB)
(4)校检和:
用于对 UDP 报文进行完整性校验。它不仅校验 UDP 首部,还会校验数据部分,如果校验和验证失败,UDP 报文会被丢弃。
HTTPS的数字签名是为了防止黑客篡改;
UDP的校检和是为了防止传输过程中的“比特翻转”,与安全性无关
三、UDP使用注意事项
虽然 UDP 具有简洁、高效、低延迟等优点,但它也存在一些局限性。在使用 UDP 时,需要充分了解这些特点,以便扬长避短。
1、由于没有连接,UDP 发送方无法知道接收方是否准备好接收数据,也无法确保数据能够到达接收方。
2、UDP 不保证数据的可靠传输,数据在传输过程中可能会因为网络拥堵、链路故障等原因丢失,而且 UDP 也没有重传机制。
3、由于 UDP 报文可能经过不同的路径传输,到达接收方的顺序可能与发送顺序不一致。接收方需要自行处理报文的排序问题。
4、⼀个UDP能传输的数据最⼤⻓度是64K,然而64K在当今的互联⽹环境下是⼀个⾮常⼩的数字,如果我们需要传输的数据超过64K,就需要在应⽤层⼿动的分包,多次发送,并在接收端⼿动拼装。
四、基于UDP的应用层协议
• NFS:⽹络⽂件系统
• TFTP:简单⽂件传输协议
• DHCP:动态主机配置协议
• BOOTP:启动协议(⽤于⽆盘设备启动)
• DNS:域名解析协议
五、总结
UDP 以其简洁的报文结构和高效的传输特性,在实时通信等领域发挥着重要作用。它的报文结构简单明了,首部仅 8 字节,数据部分灵活承载应用数据。但同时,UDP 也存在无连接、不可靠、缺乏流量控制和拥塞控制等局限性。
在实际应用中,我们需要根据具体的业务需求选择合适的协议。如果对实时性要求高,且能够容忍少量丢包和无序到达,UDP 是一个不错的选择,但需要在应用层做好可靠性保障、数据排序、速率控制等工作;如果需要可靠的数据传输,TCP 则更为合适。只有充分理解 UDP 的特性和注意事项,才能更好地利用它构建高效、稳定的网络应用。