Measurement Manager Protocol (MGRP)

The Measurement Manager Protocol (MGRP) is an in-kernel service that schedules and transmits probes on behalf of active measurement tools. Unlike prior measurement services, MGRP transparently piggybacks application packets inside the often significant amounts of empty padding contained in typical probes. Using MGRP thus combines the modularity, flexibility, and accuracy of standalone active measurement tools with the lower overhead of passive measurement techniques. Microbenchmark experiments show that the resulting bandwidth savings makes it possible to measure the network accurately, but faster and more aggressively than without piggybacking, and with few ill effects to piggybacked application or competing traffic. When using MGRP to schedule measurements on behalf of MediaNet, an overlay service that adaptively schedules media streams, we show MediaNet can achieve significantly higher streaming rates under the same network conditions.



Passive Aggressive Measurement with MGRP. 
Pavlos Papageorgiou, Justin McCann, and Michael Hicks. 
In Proceedings of the SIGCOMM Conference,  August 2009. 

Merging Network Measurement with Data Transport (Extended Abstract). 
Pavlos Papageorgiou and Michael Hicks. 
In Proceedings of the IEEE Passive/Active Measurement Workshop  (PAM), March 2005. 
PDF. Poster PDF


mgrp.linux.2.6.25.patch.v0_1a.gz 4.5 KB Patch to Linux kernel 2.6.25 to enable TCP/MGRP/IP (TCP over MGRP)
mgrp-module-libs-tools.v0_1b.tar.bz2 7.6 MB Source for the MGRP kernel module, userland libraries, and MGRP-enabled network measurement tools and applications. Also includes the above kernel patch. Updated with additional sources and README files 2011/06/01.


5e9f771efd54c06a7658e03254f57086 mgrp.linux.2.6.25.patch.v0_1a.gz
34f328feb1c3680ffd336ddf712d2d8e mgrp-module-libs-tools.v0_1b.tar.bz2


45afb6698af4d8da1fc31edadc9d389c0555cc33 mgrp.linux.2.6.25.patch.v0_1a.gz
975f6881d14463f7c053862d5ee87c709e0b86ad mgrp-module-libs-tools.v0_1b.tar.bz2

This material is based upon work supported in part by the National Science Foundation under Grant No. CNS-0346989, CAREER: Programming Languages for Reliable and Secure Low-level Systems. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).