procedure send_server_load { Input: Current load Output: Sends load information to front node get current load information from system send_load_to_front_node(load) }
Each server also sends client request rates to front node periodically however at longer interval (order of minute).
procedure send_request_rate { Input: Client IP and their request rates Output: None (sends this info to front node) read html access log file and aggregate number of requests from each client send_request_rate_to_frontnode(Client IP, request rate) }
Also each server has secondary aliased IP address same as front node's IP address so when packet is received using other IP address, this packet should be re-injected back in protocol stack with changed destination IP address of front node.
procedure change_destination_address { Input: Incoming IP packets for HTTP connection Output: IP packets with changed destination address for each incoming IP packet for HTTP connection rewrite destination address to IP address of front node(and secondary IP) and re-inject it back in TCP/IP stack }
Thus IP packets received by front node are forwarded to server using local private IP address of server and then server rewrites dest address back to cluster IP address and to tcp layer it seems that this packet came with destination address of aliased secondary IP address directly.