数据包监视器 (Pktmon)

适用于:Windows Server 2022、Windows Server 2019、Windows 10、Azure Stack Hub、Azure、Azure Stack HCI(版本 21H2 和 20H2)

数据包监视器 (Pktmon) 是适用于 Windows 的内置跨组件网络诊断工具。 此工具可以用于数据包捕获、数据包丢弃检测、数据包筛选和计数。 此工具在虚拟化场景(如容器网络和 SDN)中特别有用,因为它提供了网络堆栈中的可见性。 可通过 pktmon.exe 命令和 Windows Admin Center 扩展直接使用。

概述

任何通过网络进行通信的计算机至少有一个网络适配器。 此适配器与应用程序之间的所有组件构成一个网络堆栈:一组处理和移动网络流量的网络组件。 在传统方案中,网络堆栈很小,所有数据包路由和交换都发生在外部设备中。

Networking stack in traditional scenarios

然而,随着网络虚拟化的出现,网络堆栈的大小成倍增加。 这个扩展的网络堆栈现在包括用于处理数据包处理和交换的虚拟交换机等组件。 这种灵活的环境可实现更好的资源利用率和安全隔离,但也导致难以诊断的配置错误的发生几率增加。 数据包监视器提供网络堆栈的增强可见性,而通常需要这种可见性来查明这些错误。

PacketMon's cross-component packet capture

数据包监视器在整个网络堆栈的多个位置截获数据包,从而公开数据包路由。 如果网络堆栈中受支持的组件丢弃了某个数据包,数据包监视器将报告该数据包丢弃情况。 这使用户可以区分作为数据包预期目标的组件和干扰数据包的组件。 此外,数据包监视器将报告丢弃原因;例如,MTU 不匹配或已筛选的 VLAN 等。这些丢弃原因提供了问题的根本原因,而无需详尽讨论所有可能性。 数据包监视器还为每个截获点提供数据包计数器,从而实现简要的数据包流检查,而无需进行耗时的日志分析。

PacketMon's drop detection

最佳方案

使用这些最佳做法来简化网络分析。

  • 查看命令行帮助以获取参数和功能(例如 pktmon start help)。
  • 根据方案配置数据包筛选器 (pktmon filter add)。
  • 查看试验期间的数据包计数器以了解大致情况 (pktmon counters)。
  • 查看日志以获取详细分析 (pktmon format pktmon.etl)。

功能

数据包监视器提供以下功能:

  • 网络堆栈中多个位置的数据包监视和计数
  • 多个堆栈位置的数据包丢弃检测
  • 具有封装支持的灵活的运行时数据包筛选
  • 常规日志记录和跟踪支持(ETW 和 WPP 事件)
  • 基于 TcpDump 数据包分析的 TXT 日志分析
  • 多种日志记录模式:实时、大量内存中、多文件、循环
  • 以太网、Wi-Fi 和移动宽带媒体类型支持
  • PCAPNG 格式支持

开始使用数据包监视器

以下资源可帮助你开始使用数据包监视器。

Pktmon 命令语法和格式设置

可在 Vibranium OS(版本 19041)上通过 pktmon.exe 命令直接使用数据包监视器。 可使用本主题了解如何了解 pktmon 语法、命令、格式设置和输出。

Windows Admin Center 中的数据包监视扩展

使用数据包监视扩展,你可以通过 Windows Admin Center 操作和使用数据包监视器。 该扩展通过网络堆栈捕获网络流量并将其显示在易于跟踪和操作的日志中,帮助你诊断网络问题。 可使用本主题了解该工具的操作方法和输出内容。

Windows Admin Center 中的 SDN 数据路径诊断扩展

SDN 数据路径诊断是 Windows Admin Center 的 SDN 监视扩展中的一个工具。 该工具根据各种 SDN 方案自动执行基于数据包监视器的数据包捕获,并在易于理解和操作的单一视图中显示输出。 可使用本主题了解该工具的操作方法和输出内容。

Microsoft 网络监视器 (Netmon) 支持

数据包监视器以 ETL 格式生成日志文件。 可使用 Microsoft 网络监视器 (Netmon) 通过特殊分析程序分析这些日志。 本主题说明如何在 Netmon 中分析数据包监视器生成的 ETL 文件。

Wireshark (pcapng 格式)支持

数据包监视器可将日志转换为 pcapng 格式。 可使用 Wireshark(或任何 pcapng 分析器)分析这些日志。 本主题说明了预期输出以及如何利用数据包监视器。

向工程团队提供反馈

使用以下步骤通过反馈中心报告任何 Bug 或提供反馈:

  1. 通过“开始”菜单启动“反馈中心”

  2. 选择“报告问题”按钮或“建议功能”按钮

  3. 在“总结问题”框中提供有意义的反馈标题

  4. 在“提供更多详细信息”框中提供详细信息和再现问题的步骤

  5. 选择“网络和 Internet”作为主类别,然后选择“数据包监视器(pktmon.exe)”作为子类别

  6. 为了帮助我们更快地识别和修复 Bug,请捕获屏幕截图、附加 pktmon 输出日志和/或重新创建问题。

  7. 单击“提交” 。

提交反馈/Bug 后,工程团队将能够查看反馈并加以解决。