C# 在基于Windows CLR的平台上是否有任何机制可以使用LDMA或RDMA?

C# 在基于Windows CLR的平台上是否有任何机制可以使用LDMA或RDMA?,c#,.net,networking,rdma,C#,.net,Networking,Rdma,我希望能够在基于Windows CLR的应用程序(.NET)上使用LDMA或RDMA。我有低延迟应用程序正在开发的C++和那些应用程序将接收他们的数据使用LDMA或RDMA。我希望我们的CLR应用程序使用相同的API,但要知道性能可能会受到影响 Windows有Windows Direct,但我还没有看到任何允许.NET应用程序使用它的东西。我还没有看到真正的用于Windows的SDP(套接字直接协议)实现。有人知道实现这一点的方法吗?如果可以,混合托管代码和非托管代码使RDMA实现成为一个库(

我希望能够在基于Windows CLR的应用程序(.NET)上使用LDMA或RDMA。我有低延迟应用程序正在开发的C++和那些应用程序将接收他们的数据使用LDMA或RDMA。我希望我们的CLR应用程序使用相同的API,但要知道性能可能会受到影响


Windows有Windows Direct,但我还没有看到任何允许.NET应用程序使用它的东西。我还没有看到真正的用于Windows的SDP(套接字直接协议)实现。有人知道实现这一点的方法吗?

如果可以,混合托管代码和非托管代码使RDMA实现成为一个库(最好是用c++实现),它自己进行内存管理

通过p/Invoke或C++/CLI包装该库。如果API是健谈的,并且有状态的C++对象,则处理C++的方法将更加容易和更好。 然后,您可以在较低的级别上获得完整的RDMA性能,并且当您将一些数据从非托管层复制到托管层时,只会产生与.Net相关的成本(例如,使其更易于操作)

如果需要,甚至可以通过为非托管内存中的底层数据提供足够丰富的api来避免这种情况。这将产生一些轻微的托管/非托管转换成本,因此对于一个非常健谈的界面来说是不合适的,但避免这种情况的真正原因是实现起来相当麻烦,因此与将您想要的数据拉到托管世界相比,它肯定不是我的首选

我不会想到一个纯粹的托管解决方案能够在没有危险的黑客攻击的情况下与RDMA一起工作(例如利用LOH的非压缩性)