My broad areas of interest are Networking and Distributed Systems. I am
part of
Srini's
Distributed Systems
Network Protocols and
Applications (
DNA)
group.
Even more generally, I am interested in anything which involves building
cool and novel systems! Some areas I have
worked on include: structured peer-to-peer overlays, application-layer
multicast, network security, scalable file-distribution, etc.
Thesis Research
My thesis research focuses on network and system support for
distributed multi-party interactive applications with particular
emphasis on online multi-player games. The main component of my study
aims at providing scalable, distributed and low-latency architectures
for highly interactive games such as First Person Shooters (FPS)
like Quake.
To this end, I have designed and implemented a distributed middleware
and modified the (once) popular
QuakeII FPS game engine to use our substrate for distributing game state
across multiple servers or peers. For more technical details and
downloads, please click here.
In a separate but related direction, I am looking at network protocol
requirements for supporting spectators in online multi-player games.
Online game-worlds are so immersive and gamers have become so skilled in
playing that a large number of other players want to watch online
gaming tournaments. A few First Person Perspective games (e.g., shooting
games like Quake, Half-life, car racing games, etc.) have come up with
limited spectator-support systems. The basic question is how to deliver
the gaming stream to a large, dynamic, and heterogeneous population of
spectators in a reliable and cost-effective manner. On the face of it,
this problem is akin to that of distributing other streaming content
(e.g., audio/video) to a large client population. However, spectating
differs from audio/video (A/V) streaming in a number of ways that
presents unique challenges as well as opportunities for optimization.
These challenges are discussed as well as preliminary designs for a
scalable spectator-support system are proposed in
this paper.
Mercury: Range Queries in P2P Systems
A lot of recent work on building scalable peer-to-peer (P2P) systems has
concentrated on Distributed Hash Tables or DHTs. DHTs offer a
number of scalability advantages (load balancing, logarithmic hop
routing with bounded local state) - but, the hash table or "exact match"
interface offered by DHTs is not flexible enough for many applications.
For example, it is unclear how DHTs could be modified to regain the
highly desirable flexibility offered by keyword-based lookups needed in
file-sharing applications.
The Mercury protocol (details in this paper) aims to push the
envelope further by supporting multi-attribute range queries
along with contiguous (non-hashed) data placement. Mercury also
incorporates support for dynamic leave-join based load balancing which
is needed in any non-hashed data placement design. The protocol provides
logarithmic hop routing guarantees as well.
You can download a C++ implementation of Mercury here. The current version is 0.9.2,
released on March 20, 2006. Compiles with gcc3.2, gcc3.4. Does not compile
with gcc4.0 yet. It has been tested to run on RedHat Linux 9 and MacOS X.
Documentation on running mercury and writing applications will soon be added.
Other Research Projects
Deconstructing BitTorrent
In recent years, BitTorrent has emerged as a very popular and scalable
peer-to-peer file distribution mechanism. It has been very successful at
distributing large files quickly and efficiently without overwhelming
the capacity of the origin server, even under extreme flash crowd
conditions.
In
this paper, we present a
simulation-based study of BitTorrent. The goal is to deconstruct the
BitTorrent system and evaluate the impact of its core mechanisms,
individually and in combination, on overall system performance under a
variety of workloads. Our evaluation focuses on several important
metrics including peer link utilization, file download time, fairness
amongst peers in terms of volume of content served, susceptibility to
free-riding, etc. Our results show that BitTorrent performs
near-optimally in terms of uplink utilization, download time, and
fairness, except under certain extreme conditions. We present and
evaluate simple techniques designed to alleviate the sub-optimalities
encountered under such workloads. These findings indicate that there is
little reason to augment BitTorrent-like systems with complex coding
techniques since the potential benefit expected is small.
Work done with Venkat Padmanabhan
and
Cormac Herley at
Microsoft Research, Redmond.
Using Fingerprints for DDoS detection
In this project, we build mechanisms to help an ISP network detect if
its network as a whole is under attack or if a significant portion of
its network is carrying traffic aimed at bringing down an external
destination. In our scheme, routers in the ISP network construct
profiles or
fingerprints of traffic using stream-sampling
algorithms. These fingerprints are used to identify anomalies and
trigger suspicions about various flows. The suspicions are re-inforced
by other routers to respond uniformly using RIO-based preferential
packet dropping. Preliminary evaluation based on Abilene traces is
described in
this paper (pdf).
Multimodal Protocols for Adapting to Highly Variable
Operating Conditions
The goal of the project was to answer the following question: is it possible
to redesign the traditional
rigid protocols to take on very
different operating modes when faced with different environments? We
presented a case for such multi-modal protocols in our paper.
Specifically, we discuss multi-modal reliability and routing. We show
the feasibility of designing multi-modal protocols by describing how
these protocols can make operating mode decisions and switch modes
without additional overhead. Joint work with
Aditya Akella and
Suman
Nath. Related techreport:
pdf.
RTReX: Replay Debugger for Java RMI programs
Traditional methods for debugging distributed programs are ineffective
because the asynchrony and unpredictability of the interconnecting
network results in system state which is hard to reproduce. In this
project, we designed and implemented a
trace and replay based
distributed debugger for the Java RMI system. In the replay phase,
only one component is re-executed while the rest of the system is
simulated using the traces recorded in the record phase. We thus manage
to give a one-machine debugging perspective to the programmer. We found
that the time and space overheads for debugging are acceptable. Joint
work with
Vahe Poladian.
Project report:
pdf.
Hardware-software Interfaces for Reconfigurable Fabrics
This project focused on designing and implementing a general-purpose
interface between the two halves of an application that allows
arbitrary computation to be placed on reconfigurable hardware. Our
interface was based on compiler-generated stubs which allowed placing
arbitrary procedures on the reconfigurable fabric. This was a
significant departure from previous approaches that allowed only
simple, call-free computation or leaf procedures to be placed on the
reconfigurable hardware. Joint work with
Mahim Mishra. Related paper:
pdf.
Publications
-
Ashwin Bharambe,
John R. Douceur, Jacob R. Lorch, Thomas Moscibroda,
Jeffrey Pang, Srinivasan Seshan, Xinyu Zhuang:
Donnybrook: Enabling Large-Scale, High-Speed, Peer-to-Peer Games,
ACM SIGCOMM 2008, Seattle, USA.
-
Ashwin Bharambe, Jeffrey Pang and
Srinivasan Seshan:
Colyseus: A Distributed Architecture for Multiplayer Games,
ACM/USENIX NSDI 2006, San Jose, USA. Slides: PPT
Extended version available as a
technical report,
CMU CS Technical Report Number CMU-CS-05-112.
-
Ashwin Bharambe, Cormac Herley and Venkat
Padmanabhan:
Analyzing and Improving a BitTorrent Network's Performance Mechanisms,
IEEE INFOCOM 2006, Barcelona, Spain. Slides: PPT
Extended version available as a
technical report,
Microsoft Research Technical Report Number MSR-TR-2005-03.
A much shorter version also appears as a short-paper in ACM SIGMETRICS 2005.
-
Ashwin Bharambe, Sanjay Rao, Venkat Padmanabhan, Srinivasan
Seshan and Hui Zhang:
The Impact of Heterogeneous Bandwidth Constraints on DHT-Based Multicast
Protocols,
4th International Workshop on P2P Systems (IPTPS) 2005, Ithaca,
February 2005.
-
Ashwin Bharambe,
Venkat Padmanabhan and Srinivasan Seshan:
Supporting Spectators in Online Multiplayer Games,
HOTNETS-III, San Diego, November 2004.
-
Ashwin Bharambe,
Mukesh Agrawal and Srinivasan Seshan:
Mercury: Supporting Scalable Multi-Attribute Range Queries,
SIGCOMM 2004, Portland, August 2004. Slides: PPT
-
Aditya Akella, Ashwin Bharambe, Mike Reiter and Srinivasan Seshan:
Detecting DDoS
Attacks on ISP Networks,
ACM SIGMOD/PODS Workshop on Management and Processing of Data Streams
(MPDS) 2003. Slides: PPT
-
Ashwin Bharambe,
Sanjay Rao and Srinivasan Seshan:
MERCURY: A Scalable Publish-Subscribe System for Internet
Games,
First International Workshop on Network and System Support for Games
(NetGames) 2002. Slides: PPT
-
Aditya Akella, Ashwin Bharambe, Suman Nath and Srinivasan Seshan:
Multimodal Network Protocols: Adapting to Highly Variable Operating
Conditions,
CMU SCS Technical Report Number CMU-CS-02-170.
-
Mihai Budiu, Mahim Mishra, Ashwin Bharambe and Seth Goldstein:
Peer-to-peer Hardware-Software Interfaces for Reconfigurable
Fabrics,
Tenth IEEE Symposium on Field-Programmable Custom Computing
Machines (FCCM) 2002.
Talks
- NSDI 2006. Slides: PPT
- INFOCOM 2006. Slides: PPT
- SIGCOMM 2004. Slides: PPT
- MPDS 2003. Slides: PPT | PDF
- OPENSIG 2002. Slides: PPT | PDF
- NETGAMES 2002. Slides: PPT | PDF
Last modified: Tue Jun 02 18:21:49 EDT 2009