WinPcap/Npcap 在 Windows 网络堆栈中的哪个位置执行挂钩/过滤器来“监听”数据包?

WinPcap/Npcap 在 Windows 网络堆栈中的哪个位置执行挂钩/过滤器来“监听”数据包?

我正在调查通过套接字执行 IPC 的进程的问题。套接字由本地计算机的 NIC 的 IP 提供服务,并且从本地计算机上的另一个进程连接到本地计算机的 NIC 的 IP。

我预计这至少会使 Windows 网络堆栈下降到足以让 Wireshark 看到数据包的程度。然而,事实似乎并非如此。因此,我可以得出结论,套接字 IPC 在堆栈中发生得更高 [看看是否有任何 Windows 事件跟踪 (ETW) 设施会将流量视为 IP 帧会很有趣]。这对这个问题并不重要(因为这不是 stackoverflow)。

WinPcap/Npcap 在网络堆栈中位于哪里,以监听并将数据包传递给 wireshark?

我专注于现代 Windows 操作系统版本(客户端:7+、10+;服务器:2008+、2012+、2016+)。具体来说,此客户端是 Windows 10。

我实际上想要知道在网络堆栈的哪个位置做出决定将数据包“环回”到主机而不是将它们发送到堆栈下方。

谢谢

答案1

它位于 IP 层,除非启用了快速环回,否则它位于 TCP 层。由于 Microsoft 网络堆栈未配备用于捕获环回流量的工具,因此 Network Monitor 或 Wireshark 等应用程序无法工作。

“TCP 环回接口的默认行为是将本地 TCP 流量通过大多数网络堆栈移动,包括 AFD(本质上是用户模式 ​​TCP 套接字的内核模式表示),以及与 TCP 和 IP 协议层相对应的层。”

https://blogs.technet.microsoft.com/wincat/2012/12/05/fast-tcp-loopback-performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast-path/

或者,您也可以使用 Microsoft Message Analyzer 在 Windows 筛选平台 (WFP) 层上进行捕获:

https://blogs.msdn.microsoft.com/winsdk/2014/08/15/rejoice-we-can-now-capture-loopback-traffic/

相关内容