Check out the new USENIX Web site. next up previous
Next: Anypoint Services Up: Motivation and Overview Previous: Motivation and Overview

Anypoint and the Transport

Anypoint extends IP transports to decentralized (ensemble) endpoints in a way that supports the key transport properties of rate-controlled, ordered, reliable delivery. A core principle of Anypoint is transport equivalence. To end nodes, an Anypoint connection is equivalent to a point-to-point connection. The burden of maintaining these properties--reorder buffering and reassembly, duplicate suppression, acknowledgment, retransmission--are handled in the usual end-to-end fashion by the end nodes. This minimizes buffering and processing overhead in the switch.

As previously stated, Anypoint assumes use of transports with framing [14]. Our purpose is not to propose a new transport, but rather to construct an indirection architecture that generalizes to a class of service protocols and framed transports. A frame is a variable-sized, self-contained sequence of bytes sent as a unit over a transport connection; frames are semantically meaningful and independently processed at the application layer. The service protocol uses the transport API to map its requests and responses into transport frames. Depending on the transport, a frame could span multiple transport segments (packets), or a single segment might contain multiple frames. Frame boundaries are recognizable from the transport headers, so a receiver may process frames independently as segments arrive.


 
Table 1: Registered upcall interface for an Anypoint ALRM.
Upcalls from Anypoint switch transport functions.
redirect(frame,id,*len,src,*rtx) Redirect a frame on connection id. If it is inbound to the ensemble, select an ensemble member to receive it.
retire(*rtx) Retire rtx state associated with an inactive frame.
{add,rm}_conn(id) Add a new connection with ID, or delete a connection with ID.
alrm_{init,uninit}(void) Start up or shutdown this ALRM.
 

Framing and partial ordering enable network-level processing of transport flows, which is useful for network adapters with protocol offload or direct-access features (e.g., RDMA), as well as for virtualization switches and routers. Frames are the granularity of transformation, redirection, and merging in Anypoint. While a service protocol may send frames over TCP, TCP imposes a total order even when the service does not require it; this precludes redirecting frames concurrently to different nodes, which could violate the delivery order. To permit effective fine-grained (e.g., content-aware) redirection, the service protocol and transport must not constrain frame order unnecessarily. However, Anypoint allows the service and transport to specify partial frame orderings if necessary for correctness. SCTP is one example of a transport that supports a partial order on frames.

Because the switch performs transport-layer processing, we envision the Anypoint switches residing in a data center or enterprise, with ensemble members colocated within a single security and routing domain. For example, transport switches must access packet state beyond the IP headers, which may be encrypted (e.g., with IPsec) across the external network. While packets from a given Anypoint connection must pass through a single intermediary, they use the service's VIP address to maintain this invariant even in the presence of asymmetric routing.


next up previous
Next: Anypoint Services Up: Motivation and Overview Previous: Motivation and Overview
Kenneth G. Yocum
2003-01-20