Das Sockets Direct Protocol (SDP) wurde von der InfiniBand Trade Association (IBTA) spezifiziert. Hierbei handelt es sich um ein Bytestromtransportprotokoll welches das Transmission Control Protocol (TCP) nachahmt. Das Protokoll stellt der Anwendung (dem Anwender) eine einheitliche Socketschnittstelle zur Verfügung. Somit können socketbasierte Anwendungen die Vorteile der InfiniBand-Architektur (IBA) nutzen ohne das man diese zuvor anpassen muss. Beim SDP werden Standard-Socketoperationen auf Operationen der InfiniBand-Archtitektur (IBA) abgebildet. Es handelt sich hierbei also um ein Transportprotocol welches auf einem bestehenden Transportprotokoll aufbaut.
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:
- Buffer-copy (Bcopy)
- Zero-copy (Zcopy)
Der Buffer-copy Mechanismus nutzt zur Übertragung der Daten private Puffer. Hierzu ist es notwendig, dass die Daten zuerst aus dem Speicher 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.