Autodiscovery and Autoconfiguration

May 23, 2013

In a patent-pending process called
autodiscovery, CloudBridge units detect each other's
presence automatically. The appliances attach TCP header options to
the first packets in each connection: the SYN packet (sent by the
client to the server to open the connection), and the SYN-ACK
packet (sent by the server to the client to indicate that the
connection has been accepted). By tagging the SYN packets and
listening for tagged SYN and SYN-ACK packets, the appliances can
detect each other's presence in real time, on a
connection-by-connection basis.

The main benefit of autodiscovery is that you
do not have to reconfigure all of your appliances every time you
add a new one to your network. They find each other automatically.
In addition, the same process allows autoconfiguration. The
two appliances use the TCP header options to exchange operating
parameters, including the bandwidth limits (in both the sending and
receiving directions), the basic acceleration mode (hardboost or
softboost), and the acceptable compression modes (disk, memory, or
none). All of the information that each appliance needs about its
partner is exchanged with each connection, allowing per-connection
variations (for example, per-service-class variations in the
allowable compression types).

Figure 1. How Autodiscovery Works

The autodiscovery process works as
follows:

The client opens a TCP connection to the server,
as usual, by sending it a TCP SYN packet.

The first appliance passes the SYN packet through
after attaching a set of appliance-specific TCP header options to
it and adjusting its window size.

The second appliance reads the TCP options,
removes them from the packet, and forwards them to the
server.

The server accepts the connection by responding as
usual with a TCP SYN-ACK packet.

The second appliance remembers that this
connection is a candidate for acceleration and attaches its own
acceleration options to the SYN-ACK header.

The first appliance reads the options added by the
second appliance, strips them from the packet header, and forwards
the packet to the client. The connection is now accelerated. The
two appliances have exchanged the necessary parameters through the
option values, and they store them in memory for the duration of
the connection.

The connection is accelerated, and the
acceleration is transparent to the client, server, routers, and
firewalls.