A content-aware flow switch intercepts a client content request in an IP
network, and transparently directs the content request to a best-fit
server. The best-fit server is chosen based on the type of content
requested, the quality of service requirements implied by the content
request, the degree of load on available servers, network congestion
information, and the proximity of the client to available servers. The
flow switch detects client-server flows based on the arrival of TCP SYNs
and/or HTTP GETs from the client. The flow switch implicitly deduces the
quality of service requirements of a flow based on the content of the
flow. The flow switch also provides the functionality of multiple
physical web servers on a single web server in a way that is transparent
to the client, through the use of virtual web hosts and flow pipes.