Reliable Datagram Sockets

From HandWiki

{{Multiple issues|

Reliable Datagram Sockets
Communication protocol
Developer(s)Oracle Corporation
IntroducedJune 9, 2009; 15 years ago (2009-06-09)
OSI layerTransport layer
Port(s)16385 (RDS-over-TCP)

Reliable Datagram Sockets (RDS) is a high-performance, low-latency, reliable, connectionless protocol for delivering datagrams. It is developed by Oracle Corporation.

It was included in the Linux kernel 2.6.30 which was released on 9th of June, 2009. The code was contributed by the OpenFabrics Alliance (OFA).[1]

On October 19, 2010, VSR announced CVE-2010-3904, a vulnerability within the Linux 2.6.30 kernel which could result in a local privilege escalation via the kernel's implementation of RDS.[2] This was subsequently fixed in Linux 2.6.36.[3]

On May 8, 2019, CVE-2019-11815 was published, regarding a race condition in the Linux RDS implementation that could lead to a use-after-free bug and possible arbitrary code execution.[4] The bug has been fixed in Linux 5.0.8.

Header

RDS Header
Size (bits) Name Description
be64 h_sequence Sequence number
be64 h_ack Sequence number of last received message
be32 h_len Length of the message payload
be16 h_sport Port on source node
be16 h_dport Port on destination node
8 h_flags Described below
8 h_credit Credits given (used for credit-based flow control)
32 h_padding Padding for 64-bit struct alignment
16 h_csum 1's complement header checksum
128 h_exthdr Optional extension header space

See also

References

External links