Next: Modification to the TCP
Up: Implementation details
Previous: Architecture transparency
To describe
the operations of the proposed one-way Web cluster, we refer to Figure 3,
that for the sake of clarity does not show the creation and
closure of a TCP connection.
Figure 3:
Inner operations of the Web switch.
|
The first part of the HTTP request sent
by the client (1) is intercepted by the forwarder module
on the Web switch (2). The forwarder module delivers the request
to the higher layers. The TCP protocol issues a call to the dispatcher
module upon the arrival of the application-layer data. The
dispatcher parses the HTTP request and
chooses a Web server according to some content-aware
dispatching policy (e.g., LARD, CAP, FLEX). The TCP protocol
builds a THOP_CREATE
message and sends it to the chosen Web server (3).
The identifiers of the TCP connection, such as IP addresses
and TCP ports, are packed into a structure and inserted into
the hash table containing (active) transferred connections.
In such a way, the Web switch is able
to forward successive client packets referring to already
established connections.
The Web server may reply with a THOP_NOTIFYDROP,
if it is not able to fulfill the request for whatever reason.
In such a case, the Web switch removes the appropriate entry
from the mapping table and aborts the TCP
connection.
In most cases, the Web server accepts the TCP connection,
hence it builds
the response and starts sending data directly to the client (4).
Client ACKs sent to the Web switch are intercepted by the forwarder
module of the switch (5), which analyzes the IP and TCP headers
to extract all information necessary to perform the lookup in the
mapping table. If an entry is found in the table, the packet
is forwarded to the previously chosen Web server (6). As the server closes the
TCP connection, it notifies this event to the Web switch with a
THOP_NOTIFYCLS message (7). The Web switch removes the appropriate
entry from the mapping table of transferred connections.
The limit of the present implementation is that only one Web switch may be active
at a time in the Web cluster. However, for availability purposes,
it is possible to configure two
machines in the LAN as Web switches and let one behave as a backup in the case
of failures of the first machines.
Next: Modification to the TCP
Up: Implementation details
Previous: Architecture transparency
Mauro Andreolini
2003-03-13