A Mobile Network Neutrality Monitoring System

This research is supported by the National Science Foundation.

Motivation and Approach

The global network we call the Internet today was started a few decades ago following a very simple model. The entities involved in the beginning had very simple (stated) goals and interaction between them was consequently simple. Technological advances in the recent years have brought exciting new capabilities for Internet users - they can access the Internet from almost anywhere using mobile devices. The entities involved in the functioning of the Internet are however much more complex in current times and their goals are increasingly fragmented and often times hidden.

In this project we elaborate on two such entities: (i) mobile network providers, and (ii) application or service providers. Considering recent signs of tussle and debate between the two entities we argue that given the obviously more complex nature of the Internet of today, feedback from the end-user is useful and might help decision makers, policy makers settle the network neutrality debate. Our efforts are aimed at building an application aimed at several popular mobile platforms that captures feedback about the availability and performance (both measured and judged by the user) of Internet services and applications.

The primary goal of this project is not to take sides in the emerging net neutrality debate, but rather to design a system capable of making the Internet more transparent. Our system runs on the Measurement Lab, an open platform founded by Google Inc., the New America Foundation's Open Technology Institute, and the Planet Lab Consortium.




Download WindRiderD.CAB to your phone.
Select WindRiderD.CAB and install.
Run Program Files/WindRiderD/WindRider.exe


Different implementations of our system for various mobile platforms will soon become available here.

Windows Mobile Implementation - Code

Functional description

WindRider addresses network neutrality violations that occur on the mobile Internet. As such, WindRider is a mobile application that performs active and passive measurements.

Active measurements involve the mobile device and a randomly chosen Measurement Lab Server. The mobile application initiates a series of downstream and upstream transfers with the Measurement Lab Server and records statistics regarding the observed performance. Active measurement results are stored on the considered Measurement Lab Server. Poor performance can be dependent on region, so the user can enter his location if he desires. The user gets feedback about this, we display the actual speed experienced by the transfer. The different transfers are initiated on different ports in order to see if the provider is differentiating traffic based on application, for example web transfers experience faster speeds than applications on other ports.

Passive measurements are performed on the mobile device. The application measures the delays experienced by different web pages and records the explicit user feedback about different applications. The statistics are uploaded to our servers and not on the Measurement Lab infrastructure. The user can opt out if he desires. In this part, we collect statistics regarding the delays experienced by same pages on different providers and locations and we will determine if certain web pages experience higher delays on certain providers or do not load at all - basically try to determine if the provider is discriminating against specific web pages.

We targeted WindRider towards the mobile environment because, to the best of our knowledge, no tools currently exist(including the Measurement Lab ones) that address this environment.

WindRider is installed on a mobile device such as a SmartPhone or Pocket PC. The overall functioning of WindRider can be seen in the figures below. The user opens WindRider and is shown a screen where he enters what he feels comfortable with sharing with the system in terms of location, carrier (we also collect server side statistics about this, based on the IP address), and if he wants to share his browsing history and experience.

By pressing the "Run tests" Soft Key, a series of transfers are initiated between the mobile device and our servers (Figure 2). The user is shown a progress bar that gives him a feeling about how the tests are progressing. When tests are finished, the average speed of the transfer is shown.

Figures 3 and 4 display another feature of WindRider - user feedback. In Figure 3 the user surfs on the Internet. WindRider also contains a browser extension that records the websites visited and the delays between page request and delivery. By pressing the Feedback Soft Key in Figure 1, the user is shown the window in Figure 4 that contains the software applications running on the mobile device and the recent websites visited. The user can offer feedback about his experience with the selected applications. Note that if the user doesn't want to share his browsing experience he can tick the box in Figure 1.

Figure 1. User enters the information he desires
and can choose to run tests or offer feedback about
applications or websites.
Figure 2. Tests are being performed that involve
sending data back and forth between the mobile
and our servers.
Figure 3. Users can normally browse the Internet
or access their usual applications.
Figure 4. WindRider displays the list of
applications and recently accessed web pages.
The user offers feedback regarding them.