Das Sockets Direct Protocol (SDP) ist eine Vereinbarung (Protokoll) über den Austausch von Daten zwischen Computern. Hierbei handelt es sich um ein Bytestrom-Transportprotokoll, welches das Transmission Control Protocol (TCP) nachahmt.
SDP stellt der Anwendung (dem Anwender) eine einheitliche Socketschnittstelle zur Verfügung. Aufgrund dieser Abbildung der Standard-Socket-Operationen auf Operationen der InfiniBand-Architektur können socketbasierte Anwendungen die Vorteile der InfiniBand-Architektur (IBA) ohne weitere Anpassungen nutzen. Ein SDP Upper Layer Protocol (ULP) kann nun über eine Bytestromschnittstelle Daten nachrichtenorientiert mit einer zuverlässigen InfiniBand-Verbindung (InfiniBand’s Reliable Connection) übertragen.
Zur eigentlichen Übertragung unterscheidet man die zwei folgenden Methoden:
- Der Buffer-copy-Mechanismus nutzt zur Übertragung der Daten private Puffer. Hierzu ist es notwendig, dass die Daten zuerst aus dem Arbeitsspeicher in einen privaten Puffer kopiert werden und dann zu einem anderen Knoten übertragen werden können.
- Beim Zero-copy-Mechanismus hingegen werden die Daten zwischen einem DMA und einem RDMA-Puffer mit RDMA Read/Write übertragen. Hierbei ist es also möglich auf Speicherbereiche eines entfernten Knotens direkt zuzugreifen, ohne zuvor eine Kopie des Speicherbereichs erstellen zu müssen.
SDP wurde von der InfiniBand Trade Association (IBTA) spezifiziert.