Reliable Datagram Sockets

From HandWiki
Reliable Datagram Sockets
Communication protocol
Developer(s)Oracle Corporation
IntroducedJune 9, 2009; 16 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 9 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.

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

Template:APHD Template:APHD Template:APHD Template:APHD Template:APHD Template:APHD Template:APHD Template:APHD Template:APHD

Template:APHD
Template:APHD
Template:APHD
Template:APHD
Template:APHD
Template:APHD
Template:APHD
Template:APHD
Template:APHD
Template:APHD

See also

References