GSoC/GCI Archive
Google Summer of Code 2013

Measurement Lab (M-Lab)

Web Page:

Mailing List:

The M-Lab Research Consortium is a collaborative effort dedicated to empowering users, researchers, and regulators with open, verifiable data on network performance. M-Lab works to create a space for scientifically sound network science -- the stats you see are stats that can be peer reviewed, replicated, and iterated via the standard scientific process. M-Lab was founded by Vint Cerf and a large consortium of academic and industry partners. Many organizations contribute to further M-Lab’s mission. The project ideas suggested in our Ideas Page offer Summer of Code students the opportunity to make a difference on a global project, working with eminent network researchers and engineers to make production-quality open measurement a reality. For the curious, more information is available here:


  • Add RTT-based metric to mlab-ns mlab-ns is a nameservice used to select m-lab tools deployed on servers spread across the Earth. The current methods used for server selection is one based on geographical coordinates of servers and clients. This project aims to add a RTT-based server selection mechanism to the in-progress port of mlab-ns from Python to Go. For network related tests, it makes sense to take network routes into account by considering RTT metrics. An example is for inter-country network connections where a location in country A may be geographically closer to a node in country B but the network connections may have higher latency than ones to a node in country A.
  • An alternate client for the NDT The NDT is a network performance and configuration testing tool that provides advanced diagnostic information to the user. The current client that runs in web browsers is a Java Applet. But as browsers are increasingly removing Java support due to security issues, I intend to convert this Java client into a Flash client that will perform 5 diagnostic tests, the Client-to-Server throughput test, the Server-to-Client throughput test, the Middlebox test, the Simple Firewall test and the META test and make the results of these tests available both on-screen and through JavaScript accessor methods.
  • Rewrite M-Lab-ns in Go The objective of this project is to create an API in Go that replicates the API provided by the Python M-Lab-ns implementation with increasing unit-test coverage.