Windows 用户空间 TCP/IP 堆栈 - 如何抑制指定以太网接口(interface)的内核堆栈?

标签 windows tcp network-programming npcap

我有一个在 Windows 用户空间程序中运行的 TCP/IP 堆栈。该堆栈基于 LwIP 的 Windows 端口:https://github.com/yarrick/lwip-contrib/tree/master/ports/win32

用户空间堆栈使用 npcap 库/驱动程序与第 2 层以太网接口(interface)连接:https://nmap.org/npcap/

ncap 用于发送和捕获原始以太网数据包,这些数据包在用户空间 LwIP 堆栈之间传递。

问题:假设我监听用户空间堆栈中的 TCP 端口 5000。 Windows 内核对用户空间堆栈一无所知,并将 5000 视为关闭端口。 这会干扰用户空间堆栈。例如,内核可能会使用 RESET 数据包响应传入的 SYN 数据包(拒绝 TCP 连接)。

问题:如何关闭指定以太网接口(interface)的 Windows 内核 TCP/IP 堆栈?我希望通过 ncap 的用户空间堆栈成为唯一发送数据包的堆栈。

最佳答案

取消选中网络适配器设置中的所有协议(protocol)解决了问题(ipv4、ipv6、其他...)

关于Windows 用户空间 TCP/IP 堆栈 - 如何抑制指定以太网接口(interface)的内核堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069780/

相关文章:

java - 插入USB热点后简单的Java程序慢100倍

Qt tcp/ip 服务器可与 telnet 一起使用,但不能与 python 或 netcat 一起使用

java - mina writefuture 返回 written=true 尽管失败

java - 使用JAVA从网络上的IP地址获取主机名

c# - 如何在 Windows 中的那个时刻查找特定进程的 cpu 使用率

C++,解析二进制注册表文件 (regf)

c++ - audiodg.exe 随着我调用的每个 Beep() 函数不断增长。系统不释放内存

ssl - 为什么 QUIC 协议(protocol)使用在 TCP 上运行的 TLS 数据包时却被说是基于 UDP 构建的?

java - 以编程方式发现网络

c++ - 如何在 C++ 中通过网络共享 RAM 模块?