I am an Assistant Professor in the Computer Science Department at the University of Southern California. With my colleagues Ramesh Govindan, Minlan Yu, and Wyatt Lloyd, I run a networking and systems research group.
My primary interests are in networks and distributed systems. My research goal is to design novel systems and protocols to dramatically improve Internet reliability and performance. I look to the needs of operators and providers to find challenging problems to attack. I use rigorous network measurements to understand the problems. Based on the characteristics of the problems that I discover with the measurements, I design real, scalable systems to address the problems, aid operators, and improve the Internet. These days, I am particularly interested in the problems that affect some of the dominant players on the Internet, including cloud providers, large content providers and content delivery networks, and mobile providers. The properties of these networks allow for tailored solutions, and I want to understand the properties and design the solutions.
Selected Research Projects
Internet Content Delivery: Increasingly, most Internet traffic comes from a small number of content providers, content delivery networks, and cloud providers. We work on a number of projects to understand and improve these services, including:
|Mapping Google (IMC 2013): We developed techniques to locate all Google servers, as well as the mapping between servers and clients. In serendipitous timing, we started mapping daily just as Google embarked on a major change in their serving strategy, and so our ten month measurement campaign observed a sevenfold increase in the number of Google sites.|
|SPANStore (SOSP 2013): Many cloud providers offer similar services, but different clients may receive better performance from different providers, and the providers may have different prices for a given workload. With collaborators at UC Riverside, we developed a key-value store that presents a unified view of multiple cloud providers, then distributes an application's data in order to minimize the cost necessary to meet desired performance goals.|
|Peering at the Internet's Frontier (PAM 2014): While the Internet provides new opportunities in developing regions, performance lags in these regions. The performance to commonly visited destinations is dominated by the network latency, which in turn depends on the connectivity from ISPs in these regions to the locations that host popular sites and content. With collaborators at various institutions, we took a first look at ISP interconnectivity between various regions in Africa and discovered many Internet paths that should remain local but instead detour through Europe.|
TCP Performance: TCP is the workhorse of the Internet, delivering most services. Perhaps surprisingly, given how much study it has received, it is still possible to modify the protocol for significant gains. We use measurements to understand TCP problems in modern settings and tailor solutions to those settings. We have a number of ongoing projects in this area. Since loss slows TCP performance, we have developed new techniques to deal with congestion and loss in different settings:
|Gentle Aggression (SIGCOMM 2013): In collaboration with Google, we designed new TCP loss recovery mechanisms tailored towards the different stages of Google's split TCP architecture, resulting in a 23% average decrease in Google client latency.|
|DIBS (EuroSys 2014): In collaboration with Microsoft Research, we designed a loss avoidance mechanism for data centers. Since congestion in data centers is generally transient and localized, we propose that switches randomly detour traffic that encounters a hot spot, allowing the congestion to dissipate.|
Mobile Web Performance: As we continue to spend more of our time accessing richer services on the Web from mobile devices, performance from these devices becomes more important and, often, fails to meet expectations.
|Making the Mobile Web Fast (with Google): Before joining USC, I worked at Google on a team dedicated to making the Web fast on mobile devices. You should try out the team's data compression proxy for Chrome for Android and iOS.|
|Path Inflation of Mobile Traffic (PAM 2014): In collaboration with my former team at Google, my students and I classified the causes of circuitous paths between mobile clients and Web content. We now work with the MobiPerf project on ongoing related measurements.|
Internet Routing: Despite rapid innovation in many other areas of networking, BGP, the Internet's interdomain routing protocol, has remained nearly unchanged for decades, even though it is known to contribute to a range of problems. I work to improve Internet routing, including:
|PEERING: Researchers usually lack easy means to conduct realistic experiments, creating a barrier to impactful routing research. To remedy this problem, we administer a BGP testbed that allows researchers to connect to real ISPs around the world and conduct experiments on the Internet. We continue to expand the functionality of the testbed, including peering at one of the biggest Internet exchanges in the world and adding the ability to emulate the AS topology of your choice (HotNets 2014).|
|LIFEGUARD (SIGCOMM 2012): Internet connectivity can be disrupted despite the existence of an underlying valid path, and our measurements show that long-lasting outages contribute significantly to unavailability. We built LIFEGUARD, a system to locate persistent Internet failures, coupled with protocol-compliant BGP techniques to force other networks to reroute around the failure.|
Internet Measurement: Our Internet experience depends on the performance and availability of routes that cross multiple networks, but service providers and operators have little visibility into the other networks on which they rely. We have developed a number of techniques to give unprecedented visibility into these routes. Here are some highlights:
|Don't Trust Traceroute (ACM CoNEXT Student Workshop 2013, Best Paper Award): Traceroute is the most used tool by operators and researchers to measure Internet routes. The common interpretation is that, if two traceroute measurements include different IP addresses, they represent different paths of routers. In fact, we show that, frequently, two traceroutes may show different IP addresses even while measuring the same underlying path, calling into question previous work that used traceroutes to identify path changes and load balancing.|
|Reverse Traceroute (NSDI 2010, Best Paper Award): Most communication on the Internet is two-way, and most paths are asymmetric, but traceroute and other existing tools only provide the path from the user to a destination, not the path back. We addressed this key limitation of traceroute by building a system to measure the path taken by an arbitrary destination to reach the user, without control of the destination.|
|iPlane Nano (NSDI 2009): A system to estimate the path and performance between arbitrary Internet hosts. iPlane issues measurements to understand routing and performance, uses the measurements to build a compact 7MB atlas that encodes routing policies and preferences, then uses the atlas to predict unmeasured paths. To build the atlas, iPlane has also issued millions of traceroutes a day for years, all of which we make available.|
- NSF CAREER Award, 2014: Routing for the Emerging Topologies of Modern Internet Services
- IETF Applied Networking Research Prize, 2014: Reducing Web Latency: the Virtue of Gentle Aggression
- Google Faculty Research Award, 2014: Measuring and Improving Web Performance
- Google Faculty Research Award, 2013: Mapping Today's Internet
- Best Paper, ACM CoNEXT Student Workshop, 2013: Don't Trust Traceroute (Completely)
- William Chan Memorial Dissertation Award, 2012
- Finalist (4 total), Western Association of Graduate Schools Innovation in Technology Award, 2012
- Best Paper, NSDI, 2010: Reverse Traceroute
- Madrona Prize runner-up, Madrona Venture Group, 2009: Reverse Traceroute
- Best Paper, NSDI, 2008: Consensus Routing: The Internet as a Distributed System
In 2012, I completed my Ph.D. in the Department of Computer Science at the University of Washington, advised by Tom Anderson and Arvind Krishnamurthy. For my dissertation, I built systems that can help service providers improve Internet availability and performance and that are deployable on today's Internet. After that, I worked for half a year at Google's Seattle office, as part of a great team tasked with making the mobile web fast. I greatly enjoyed the opportunity and learned a lot. I joined USC in 2012.