Monkey see, monkey do: a tool for TCP tracing and replaying

  • Authors:
  • Yu-Chung Cheng;Urs Hölzle;Neal Cardwell;Stefan Savage;Geoffrey M. Voelker

  • Affiliations:
  • University of California, San Diego;Google;Google;University of California, San Diego;University of California, San Diego

  • Venue:
  • ATEC '04 Proceedings of the annual conference on USENIX Annual Technical Conference
  • Year:
  • 2004

Quantified Score

Hi-index 0.01

Visualization

Abstract

The performance of popular Internet Web services is governed by a complex combination of server behavior, network characteristics and client workload-all interacting through the actions of the underlying transport control protocol (TCP). Consequently, even small changes to TCP or to the network infrastructure can have significant impact on end-to-end performance, yet at the same time it is challenging for service administrators to predict what that impact will be. In this paper we describe the implementation of a tool called Monkey that is designed to help address such questions. Monkey collects live TCP trace data near a server, distills key aspects of each connection (e.g., network delay, bottleneck bandwidth, server delays, etc.) and then is able to faithfully replay the client workload in a new setting. Using Monkey, one can easily evaluate the effects of different network implementations or protocol optimizations in a controlled fashion, without the limitations of synthetic workloads or the lack of reproducibility of live user traffic. Using realistic network traces from the Google search site, we show that Monkey is able to replay traces with a high degree of accuracy and can be used to predict the impact of changes to the TCP stack.