Auto-discovery and auto-configuration
In process called autodiscovery, Citrix SD-WAN WANOP 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.