RDP is a connection-oriented transport protocol designed to efficiently support the bulk transfer of data for such host monitoring and control applications as loading/dumping and remote debugging. It attempts to provide only those services necessary, in order to be efficient in operation and small in size. The key functions of RDP are as follows:
- RDP will provide a full-duplex communications channel between the two ports of each transport connection.
- RDP will attempt to reliably deliver all user messages and will report a failure to the user if it cannot deliver a message. RDP extends the datagram service of IP to include reliable delivery.
- RDP will attempt to detect and discard all damaged and duplicate segments. It will use a checksum and sequence number in each segment header to achieve this goal
- RDP will optionally provide sequenced delivery of segments. Sequenced delivery of segments must be specified when the connection is established.
- RDP will acknowledge segments received out of sequence, as they arrive. This will free up resources on the sending side
In comparison to TCP, RDP supports a much simpler set of functions than TCP. The flow control, buffering, and connection management schemes of RDP are considerably simpler and less complex. The goal is a protocol that can be easily and efficiently implemented and that will serve a range of applications
RDP functions can also be subset to further reduce the size of a particular implementation. For example, a target processor requiring down-loading from another host might implement an RDP module supporting only the passive Open function and a single connection. The module might also choose not to implement out-of-sequence acknowledgements.
Protocol Structure
| 1 | 2 | 3 | 4 | 5 | 6 | 8 | 16 |
| SYN | ACK | EAK | RST | NUL | 0 | Ver No | Header Length |
| Source Port | |||||||
| Destination Port | |||||||
| Data Length | |||||||
| Sequence Number | |||||||
| Acknowledgement Number | |||||||
| Checksum | |||||||
| Variable header area | |||||||
- Control flags - The 8 control bits are divided as follows:
- SYN: The SYN bit indicates a synchronization segment is present.
- ACK: The ACK bit indicates the acknowledgment number in the header is valid.
- EACK: The EACK bit indicates an extended acknowledge segment is present.
- RST: The RST bit indicates the packet is a reset segment.
- NUL: The NUL bit indicates the packet is a null segment.
- 0: The value of this field must be zero.
- Ver no: version number - current version is 2.
- Header length - The length of the RDP header.
- Source Ports C source address to identify the processes originated the communication. The combination of the port identifiers with the source and destination addresses in the network access protocol header serves to fully qualify the connection and constitutes the connection identifier. This permits RDP to distinguish multiple connections between two hosts.
- Destination Ports - destination address to identify the processes targeted in the communication.
- Data Length - The length in octets of the data in this segment. The data length does not include the RDP header.
- Sequence number - The sequence number of this segment.
- Acknowledgement number - If the ACK bit is set in the header, this is the sequence number of the segment that the sender of this segment last received correctly and in sequence. Once a connection is established this should always be sent.
- Checksum - The checksum to ensure integrity
- Variable Header Area - This area is used to transmit parameters for the SYN and EACK segments.
Related Terms: IP, IPv6, TCP, UDP, RUDP
Sponsor Source: RDP is defined by IETF (http://www.ietf.org) in RFC 908 and RFC 1151.
Reference:
http://www.javvin.com/protocol/rfc908.pdf: Reliable Data Protocol (RDP)
http://www.javvin.com/protocol/rfc1151.pdf: Version 2 of the Reliable Data Protocol (RDP)
