Single IP Address Cluster for Internet Servers Hiroya Matsuba 1 and Yutaka Ishikawa 1,2 1 The University of Tokyo 2 The University of Tokyo Information Technology Center Graduate School of Information Science and Technology Abstract Operating a cluster on a single IP address is required when the cluster is used to provide certain Internet services. This paper proposes SAPS, a new method to assign a single IP address to a cluster. The TCP/IP protocol is handled at a single node called the I/O server. The other nodes, called application nodes, provide the socket interface to applica- tions. The I/O server and applications nodes are connected using a cluster-dedicated network, such as the Myrinet net- work. The key benefit of the proposed method is that the TCP/IP protocol does not care about congestion and packet loss in the cluster, which often happens if multiple nodes send packets to the bottleneck router. Instead, the cluster- dedicated network manages the packet congestion more ef- ficiently than the TCP/IP protocol. The result of the band- width benchmark shows SAPS fully utilizes the bandwidth of the Gigabit Ethernet. The result of the SPEC Web bench- mark shows SAPS handles 7.9% more requests than the ex- isting method. 1. Introduction In recent years, Web or FTP services are often provided using clusters if the number of users is so large that a single computer cannot handle all the requests. Such systems pro- vide a single IP address from the user’s point of view, while the server consists of physically separated computers. The most traditional way to realize the single IP address is the Round-Robin DNS method[6, 8, 3]. In this method, a Round-Robin DNS server maps a single host name to mul- tiple IP addresses whose hosts handle services. When the DNS server receives a query from a client, it selects one of the IP addresses and returns the address to the client. By selecting the IP address in the round-robin manner, requests 1-4244-0910-1/07/$20.00 c 2007 IEEE. are distributed to the servers that provide the actual services. This method leads to load imbalances because clients may cache the IP address, and they then send requests to a spe- cific server. Another way to provide a single IP address is called the Virtual Server method[20, 13]. This system consists of a load balancer and backend servers. The load balancer re- ceives all the data from clients and forwards it to one of the backend servers. By distributing the requests to multiple backend servers, the load of the servers are balanced. Un- like the Round-Robin DNS method, Virtual Server balances the requests, but in turn, it has an issue with the network performance. Usually, all the cluster nodes share a single Internet connection and the router is the bandwidth bottle- neck. When multiple backend servers send data back to the clients, packets congest the router. The traffic pattern from the Internet servers is so irregular that the congestion avoid- ance mechanism of the TCP protocol cannot avoid losing packets[5]. The resulting issue is that a TCP connection stays in the slow-start mode, or burst traffic causes heavy packet loss and re-transmission of many packets[18]. Both cases lead to limited network bandwidth. This performance issue caused by the nature of the TCP protocol is a major drawback of Virtual Server. This paper proposes a new method that assigns a single IP address to a cluster, while overcoming the network per- formance issue found in a cluster using the TCP/IP proto- col. The proposed method is called SAPS (Single Address Protocol Stack). A cluster with SAPS consists of two kinds of nodes: an I/O server and the applications nodes. The I/O server has the TCP/IP protocol stack so that it handles all TCP packets. An applications node provides the nor- mal TCP socket interfaces which use the TCP/IP protocol stack at the I/O server. The I/O server and the applications nodes communicate with each other using a reliable high- performance communication protocol called PM[16] in the Myrinet network. SAPS overcomes the network performance issue with the TCP protocol by not using the TCP protocol inside a