Java套接字直接协议

问题描述

| 众所周知,套接字直接协议(SDP)提供对高性能网络连接的访问​​,例如InfiniBand提供的连接 谁能给我一个很好的例子说明我如何使用Java的套接字直接协议(SDP)?     

解决方法

如果您运行的是Solaris或OpenSolaris的最新版本,我认为您都可以尝试一下。 Linux需要使用OpenFabrics(OFED)提供的libsdp库和外部内核模块,似乎强烈希望将这些模块放入Linux主线,但是OFED的家伙似乎在以某些方式来纠缠内核开发人员参与。 在Debian Linux下,有一个关于Infiniband的有用的设置指南,其中提供了有关如何设置和编译OFED内核模块和libsdp库等的详细信息。完成此操作后,您可以按顺序操作该方法的SDP部分。使SDP正常工作并进行测试。 之后,我认为这就像获取当前位于M12的最新JDK7快照并尝试进行操作一样简单。设置配置并在SDP配置中指定的地址之间创建连接,所有连接都通过与网络套接字相同的API来完成,例如,用于``\\''IO的套接字,以及用于NIO的SocketChannel(甚至是JDK7中的AIO :)。据我所知,一旦您遵循了设置指南并配置了将使用SDP的地址,则只要您提供SDP映射范围内的地址,JVM就会使用基于SDP的套接字/套接字通道。因此,您现有的使用套接字的网络代码应该能够透明地使用SDP连接,并且速度极快且延迟很小。 据我所知,Windows用户暂时不走运。 也: Alan Bateman的SDP博客条目(Oracle JDK SDP负责人)