wiki:GENIExperimenterWelcome

Version 35 (modified by Mark Berman, 7 years ago) (diff)

--

Welcome GENI Experimenters!

The Global Environment for Network Innovations – GENI – is a suite of research infrastructure rapidly taking shape in prototype form across the United States. It is sponsored by the National Science Foundation, with the goal of becoming the world’s first laboratory environment for exploring future internets at scale, thereby promoting innovations in network science, security, technologies, services and applications

You are why GENI is here.

Remember that GENI is a virtual laboratory, and what's a laboratory without experiments? So, thank you for using GENI for your experiments.

Resources for experimenters

We're here to help. If you have questions or get stuck, please e-mail us at help@geni.net.

Here are some pointers to GENI information that may help you get started.

  • If you need GENI credentials, follow the instructions at SignMeUp.
  • The page UnderstandingGENI has information about how you can get started and run your experiment in GENI, including a catalog of resources.
  • A community support mailing list for experimenters can be found here.

GENI Bibliography

Read about what other researchers are doing with GENI. The GENIBibliography is a good place to start.

GENI Experiment Repository

A small but growing repository for archived and example experiments, plus some material for your not-too-serious reading enjoyment.

NAT Traversal / Non-transitive connectivity No image "Seattle.png" attached to GENIExperimenterWelcome The purpose of this assignment is to illustrate several important networking concepts by measuring the connectivity between computers spread around the Internet. For this task we will be using Seattle, and in the first part of this assignment you will familiarize yourself with the Seattle demokit. Once you are comfortable with the demokit, we will run an all-pairs-ping on computers distributed around the world. The goal of running the all-pairs-ping is to observe non-transitive connectivity (when two computers cannot communicate, but they can both communicate with a third computer). Following this, we will set up one-hop detour routing to circumvent non-transitive connectivity to allow the computers to communicate through the intermediate node. The final part of the assignment investigates whether or not a computer is behind a NAT (network address translator) and illustrates the practical issues with communicating with a NATed node.
Stop And Wait Protocol No image "Seattle.png" attached to GENIExperimenterWelcome In this assignment, you will implement a reliable datagram protocol using the stop-and-wait (also known as alternating bit) protocol. You will write client and server programs that communicate using your library. The server will listen for messages and send back acknowledgements. The client will send messages and listen for acknowledgements. The client will consider a message delivered once it receives an acknowledgment and resend an unacknowledged message after a timeout. After a finite number of resent messages, the client will give up and report an error.
Sliding Window Protocol No image "Seattle.png" attached to GENIExperimenterWelcome In this assignment, you will extend the Stop and Wait Assignment with the sliding window algorithm. The purpose of this algorithm is to enable the sender to use the available network bandwidth more efficiently. This is achieved by sending more than one packet at a time before waiting to receive acknowledgements. This pipelining of packets makes for a much higher bandwidth communication protocol than the previous Stop And Wait Protocol.
Link State Routing (Dijkstra's Algorithm) No image "Seattle.png" attached to GENIExperimenterWelcome This assignment will illustrate an important network routing strategy called Link State routing. In this assignment, Seattle nodes will take an initial connectivity map of nodes. They will then implement and run Dijkstra's shortest path algorithm to build their routing tables. Finally, nodes will forward packets using their routing table.
HTTP Server Assignment No image "Seattle.png" attached to GENIExperimenterWelcome In this part of the project you will create a minimal web server to serve text and html files. Your webserver will have a single dynamic component for listing files in a directory, it will need to read and send file contents to clients as well as accept incoming data.
Chat Server Assignment No image "Seattle.png" attached to GENIExperimenterWelcome This assignment focuses on designing and implementing a chat service called Seattlechat. Seattlechat has three main components, a central Seattlechat server whose focus is to relay messages, a collection of Seattlechat translators that change messages into different formats for display, and a Seattlechat client which is will use a standard web browser for communicating with a user. Each Seattlechat client has its own translator, but many translators can connect to the same Seattlechat server.
DHT Assignment (Chord) No image "Seattle.png" attached to GENIExperimenterWelcome For this assignment the students first implement a DHT-like message routing system based on Chord, and test their implementations on local Seattle resources. The students then run their code on globally distributed Seattle resources. Chord works well over LAN, but has performance and correctness problems in a global scale deployment with non-transitive connectivity. After explaining the reasons behind Chord's poor performance, the instructor can have the class discuss solutions to these problems. Students can then implement these solutions to achieve better performance and reliability.
ClickExampleExperiment No image "ClickExampleExperiment.png" attached to GENIExperimenterWelcome This example experiment shows how to use GENI resources to test a simple non-IP routing technique. This experiment will be of interest to experimenters working with novel protocols, particularly those with Click-based implementations.

You will use ProtoGENI hosts and Click modular router software to build your network.

In order to try this example experiment, you should have GENI credentials and be familiar with using the omni command line tool. Learn more about credentials Learn more about credentials at SignMeUp or by sending us mail help@geni.net.
UDTExampleExperiment No image "UDTExampleExperiment.png" attached to GENIExperimenterWelcome In this example experiment, you will compare the behavior of two different transport protocols, UDT and TCP, under varying network conditions.

You will use ProtoGENI hosts to build your network.

In order to try this example experiment, you should have GENI credentials and be familiar with using either the Flack GUI tool or the omni command line tool. Learn more about credentials at SignMeUp or by sending us mail help@geni.net.
WebServerExample No image "WebServerExample.png" attached to GENIExperimenterWelcome In this assignment you will build a functional web server. This assignment will guide you through the basics of distributed programming, client/server structures, and issues in building high performance servers.

You will use ProtoGENI hosts to build your network.

In order to try this example experiment, you should have GENI credentials and be familiar with using either the Flack GUI tool or the omni command line tool. Learn more about credentials at SignMeUp or by sending us mail help@geni.net.
TestTubeGuyBio No image "TestTubeGuy.png" attached to GENIExperimenterWelcome Learn about this GENI legend.
CoffeeWomanBio No image "CoffeeWoman.png" attached to GENIExperimenterWelcome Learn about this GENI legend.

GENI Experimentation Events

GEC15 will be held in Houston Texas on October 23-25. More information coming soon.

Please visit ExperimentationEventArchive for information on past events of interest to the GENI experimentation community.