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 字节

 UDP协议介绍_第1张图片

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 的特性和注意事项,才能更好地利用它构建高效、稳定的网络应用。

 

你可能感兴趣的:(javaEE,udp,网络协议,网络)