Dev:Forest - an overlay network for distributed applications

From ARL Wiki
Revision as of 15:12, 15 September 2008 by Jon Turner (talk | contribs)
Jump to navigationJump to search

This page describes the high level architecture for the scalable network game system, focusing on the major system components, their interfaces and functionality.

We envision several different implementations of the architecture, for different deployment contexts. These contexts include the Open Network Lab, the Supercharged PlanetLab Platform, Vini and Amazon EC2. Some of these (perhaps all) will be incomplete, but we want to maintain a reasonable degree of consistency across the platforms to minimize the amount of redundant work that will be required. Since the EC2 environment has the greatest potential to serve as a realistic development platform, we will try to keep it as our primary focus. The other environments can be seen more as prototypes, for ideas that we seek to ultimately realize in EC2.

Major Components

The network game system is distributed across multiple sites. Each site has a known geographic location and includes a multiplicity of processing resources of various types. In particular, each site has one or more servers and routers. Servers connect to remote users or clients over the Internet (most often, using UDP tunnels) and communicate with other servers through the routers. Sites are connected by virtual links which have an associated provisioned bandwidth. Multiple routers at a site may share the use of a virtual link going to another site, but must coordinate their data transmissions so as not to exceed its capacity. These ideas are illustrated in the figure below.


caption

System Data

Decide on what data we want to maintain at a system level and how it should be organized (at least logically). One possibility is to include a DHT that would have one node at each site in the network and that would store various kinds of global system data. Use one-hop routing, that is expect every site to know about all other sites.

Common Interface Elements

Generic packet format description goes here.

Naming and Addressing

State Update Distribution

Region Subscription

User Connection and Startup

Session Creation

Network State Management

Include neighbor discovery, topology maintenance, etc.

Multicast Tree Routing

foo