Subject: [core] Desired Transport properties

From: Douglas Otis <[email-masked]>
Date: Tue, 30 Mar 2010 17:16:59 -0700

The suggestion made at the WG meeting in Anaheim was to use a UDP 
overlay having SCTP constructs.  This approach would allow efficient 
transfers of various types, where not all features of SCTP would need to 
be supported.  Such an SCTP-lite over UDP might omit implicit 
associations and multi-homing and still offer many important advantages:

1) Good error detection with the CRC32c algorithm supported by 1 and 
10Gb/sec NICs, and modern math coprocessors.  This algorithm is suitable 
for use with jumbo frames and supports extremely high volume centralized 
services.  When supplementary error detection is appended to objects 
contained within poorly checked transports, partial object reception 
prior to the checking of enclosed objects imposes complex and expensive 
recovery processes, where entire objects will then likely need to be 
retransmitted by the application.

In the past, some providers ignored possible errors just to avoid 
complex recoveries.  Determining the rarity of these cases proved 
difficult, when reporting and logging were also squelched to avoid 
equally vexing support issues.  For a transport designed to control 
power sub-systems, error detection and recovery is extremely important.  
Only when good error detection is directly supported by the transport, 
will data integrity and protocol simplicity be assured.

Error detection schemes used by either UDP or TCP fail in as much as 2% 
of bus specific bit errors that might be caused by weak drivers or bus 
timing skew. With many systems dropping bus parity to reduce cost, bus 
specific bit errors remain common, and are likely to have a similar 
modulo to that of UDP and TCP checksums.

2) Data Framing (headers included with every packet) greatly assists 
data handling.  Reassembly and placement is facilitated by having 
headers within the packet that identify the data elements.  Offsets can 
be included to facilitate direct placement, even when packets are 
received out-of-order.  Low bandwidth mesh network configurations should 
not be expected to retain packet ordering.

Past efforts aimed at efficiently implementing RDMA over TCP failed 
largely due to the complexities imposed by a lack of data framing, good 
error detection, with the subsequent buffering and complex handling this 
imposed.  Although direct placement is normally used in many low level 
devices, byte stream transports add significant complexities that 
prohibit economical use of this resource friendly mode of operation.

3) Minimized retry is achieved by providing explicit acknowledgment of 
data objects, in conjunction with selective reliability modes.  For 
example, when data is multi-cast in an unreliable fashion, specific 
data-element identifiers then permit data recovery over a different path 
when desired.

4) Short messages can be bundled to improve throughput and to reduce 
packet rates.

5) APIs have been developed which can be adopted to an SCTP-lite 
transport.  This API offers a means to map existing TCP or UDP sockets 
APIs while also supporting access to new features.  Existing TCP 
applications can migrate to this API while having few (if any) changes.  
This would ensure that having only UDP support will not impact use of 
higher level protocols, such as HTTP.

See http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-22

6) Improved data throughput.  The congestion algorithm used by SCTP, in 
conjunction with its explicit acknowledgment, offers a more efficient 
use of both low and high bandwidth networks.

7) Anti-spoofing, and DoS resistance has been achieved by the initial 
exchange of "cookie" tokens.  These tokens offer spoofing resistance, 
and safely establish connections (associations) in fewer exchanges than 
what is typically otherwise achieved.

8) Existing procedures and structures to establish secure associations.

Evolution of extensions might include:

9) Implicit Associations and non-blocking socket operations.  These 
modes of operation allow servers greater scalability by avoiding 
overhead related to establishing a connection.

10) Multi-homing by the transport takes reliability to the next level by 
offering rapid fail-over that is router independent.

-Doug