C#套接字侦听器,用于具有非常规EtherType的非IP低层流量

时间:2018-11-02 15:09:18

标签: c# .net

我正在使用一种协议,在该协议中,我必须监听这样的帧:

GOOSE Frames

这些帧不是IP帧,并且源地址和目标地址是OUI特定的MAC地址。我可以确定目标MAC地址将始终是多播MAC地址(第一个八位位组的第一位是1)。

这些框架是“已发布”或“广播”的,我想为其编写套接字侦听器,而无需使用诸如SharpPcap或Pcap.Net之类的第三方库。

我基本上想做的就是用奇怪的EtherType 0x88b8接收这些帧。

我在其他地方听说过,如果我不想使用第三方库,则必须使用修改后的NDIS驱动程序。我愿意这样做。

但是我想知道它是否需要这么复杂。如果这些帧的目标MAC是多播地址,我想知道是否缺少我可以利用的东西。我想知道这些帧是否可以在D类组播IP地址周围浮动,而我只需要听224.0.0.0

我看到了很多有关发送原始以太网数据包的问题,​​但没有收到原始数据包的问题,​​这显然要容易得多。所以我的最终问题是,是否有一种方法可以仅使用.NET Framework或Core?

我一直在尝试这样的事情,

Socket client = new Socket(AddressFamily.Unspecified, SocketType.Unknown, ProtocolType.Unspecified);

并尝试从此处缩小范围,但这仍然行不通。

0 个答案:

没有答案