Differentiation Detector helps you identify when your ISP is slowing down certain apps – for example, giving slower speeds to YouTube and faster speeds to Netflix. Below we provide an overview of how the system works.
Differentiation is the practice of giving different Internet service to different applications. For example, an ISP may give worse performance to YouTube (leading to rebuffering and lower quality video), but allow Netflix to stream video at full resolution without rebuffering events. This is generally considered a violation of network neutrality, and was recently made illegal in the US under the new FCC rules passed in February 2015.
Differentiation Detection is an Android app that lets you test whether your ISP is giving you different performance for different apps. Specifically, we focus on traffic shaping --- where ISPs slow download speeds for an application.
ISPs typically implement differentiation by looking into the data transferred to your device, and applying shaping based on what they see. For example, to shape YouTube traffic, the ISP will look for Internet traffic that looks like YouTube video streaming. When there is a match, the ISP will slow down that traffic based on a specific policy (e.g., lower transfer speeds to 1 Mbps).
To trigger differentiation, we need a way to send network traffic that looks like an application that might be shaped. Our approach is to record network traffic that an application generates, then replay that same traffic through Differentiation Detector. We recorded traces from popular applications such as YouTube, Netflix, Amazon Prime Video, Spotify, Skype and NBC Sports. In future releases, we will also allow you to record your own traffic to test.
We then send that recorded traffic (we call this “replaying”) using the Differentiation Detector app, which should cause the traffic to shaped if your ISP has a policy to slow down the replayed application. We confirmed that our tests will cause shaping to occur for several networks and commercially deployed traffic-shaping devices.
Once we trigger differentiation for a given application’s network traffic, we need to compare with network traffic that is not affected so we can confirm and quantify how much slower that traffic is. In other words, we need to send essentially the same traffic but make sure that your ISP does not apply shaping to it. How do we do it?
Recall that shaping is implemented by looking at the contents of your network traffic to see if it belongs to a given application. We can exploit this observation to “turn off” shaping as follows: we simply send the same traffic, but replace the original contents with random strings.
In summary, we replay traffic that we recorded from an app to expose it to potential shaping from your ISP. To determine whether that traffic was slower due to shaping (and not due to weak signal strength or an overloaded network), we send that same traffic with random strings as payloads, which cannot be shaped based on network traffic contents. If there is a difference, our app detects this and shows you the result.
In our tests of 10 major US cellular providers, we identified several that shape traffic to lower download speeds based on what application is being used. We need your help to test more providers, in the US and worldwide, so we can understand how these policies change over time, location, and network. We are building a Web site that will publicize these practices, both to inform regulators and to allow consumers to make informed choices about selecting their mobile providers.
To test your network, install and run our free app for Android. Note that is currently “beta” software, meaning it may have bugs and may not work for all devices. We are continuously improving the app.
We will release a new white paper with more techinical details soon. A manuscript with results from running our tool on most US carriers is currently under peer review.