Pong - A Tool for Locating Congestion Points and Tracing Congestion Status in the Internet

This research is supported by Cisco Collaborative Research.

Motivation and Approach

  • Motivation.
  • The ability to accurately detect congestion events in the Internet and reveal their spatial (where they happen) and temporal (how long they last) properties would significantly improve our understanding of how the Internet operates.

  • Locating congestion points.
  • Pong is a tool that detects congestion on a unidirectional path with high resolution and high accuracy. It locates congestion on granularity of a single link. It performs well in detecting multiple congested links on the forward path and in decoupling congested links on the backward path.

  • Monitoring congestion points.
  • Once a congested link is detected, Pong traces congestion status on that link. The light-weight nature of Pong makes Pong also a competent network monitoring tool rather than only an on-demand probing tool. The web interface and command line interface (CLI) provided by Pong make measurement and monitoring easy jobs.



  • Monitoring Persistently Congested Internet Links
    L. Deng and A. Kuzmanovic
    In Proceedings of IEEE ICNP 2008, Orlando, FL, October 2008.
    [ .pdf | .pdf.gz | .ppt | .ppt.gz]
    (Note: Animation effect in .ppt requires Microsoft PowerPoint XP or later version.)
  • What Lies Beneath: Understanding Internet Congestion
    L. Deng, A. Kuzmanovic, and B. Davie
    Technical Report NWU-EECS-07-12, Department of EECS, Northwestern University, October 2007.
    [ .pdf | .pdf.gz ]
  • Pong: Diagnosing Spatio-Temporal Internet Congestion Properties (short version)
    L. Deng and A. Kuzmanovic
    Poster paper in Proceedings of ACM SIGMETRICS 2007, San Diego, CA, June 2007.
    [.pdf | .pdf.gz] | .ppt | .ppt.gz]

Measurement Data

Measurement data of a large-scale Internet experiment on PlanetLab are available here. Note: The entire measurement data set (a 1.1GB compressed package) can be download here.

This experiment starts on April 18, 2007 and lasts for 10 days. It measures Internet paths from 334 PlanetLab hosts (167 senders and 167 receivers). We measure each path for 100 minutes. The data presented here include 20,923 measurement records, which cover 17,587 different paths. Each measurement record is corresponding to a continuous measurement period.

In the "Measurement Data List", you may follow the highlights below to take a quick view on measurement records.

  • Click on the "Path" column to view graphs of spatial congestion distribution across links of a path over different time-scales.
  • Click on the "WCC" column to view graphs of per-link WCC trace. WCC stands for weighted congestion count.
  • Click on the "WCF" column to view graphs of per-link WCF trace. WCF stands for weighted congestion frequency and is also called congestion intensity.
  • Click on the "Index" column to view raw data files of each measurement record.

Download Pong

Linux source code of Pong is available here. It has been tested on Fedora Core 4 and 5 Linux.

After building the source, you will get the following binary executables.

  • pong_snd
  • The sender side of Pong.
  • pong_rcv
  • The receiver side of Pong. The sender side and receiver side communicate with each other through a TCP control channel and measure congestion by sending UDP probes.
  • pong
  • An interactive command tool that allows users to remotely control or monitor pong_snd and pong_rcv.
  • pong_daemon
  • A daemon process that supervises pong_snd and pong_rcv. It facilitates automated measurements.
  • pongc
  • A tool that allows users to remotely control or query pong_daemon.

The following figure illustrates all these components (except pongc).

Components of Pong