Bidirectional Anycast/Unicast Probing (BAUP): Optimizing CDN Anycast

Wei, Lan and Flores, Marcel and Bedi, Harkeerat and Heidemann, John
USC/Information Sciences Institute


Lan Wei, Marcel Flores, Harkeerat Bedi and John Heidemann 2020. Bidirectional Anycast/Unicast Probing (BAUP): Optimizing CDN Anycast. "Proceedings of the " # "ifip-tma" (Berlin, Germany, Jun. 2020). [PDF]


IP anycast is widely used today in Content Delivery Networks (CDNs) and for Domain Name System (DNS) to provide efficient service to clients from multiple physical points-of- presence (PoPs). Anycast depends on BGP routing to map users to PoPs, so anycast efficiency depends on both the CDN operator and the routing policies of other ISPs. Detecting and diagnosing inefficiency is challenging in this distributed environment. We propose \emphBidirectional Anycast/Unicast Probing (BAUP), a new approach that detects anycast routing problems by comparing anycast and unicast latencies. BAUP measures latency to help us identify problems experienced by clients, triggering traceroutes to localize the cause and suggest opportunities for improvement. Evaluating BAUP on a large, commercial CDN, we show that problems happens to 1.59% of observers, and we find multiple opportunities to improve service. Prompted by our work, the CDN changed peering policy and was able to significantly reduce latency, cutting median latency in half (40 ms to 16 ms) for regions with more than 100k users.


  author = {Wei, Lan and Flores, Marcel and Bedi, Harkeerat and Heidemann, John},
  title = {Bidirectional Anycast/Unicast Probing ({BAUP}):
                    Optimizing {CDN} Anycast},
  booktitle = "Proceedings of the " # ifip-tma,
  year = {2020},
  month = jun,
  address = {Berlin, Germany},
  publisher = pub-ifip,
  location = {johnh: pafile},
  keywords = {anycast, unicast, probing, baup},
  url = {},
  pdfurl = {},
  blogurl = {},
  myorganization = {USC/Information Sciences Institute},
  sortdate = {2017-06-10},
  project = {ant, lacanic, paaddos, ddidd},
  jsubject = {network_security},
  xdoi = {xxx},
  copyrightholder = pub-ifip