📜  UDP 报头示例

📅  最后修改于: 2021-09-27 22:35:14             🧑  作者: Mango

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

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

示例-1:
给定 UDP 报头的 DUMP 十六进制格式06 32 00 0D 00 1C E2 17.找到以下内容:-

  1. 源端口号?
  2. 目标端口号?
  3. 用户数据报的长度?
  4. 数据长度?

解决方案 :

  1. 源端口 –
    源端口是一个 2 字节长的字段,用于标识源的端口号。源端口号是前四位十六进制数字,即06 32如果我们将十六进制转换为十进制我们得到 1586。
  2. 目的端口 –
    它是一个 2 Byte 长的字段,用于标识目的地数据包的端口。目的端口号是后四位十六进制数字00 0D如果我们将十六进制转换为十进制我们得到 13
  3. 长度 –
    Length 是 UDP 的长度,包括头部和数据。它是一个 16 位字段。第三个四位十六进制数字00 1C如果我们将十六进制转换为十进制我们得到 16 定义整个 UDP 数据包的长度为 28
  4. 标题的长度 –
    它是 8 个字节,因为它是固定的。数据的长度是整个数据包的长度——头部的长度,即 28 – 8 = 20 个字节。

示例 2 :

给定 UDP 报头的 DUMP 十六进制格式04 21 00 0B 00 2A E2 17.找到以下内容:-

  1. 源端口号?
  2. 目标端口号?
  3. 用户数据报的长度?
  4. 数据长度?

解决方案:

  1. 源端口号是前四位十六进制数字,即04 21如果我们将十六进制转换为十进制我们得到 1057
  2. 目的端口号是后四位十六进制数字00 0B如果我们将十六进制转换为十进制我们得到 11
  3. 第三个四位十六进制数字00 2A如果我们将十六进制转换为十进制 42 定义整个 UDP 数据包的长度为 28
  4. 数据的长度是整个数据包的长度——头部的长度,即 28 – 8 = 20 个字节。

示例 3 :

给定十六进制格式 03 61 10 1A 10 4C Y2 42 的 UDP 标头的 DUMP。找到以下内容:-

  1. 源端口号?
  2. 目标端口号?
  3. 用户数据报的长度?
  4. 数据长度?

解决方案:

  1. 源端口号是前四位十六进制数字,即03 61如果我们将十六进制转换为十进制我们得到 0865
  2. 目的端口号是后四位十六进制数字10 1A如果我们将十六进制转换为十进制我们得到 4122
  3. 第三个四位十六进制数字10 4C如果我们将十六进制转换为十进制 4172 定义整个 UDP 数据包的长度为 28
  4. 数据的长度是整个数据包的长度——头部的长度,即 28 – 8 = 20 个字节。

笔记 :
UDP 报头还包含可变长度的有效载荷数据。 UDP 用作隧道协议,其中隧道端点将另一个协议的数据包封装在 UDP 数据报中,并将它们传输到另一个隧道端点,后者解封装 UDP 数据报并转发包含在有效载荷中的原始数据包。