Applic.at i on- Layer Anycas t ing zyx Samrat Bhattacharjee, Mostafa H. Ammar, Ellen W. Zegura Viren. Shah, Zongming Fei Networking and Telecommunications Group, College of Computing, Georgia Institute of Technology, Atlanta, GA 30332 zyx { zyxwv bobby,ammar,ewz,viren,fei}@cc.gatech.edu zyxw Abstract The anycasting communication paradigm is de- signed to support server replication by allowing ap- plications to easily select and communicate with the “best” server, according to some performance or policy criteria, in a group zyxwvutsr of content-equivalent servers. We examine the definition and support of the anycasting paradigm at the application layer, providing a service that maps anycast domain names into one or more IP addresses using anycast resolvers. In addition to be- ing independent from network-layer support, our defi- nition includes the notion of filters, functions that are applied to groups of addresses to affect the selection process. We consider both metric-based filters (e.g., server response time) and policy-based filters. A n ex- panded version of this work can be found as a technical report.’. 1 Introduction The Internet is increasingly being viewed as provid- ing services, and not just connectivity. As this view becomes more prevalent, it becomes important to pro- vide, within the Internet, explicit support for the ef- ficient delivery of networked services. An important consideration in the provision of networked services is the ability to meet the demands of a large number of geographically wide-spread users. It is also impor- tant that the user-perceived quality of service (e.g., response time, throughput, reliability) be maintained at an acceptable and (in the case of commercial ser- vices) competitive level. This is often referred to as the scalability of the service. There have been several approaches proposed for improving the scalability of a networked service. These include server replication [l], caching [2, 31, batching of requests at the server zyxwvut [4] and multicasting of server responses over the network 15, 61. We inves- tigate the anycasting communication paradigm which has been proposed [7] to support server replication. As originally defined zyxwvutsrq [7], anycasting provides: “a stateless best effort delivery of an anycast datagram to at least one host, and prefer- ~~ ftp://ftp.cc.gatech.edu/pub/coc/techreports/ 1996/GIT- CC-96-25.ps.Z ably only one host, which serves the anycast address.” In this definition, an IP anycast address is used to define a group of servers that provide the same service. zy h sender desiring to communicate with only one of the servers sends datagrams with the IP anycast address in the destination address field. The datagram is then routed using anycast-aware routers to at least one of the servers identified by the anycast address. In our work we adopt a more general view of any- casting as a communication paradigm that is analo- gous to the unicast, broadcast, multicast communi- cation paradigms. In particular, we differentiate be- tween the anycasting service definition and the proto- col layer providing the anycasting service ’. The orig- inal anycasting proposal [7] can, therefore, be viewed as providing the anycasting service definition and ex- amining the provision of this service within the IP layer. In this paper we examine the definition and support of the anycasting paradigm at the application layer. Our motivation derives from the fact that network- layer-supported anycasting has the following limita- tions: Some part of the IP address space must be al- located to anycast addresses. For IPv4, several ways to allocate anycast addresses have been sug- gested [7] .These include designating some existing addresses as anycast (e.g., within Class C) or cre- ating a separate class of addresses. IPv6 propos- als [9] do include a specific address space allocated to anycasting. zyxw 0 The use of anycast addresses requires router sup- port. Routers must recognize anycast addresses ‘For example multicasting as a communication paradigm represents a desire to send the same message to a group of re- ceivers. The multicast paradigm can be supported using multi- cast routing at the network layer, or it can be supported above a unicast-only network or transport layer by using multiple uni- casts. This latter approach was how many multicast problems were addressed in early system designs (e.g., the original ISIS distributed system [SI). There is clearly a distinction between multicast as a communication paradigm and how this paradigm is supported. 1388 zyxwvutsrq 11 c.4.1 0-8186-7780-5/97 $10.00 zyx 0 1997 IEEE