用户数据报协议—UDP

时间:2023-09-14
新悦网络

编辑:

用户数据报协议 (UDP)是传输层协议。UDP是Internet协议族的一部分,简称UDP/IP族。与 TCP 不同,它是一种不可靠且无连接的协议。因此,无需在数据传输之前建立连接。UDP 有助于在网络上建立低延迟且耐丢失的连接。UDP 使进程能够进行通信。

UDP 标头

UDP 标头是8 字节固定且简单的标头,而 TCP 标头可能从 20 字节到 60 字节不等。前 8 个字节包含所有必要的标头信息,其余部分由数据组成。UDP端口号字段每个长度为16位,因此端口号的范围定义为0到65535;端口号 0 被保留。端口号有助于区分不同的用户请求或进程。 

 

UDP标头

  1. 源端口:源端口是一个2字节长的字段,用于标识源的端口号。
  2. 目的端口: 2字节长的字段,用于标识目的数据包的端口。
  3. 长度:长度是UDP的长度,包括报头和数据。它是一个 16 位字段。
  4. 校验和:校验和是 2 字节长的字段。它是 UDP 报头、来自 IP 报头的信息的伪报头和数据的补码和的 16 位补码,在末尾填充零八位字节(如果需要)以形成 2 的倍数八位位组。

注意:与 TCP 不同,UDP 中不强制执行校验和计算。UDP 不提供错误控制或流量控制。因此,UDP 依赖于 IP 和 ICMP 来进行错误报告。UDP 还提供端口号,以便可以区分用户请求。

UDP的应用: 

  • 当数据大小较小时用于简单的请求-响应通信,因此对流量和错误控制的关注较少。
  • 它是一种适合多播的协议,因为 UDP 支持数据包交换。
  • UDP 用于一些路由更新协议,如 RIP(路由信息协议)。
  • 通常用于实时应用程序,不能容忍接收到的消息各部分之间的不均匀延迟。
  • UDP广泛应用于在线游戏中,低延迟和高速通信对于良好的游戏体验至关重要。游戏服务器经常向客户端发送小而频繁的数据包,而 UDP 非常适合这种类型的通信,因为它快速且轻量级。
  • IPTV、网络广播、视频会议等流媒体应用都使用UDP来传输实时音视频数据。在这些应用程序中可以容忍某些数据包的丢失,因为数据是连续流动的并且不需要重传。
  • VoIP(互联网协议语音)服务,例如 Skype 和 WhatsApp,使用 UDP 进行实时语音通信。如果由于拥塞控制导致数据包延迟,语音通信中的延迟会很明显,因此使用 UDP 来确保快速高效的数据传输。
  • DNS(域名系统)也使用 UDP 来处理其查询/响应消息。DNS 查询通常很小并且需要快速响应时间,这使得 UDP 成为适合此应用程序的协议。
  • DHCP(动态主机配置协议)使用 UDP 为网络上的设备动态分配 IP 地址。DHCP 消息通常很小,并且数据包丢失或重传引起的延迟对于此应用程序通常并不重要。
  • 以下实现使用 UDP 作为传输层协议: 
    • NTP(网络时间协议)
    • DNS(域名服务)
    • 启动、DHCP。
    • NNP(网络新闻协议)
    • 当天报价协议
    • TFTP、RTSP、RIP。
  • 应用层可以通过UDP来完成一些任务—— 
    • 追踪路线
    • 记录路线
    • 时间戳
  • UDP 从网络层获取数据报,附加其标头,然后将其发送给用户。所以,它的工作速度很快。
  • 实际上,如果去掉校验和字段,UDP 就是一个空协议。
  1. 减少对计算机资源的需求。
  2. 当使用组播或广播进行传输时。
  3. 实时数据包的传输,主要在多媒体应用中。

UDP的优点:

1.速度:UDP比TCP更快,因为它没有建立连接和确保可靠数据传送的开销。

2. 更低的延迟:由于没有建立连接,因此延迟更低,响应时间更快。

3、简单性:UDP比TCP有更简单的协议设计,更容易实现和管理。

4. 广播支持:UDP 支持向多个接收者广播,这对于视频流和在线游戏等应用非常有用。

5. 更小的数据包大小:UDP 使用比 TCP 更小的数据包大小,可以减少网络拥塞并提高整体网络性能。

UDP的缺点:

1. 不可靠:UDP不保证数据包的传送或传送顺序,这可能导致数据丢失或重复。

2.无拥塞控制:UDP没有拥塞控制,这意味着它可以以可能导致网络拥塞的速率发送数据包。

3. 无流量控制:UDP 没有流量控制,这意味着它可能会用无法处理的数据包淹没接收方。

4.容易受到攻击:UDP容易受到拒绝服务攻击,攻击者可以用UDP数据包淹没网络,使网络不堪重负并导致崩溃。

5. 有限的用例:UDP 不适合需要可靠数据传输的应用程序,例如电子邮件或文件传输,而更适合可以容忍某些数据丢失的应用程序,例如视频流或在线游戏。

UDP 伪标头:

  • 使用伪标头的目的是验证 UDP 数据包已到达其正确的目的地
  • 正确的目的地由特定机器和该机器内的特定协议端口号组成

UDP伪头

 

UDP伪头详细信息:

  • UDP 标头本身仅指定协议端口号。因此,为了验证发送机器上的目标 UDP,会计算涵盖目标 IP 地址以及 UDP 数据包的校验和。
  • 在最终目的地,UDP 软件使用从携带 UDP 消息的 IP 数据包标头获得的目的地 IP 地址来验证校验和。
  • 如果校验和一致,则数据包一定已到达预期的目标主机以及该主机内的正确协议端口。

用户界面:

用户界面应允许创建新的接收端口、在接收端口上返回数据八位位组以及源端口和源地址的指示的接收操作,以及允许发送数据报的操作,指定数据、源和要发送的目标端口和地址。

IP接口:

  • UDP 模块必须能够确定源和目标互联网地址以及互联网标头中的协议字段 
  • 一种可能的 UDP/IP 接口将返回整个互联网数据报,包括整个互联网标头,以响应接收操作
  • 这样的接口还允许 UDP 将带有标头的完整互联网数据报传递到 IP 进行发送。IP 将验证某些字段的一致性并计算互联网标头校验和。
  • IP接口允许UDP模块与协议栈的网络层交互,协议栈负责通过网络路由和传送数据。
  • IP 接口通过提供对底层 IP 协议的访问,为 UDP 模块提供了一种与网络上其他主机进行通信的机制。
  • UDP 模块可以使用 IP 接口在 IP 路由和寻址机制的帮助下通过网络发送和接收数据包。
  • IP 接口提供了一个抽象级别,允许 UDP 模块与网络层交互,而无需直接处理 IP 路由和寻址的复杂性。
  • IP 接口还处理 IP 数据包的分段和重组,这对于可能超过网络允许的最大数据包大小的大数据传输非常重要。
  • IP 接口还可以提供附加服务,例如对服务质量 (QoS) 参数和安全机制(例如 IPsec)的支持。
  • IP 接口是互联网协议簇的重要组成部分,因为它支持互联网上主机之间的通信,并允许数据包在网络上无缝传输。

最新内容

知识库