How to Analyze Network Protocols, Learn More >>

Being able to support more than 300 protocols in the latest version, Capsa Network Sniffer make it easy to analyze protocols in network and understand what is happening.

Recommend Network Analysis Software >>

RFC 908
RFC 1151

Draft-ietg-sigtran-reliable-udp-00.txt (1999)

The Reliable UDP protocol is a simple packet based transport protocol, based on RFCs 1151 and 908. A reliable transport protocol is needed to transport telephony signalling across IP networks. This should provide architecture for a variety of signalling protocols needing transport over IP. RUDP is designed to allow characteristics of each connection to be individually configured so that a number of protocols with different transport requirement can be implemented simultaneously not on the same platform. It is layered on the UDP/IP protocols and provides reliable in-order delivery (up to a maximum number of retransmissions) for virtual connections. RUDP has a very flexible design that would make it suitable for a variety of transport uses. One such use would be to transport telecommunication-signalling protocols.

RUDP Header

Each UDP packet sent by RUDP must start with at least a 6-octet header. The first octet contains a series of single bit flags. The next 3 fields are one octet in size. They are followed by a 2-octet checksum.

Sequence number Ack number
RUDP header

Control bits
The 8 control bits are altogether one byte in length and indicate what is present in the packet.

The SYN bit indicates a synchronization segment is present.

The ACK bit indicates the acknowledgment number in the header is valid.

The EACK bit indicates an extended acknowledge segment is present.

The RST bit indicates the packet is a reset segment.

The NUL bit indicates the packet is a null segment.

The CHK bit indicates whether the Checksum field contains the checksum of just the header or the header and the body (data).

The TCS bit indicates the packet is a transfer connection state segment.

The value of this field must be zero.

Header length
It is one byte in length and indicates where user data begins in the packet.

Sequence number
When a connection is first opened, each peer randomly picks an initial sequence number. This sequence number is used in the SYN segments to open the connection. Each transmitter increments the sequence number before sending a data, null, or reset segment. It is one byte in length.

Acknowledgement number
The acknowledgment number field indicates to a transmitter the last in- sequence packet the receiver has received. It is one byte in length.

The checksum is always calculated on the RUDP header to ensure integrity. The checksum here is the same algorithm used in UDP and TCP headers.


The following segments can appear in the packet: SYN, Ack EACK, RST, NUL and TCS segments:

The Syn segment
The SYN is used to establish a connection and synchronize sequence numbers between two hosts. The SYN segment also contains the negotiable parameters of the connection. All configurable parameters that the peer must know about are contained in this segment. This includes the maximum number of segments the local RUDP is willing to accept and option flags that indicate the features of the connection being established.

Ack segment
The Ack segment is used to acknowledge in-sequence segments. It contains both the next send sequence number and the acknowledgement sequence number in the RUDP header.

The Eack segment:
The EACK segment is used to acknowledge segments received out of sequence. It contains the sequence numbers of one or more segments received out of sequence. The EACK is always combined with an ACK in the segment, giving the sequence number of the last segment received in sequence. The header length is variable for the EACK segment. Its minimum value is seven and its maximum value depends on the maximum receive queue length.

RST segment
This is used to close or reset a connection. Upon receipt of an RST segment, the sender must stop sending new packets, but continue to attempt delivery of packets already accepted from the API.

NUL segment
This segment is used to determine whether the other side of a connection is still active. When a NUL segment is received, an RUDP implementation must immediately acknowledge the segment if a valid connection exists and the segment acknowledge number is the next one in sequence.

TCS segment
The TCS is used to transfer the state of connection.

Vulnerabilities for this protocol (from CVE)

CVE ID Protocol Source Port Targetport

TCP/IP Protocols: