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.

SYN ACK EAK RST NUL CHK TCS 0 Header Length
Sequence
number
Ack number
Checksum
RUDP header

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

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.

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

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

0
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.

Checksum
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.

Segments

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.

Popularity: -0% [?]