使用 Node.js 我可以访问多少网络堆栈?

How much of the network stack do I have access to using Node.js?

查看 TCP/IP 堆栈的表示,例如在这张照片中:

我有兴趣(出于好奇)尝试阅读第 2 层(数据 link)headers。这可能吗?我认为 net 模块只允许访问传输层数据包。我看到也有一个 udp 模块,但同样我怀疑我能否从中获取数据 link-layer 数据包信息。

以上是否正确?我认为 transport-layer 数据包数据通过 v8/etc 实现可用于 JavaScript 运行时并且较低级别的数据包数据(即以太网层)未暴露给 Node.js 运行时间?

node.js 可以访问 layer 3 及以上。要捕获 layer 2 数据包,您需要调用外部程序,例如 wireshark,或使用集成这些低级工具的模块。

Wireshark 有一个 command line interface,您可以使用 child_process 从节点调用它。