📜  用户数据报协议 (UDP)

📅  最后修改于: 2022-05-13 01:57:01.468000             🧑  作者: Mango

用户数据报协议 (UDP)

用户数据报协议 (UDP)是一种传输层协议。 UDP 是 Internet 协议套件的一部分,称为 UDP/IP 套件。与 TCP 不同,它是一种不可靠且无连接的协议。因此,无需在数据传输之前建立连接。

尽管传输控制协议 (TCP) 是与大多数 Internet 服务一起使用的主要传输层协议;提供有保证的交付、可靠性等等,但所有这些服务都会给我们带来额外的开销和延迟。在这里,UDP 出现了。用于计算机游戏、语音或视频通信、现场会议等实时服务;我们需要UDP。由于需要高性能,UDP 允许丢弃数据包而不是处理延迟的数据包。 UDP 没有错误检查,因此也节省了带宽。
用户数据报协议 (UDP) 在延迟和带宽方面都更有效。

UDP 标头 –

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

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

注意 –与 TCP 不同,校验和计算在 UDP 中不是强制性的。 UDP 不提供错误控制或流量控制。因此,UDP 依赖于 IP 和 ICMP 进行错误报告。

UDP的应用:

  • 当数据量较小时用于简单的请求-响应通信,因此对流量和错误控制的关注较少。
  • 它是适合多播的协议,因为 UDP 支持数据包交换。
  • UDP 用于一些路由更新协议,如 RIP(路由信息协议)。
  • 通常用于不能容忍接收消息部分之间的不均匀延迟的实时应用程序。
  • 以下实现使用 UDP 作为传输层协议:
    • NTP(网络时间协议)
    • DNS(域名服务)
    • 引导,DHCP。
    • NNP(网络新闻协议)
    • 每日报价单
    • TFTP、RTSP、RIP。
  • 应用层可以通过UDP来完成一些任务——
    • 追踪路线
    • 记录路线
    • 时间戳
  • UDP 从网络层获取数据报,附加它的报头,并将其发送给用户。所以,它工作得很快。
  • 实际上,如果您删除校验和字段,UDP 是一个空协议。
    1. 减少对计算机资源的需求。
    2. 使用组播或广播进行传输时。
    3. 实时数据包的传输,主要在多媒体应用中。
  1. GATE CS 2013,问题 12
  2. GATE CS 2012,问题 65
  3. GATE CS 2007,问题 20
  4. GATE CS 2005,问题 23
  5. GATE IT 2008,问题 66
  6. GATE Mock 2015,问题 5