[Wireshark Lab v8.1] Lab: UDP


[Wireshark Lab v8.1] Lab 翻译与解题.

以下实验步骤均来自实验指导手册。
实验指导手册下载地址:Jim Kurose Homepage (umass.edu)

Lab UDP

这个Lab我们将对UDP协议进行解析. 如书中第3章所述, UDP是一个面向字节流, 不加额外修饰的协议. 在进行实验之前可能需要重读书本3.3节. 由于UDP协议相对简单直观, 我们可以很快的讨论完成.

在当前的阶段, 你应该对Wireshark十分熟练了, 因此, 我们不再像前面的lab那样详细的列出操作步骤. 也不再额外提供分步骤的屏幕截图了.

任务

开启Wireshark抓包, 然后进行一些操作使你的主机能够发出和接受一些UDP报文. 当然也有可能什么也不做, 就能抓到其他应用发送的UDP报文. 特殊的, DNS协议(在DNS lab探究过的)通常基于UDP发送查询和响应消息, 因此你可以通过找到DNS消息来找到UDP协议.

具体来说,您可以尝试调用底层 DNS 协议的 nslookup 命令,该协议反过来将 UDP 段从发出 nslookup 的主机发送/发送到主机。 nslookup 在大多数 Microsoft、Apple IOS 和 Linux 操作系统中都可用。 要运行 nslookup,您只需在 DOS 窗口、Mac IOS 终端窗口或 Linux shell 的命令行中键入 nslookup 命令。 nslookup 命令已经在DNS lab中讲过, 具体用法不在赘述, 为了抓包直接使用nslookup www.nyu.edu 即可

我们不需要深入了解 nslookup 或 DNS 的更多细节,因为我们只是对将一些 UDP 段放入 Wireshark 感兴趣,并且我们承诺这个实验会很短!

在 Wireshark 上开始数据包捕获后,运行 nslookup 以获取您有一段时间没有访问过的主机名。然后停止数据包捕获,设置您的 Wireshark 数据包过滤器,以便 Wireshark 仅显示在您的主机发送和接收的 UDP 段。选择第一个 UDP 段并展开详细信息窗口中的 UDP 字段。如果您无法在跟踪中找到 UDP 段或无法在实时网络连接上运行 Wireshark,您可以下载包含一些 UDP 段的数据包跟踪

回答下列问题:

  1. 选中trace中第一个UDP报文, 他在UDP中的报文编号是多少? UDP承载的应用层的负载的类型或协议信息是什么? 在Wireshark中详细查看这个报文的内容, UDP 头中有多少字段(你不需要查看书本, 直接通过你的观察就可以回答该问题)? 这些字段的名字是什么?
  2. 通过查看Wireshark的包内容字段中显示的信息(或参考教科书),每个UDP头字段的长度(以字节为单位)是多少?
  3. Length 域的值是什么的长度(可以查书来获取答案). 通过抓到的UDP报文确认你的回答.
  4. UDP 负载可以包含的最大数据量是多少? (提示: 这个问题的答案可由问题2的答案确定)
  5. 源端口号最大可以是多少?
  6. UDP的协议号是多少? 给出10进制下的答案, 为了回答这个问题, 你需要查看包含此 UDP 段的 IP 数据报的协议字段(参见文本中的图 4.13,以及 IP 头字段的讨论)
  7. 检查主机发送第一个 UDP 数据包和第二个 UDP 数据包是对第一个 UDP 数据包的回复的 UDP 数据包对。 (提示:为了响应第一个数据包而发送第二个数据包,第一个数据包的发送者应该是第二个数据包的目的地)。 跟踪文件中这两个 UDP 段中的第一个的报文编号是什么(请记住,此“报文编号”由 Wireshark 分配,仅用于列出目的; 它是不包含在任何实际数据包头中的), 跟踪文件中这两个 UDP 段中的第二个? 描述两个数据包中端口号之间的关系。

就是这样! 作为一个面向字节流、简洁的协议,UDP 值得一个面向字节流、简洁的 Wireshark lab.

解答:

UDP 头

  1. 我们的UDP是通过DNS产生的, 因此是DNS
    |16字节源端口|16字节目的端口|
    |16字节长度|16字节Checksum|
  2. UDP头部长度是8字节
  3. 长度域是头部加负载的长度
  4. 最大数据量是65535 (2^8-1)
  5. 最大端口号也是65535
  6. 这个问题指的是IP报头里的Protocol字段, UDP是17
  7. 问答和响应的端口号是 65022<->53, 尽管是无连接的, 但为了进行通信, 响应的端口号还是回到原来的端口.
lab