Protocolo de socket directo
El Protocolo de Socket Directo (SDP, del inglés Sockets Direct Protocol) es un protocolo de red originalmente definido por el Software Working Group (SWG) de la InfiniBand Trade Association. Originalmente diseñado para InfiniBand, el SDP luego ha sido redefinido como un protocolo agnóstico de transporte para la estructura de red en acceso a memoria directo remoto (RDMA). El SDP define un protocolo estándar sobre una estructura RDMA para soportar redes de stream socket (SOCK_STREAM). El SDP utiliza varias características de redes RDMA para transferencias de datos Zero Copy de alto rendimiento. El SDP es una especificación de protocolo a "nivel de cable" puro, y no habla sobre ninguna API para socket ni implementación específicas.
El propósito de Protocolo de Socket Directo es proveer una alternativa acelerada de RDMA al protocolo TCP sobre IP. La meta es hacer esto de forma que sea transparente a las aplicaciones.
Hoy en día, el Protocolo de Socket Directo para el sistema operativo Linux es parte de la OpenFabrics Enterprise Distribution (OFED), una colección de protocolos de red RDMA para el sistema operativo Linux. La OEFD es administrada por la OpenFabrics Alliance. Muchas distribuciones estándar de Linux incluyen la OEFD actual.
Varios otros sistemas operativos variantes de UNIX planean incluir soporte para el Protocolo de Socket Directo. El sistema operativo Microsoft Windows ofrece un protocolo similar llamado Winsock Directo (Winsock Direct)
El Protocolo de Socket Directo sólo trata con stream sockets, y si es instalado en un sistema, evita la pila TCP residente del sistema operativo para conexiones de tipo stream entre cualquier punto final en la estructura RDMA. Todos los otros tipos de socket (tales como datagrama, crudo, paquete, etc.) son soportados por la pila IP de Linux y operan sobre interfases estándar de IP (por ejemplo IPoIB en estructuras InfiniBand). La pila IP no depende de la pila SDP; sin embargo, la pila SDP depende de los controladores IP para asignaciones locales de IP y para resolución de direcciones IP para identificaciones de puntos finales.