包含在查找更多文档专项支持资源 | 以 PDF 格式下载本书 (3447 KB)
sdp(7D)Name | Synopsis | Description | ADDRESS FORMATS | SOCKET OPTIONS | Errors | Files | Attributes | See Also Name
Synopsis#include <socket.h> #include <netinet/in.h> s = socket(AF_INET, SOCK_STREAM, PROTO_SDP); s = socket(AF_INET6, SOCK_STREAM, PROTO_SDP); DescriptionThe Sockets Direct Protocol (SDP) is a transport protocol layered over the Infiniband Transport Framework (IBTF). SDP is a standard implementation based on Annex 4 of the Infiniband Architecture Specification Vol 1 and provides reliable byte-stream, flow controlled two-way data transmission that closely mimics the Transmission Control Protocol (TCP). SDP supports a sockets-based SOCK_STREAM interface to application programs. It also supports graceful close (including half-closed sockets), IP addressing (IPv4 or IPv6), the connecting/accepting connect model, out-of-band (OOB) data and common socket options. The SDP protocol also supports kernel bypass data transfers and data transfers from send-upper-layer-protocol (ULP) buffers to receive ULP buffers. A SDP message includes a BSDH header followed by data. (A BSDH header advertises the amount of available buffers on the local side). SDP networking functionality is broken into the sdp driver and a function call-based sockfs implementation. A new protocol family of PROTO_SDP is introduced to use the SDP transport provided by the driver. Sockets utilizing SDP are either active or passive. Active sockets initiate connections to passive sockets. Both active and passive sockets must have their local IP or IPv6 address and SDP port number bound with the bind(3SOCKET) system call after the socket is created. By default, SDP sockets are active. A passive socket is created by calling the listen(3SOCKET) system call after binding the socket with bind(). This process establishes a queueing parameter for the passive socket. Connections to the passive socket can be received with the accept(3SOCKET) system call. Active sockets use the connect(3SOCKET) call after binding to initiate connections. In most cases, SDP sends data when it is presented. When outstanding data is not yet acknowledged, SDP gathers small amounts of output to be sent in a single packet once an acknowledgement is received. For a small number of clients this packetization may cause significant delays. To circumvent this problem, SDP provided by the driver supplies SDP_NODELAY, a socket-level boolean option. Note that this behavior is similar to the TCP_NODELAY option. SDP provides an urgent data mechanism that can be invoked using the out-of-band provisions of send(3SOCKET). The out-of-band delivery
behavior is identical to TCP. The caller may mark one byte as "urgent" with the MSG_OOB flag to send(3SOCKET). This sets an "urgent pointer" pointing to
the byte in the SDP stream. The receiver of the stream is notified of the urgent data by a ADDRESS FORMATSSDP uses IP/IPv6 addresses to refer to local and remote devices and opens a reliable connected IB connection between two end points. The sdp driver supports a point-to-point connection, however broadcasting and multicasting are not supported. SOCKET OPTIONSSDP supports setsockopt and getsockopt to set and read socket options. Very few socket options affect SDP protocol operations. Other common socket options are processed but do not affect SDP protocol operation. All socket options are checked for validity. A getsockopt returns the values set or toggled by setsockopt. Socket options that affect protocol operations are SO_LINGER, SO_DEBUG, SO_REUSEADDR and SO_OOBINLINE. Errors
Files
AttributesSee attributes(5) for descriptions of the following attribute:
See Alsoread(2), getsockopt(3XNET), socket.h(3HEAD), accept(3SOCKET), bind(3SOCKET), connect(3SOCKET), send(3SOCKET), attributes(5), standards(5) Infiniband Architecture Specification Vol 1– Annex 4 — November, 2002 Name | Synopsis | Description | ADDRESS FORMATS | SOCKET OPTIONS | Errors | Files | Attributes | See Also |
||||||