Wireshark实验——UDP

UDP

UDP 是一种不提供不必要服务的轻量级运输协议,它仅提供最小服务。UDP 是无连接的,因此在两个进程通信前没有握手过程。UDP 协议提供一种不可靠数据传输服务,也就是说,当一个进程讲一个报文发送进 UDP 套接字时,UDP 协议并不保证该报文将到达接收进程。不仅如此,到达接收进程的报文也可能是乱序到达的。
UDP 没有包括拥挤控制机制,所以 UDP 的发送端可以用它选定的任何速率向其下层(网络层)注入数据。(然而,值得注意的是实际端到端吞吐量可能小于该速率,这可能是因为中间链路的带宽受限或因为拥塞而造成的。)——《Computer Networking A Top-down Approach》

实验操作

  1. 在 Wireshark 中捕获数据包,然后执行一些会导致主机发送和接收多个 UDP 数据包的操作。也可以什么也不做,仅执行 wireshark 捕获以便获取其他程序发给您的 UDP 数据包。有一种特殊情况:简单网络管理协议(SNMP)在 UDP 内部发送 SNMP 消息,因此您可能会在跟踪中找到一些 SNMP 消息(以及 UDP 数据包)。
  2. 停止数据包捕获后,设置数据包筛选器,以便 Wireshark 仅显示在主机上发送和接收的 UDP 数据包。 选择其中一个 UDP 数据包并在详细信息窗口中展开 UDP 字段。

问题解答

1.从跟踪中选择一个 UDP 数据包。从此数据包中,确定 UDP 标头中有多少字段,并为这些字段命名。


UDP 的标头有 4 个字段,一共 8 byte,各字段分别为:
Source Port:源端口号
Destination Port:目的端口号
Length:长度
Checksum:校验和

2. 通过查询 Wireshark 的数据包内容字段中显示的信息,确定每个 UDP 报头字段的长度。

每个部分都是 2 byte,因此 UDP 报头为 8 byte = 64 bit。
3. 长度字段中的值是指的是什么?使用捕获的 UDP 数据包验证您的声明。

长度字段指示了在 UDP 报文段中的字节数(首部 + 数据),这是因为数据字段的长度在一个 UDP 段中不同于在另一个段中,因此需要一个明确的长度。

如图所示,报文的长度是 778 byte,加上首部的 8 byte 为 786 byte 刚好是 Length 字段的长度。
4. UDP 有效负载中可包含的最大字节数是多少?

首先先认识下有效负载

有效负载是被传输数据中的一部分,而这部分才是数据传输的最基本的目的,和有效负载一同被传送的数据还有:数据头或称作元数据,有时候也被称为开销数据,这些数据用来辅助数据传输。——百度百科

扫描二维码关注公众号,回复: 11165049 查看本文章

简单地说,有效负载就是可变长度的数据部分。由于 Length 字段占 2byte = 65536 bit,并且其中 8 byte 是 UDP 首部信息。因此有效载荷 = 65536 - 8 = 65528 bit。
5. 最大可能的源端口号是多少?

两个 Port 字段占 2 byte = 65536 bit,同时端口号从 0 开始算,因此最大端口号 = 216 - 1 = 65535。
6. UDP 的协议号是什么? 以十六进制和十进制表示法给出答案。


UDP 的协议号为 17,十六进制为 0x11。
7. 观察发送 UDP 数据包后接收响应的 UDP 数据包,这是对发送的 UDP 数据包的回复,请描述两个数据包中端口号之间的关系。(提示:对于响应 UDP 目的地应该为发送 UDP 包的地址。)

发送 UDP 数据包:

接收 UDP 数据包:

参考资料

《计算机网络 自顶向下方法》 [美] James F.Kurose,Keith W.Ross 著,陈鸣 译,机械工业出版社
UDP
有效载荷
TCP/IP协议号大全

猜你喜欢

转载自www.cnblogs.com/linfangnan/p/12815687.html
今日推荐