Anycast Latency: How Many Sites Are Enough?

Schmidt, Ricardo de O. and Heidemann, John and Kuipers, Jan Harm
USC/Information Sciences Institute


Ricardo de O. Schmidt, John Heidemann and Jan Harm Kuipers 2016. Anycast Latency: How Many Sites Are Enough? Technical Report ISI-TR-2016-708. USC/Information Sciences Institute. [PDF]


Anycast is widely used today to provide important services including naming and content, with DNS and Content Delivery Networks (CDNs). An anycast service uses multiple sites to provide high availability, capacity and redundancy, with BGP routing associating users to nearby anycast sites. Routing defines the catchment of the users that each site serves. Although prior work has studied how users associate with anycast services informally, in this paper we examine the key question how many anycast sites are needed to provide good latency, and the worst case latencies that specific deployments see. To answer this question, we must first define the optimal performance that is possible, then explore how routing, specific anycast policies, and site location affect performance. We develop a new method capable of determining optimal performance and use it to study four real-world anycast services operated by different organizations: C-, F-, K-, and L-Root, each part of the Root DNS service. We measure their performance from more than \numbervps worldwide vantage points (VPs) in RIPE Atlas. (Given the VPs uneven geographic distribution, we evaluate and control for potential bias.) Key results of our study are to show that a few sites can provide performance nearly as good as many, and that geographic location and good connectivity have a far stronger effect on latency than having many nodes. We show how often users see the closest anycast site, and how strongly routing policy affects site selection.


  author = {Schmidt, Ricardo de O. and Heidemann, John and Kuipers, Jan Harm},
  title = {Anycast Latency: How Many Sites Are Enough?},
  institution = {USC/Information Sciences Institute},
  year = {2016},
  sortdate = {2016-05-18},
  number = {ISI-TR-2016-708},
  project = {ant, lacrend, lander, retrofuture, researchroot, pinest, nipet},
  month = may,
  jlocation = {johnh: pafile},
  keywords = {anycast, dns, design},
  url = {},
  pdfurl = {},
  myorganization = {USC/Information Sciences Institute},
  copyrightholder = {authors}