GENI logo

GENIEducation / SampleAssignments

GENI-Based Classroom Exercises

Topic Title Description Format Level Nodes IG EG Other Contact
Topic Title Description Format Level Nodes IG EG Other Contact
Getting Started Lab Zero: My first GENI Experiment Verify accounts and environment are set up correctly; Familiarize students with the process of running an experiment on GENI. (Highly recommended as the first lab students do in the class with instructor help) Tutorial Newbie 2  GENI Project Office
Getting Started Lab One: Understanding the AM API and Omni Understand how the GENI reservation process works, get familiar with the GENI Aggregate Manager API (GENI AM API), learn to use Omni. Tutorial Beginner 4  GENI Project Office
Getting Started GENI Desktop Basics Learn the basics of instrumenting a slice and viewing measurement data using the GENI Desktop. Tutorial Beginner 2  Jay Aikat
Networking Basics IPv4 Routing Understand how IPv4 forwarding works and how to configure static routes. Assignment Beginner 3  Mike Zink
Networking Basics TCP/IP protocol layers Examine network addresses and connections at the network access (a.k.a. data link) layer, the Internet layer, the transport layer, and the application layer. Assignment Beginner 3  Fraida Fund
Networking Basics TCP Congestion Control Give students experience generating and analyzing TCP flows. Students will use iperf to create a flow and view the sawtooth behavior. A second flow will then be introduced to show how TCP flows share a link. Uses the GENI Desktop to visualize flows. Assignment Intermediate 2  Jay Aikat
Networking Basics Effect of RTT and Window Size on TCP Throughput Experiment with how RTT and TCP window size affect TCP throughput. Learn how to adjust the RTT of a TCP connection by adding delay, as well as how to adjust the window size of an iperf TCP flow. Uses the GENI Desktop to visualize flows. Assignment Advanced 2  Jay Aikat
Networking Basics Exploring Queues Explore the effects of queues on packet loss and delay using UDP traffic. Use iperf to send UDP traffic from a source to a destination through an intermediate bottleneck router which will develop a queue. Assignment Intermediate 3  Jay Aikat
Networking Basics OSPF Experiment with the OSPF routing protcol, observing how it updates it's neighbor table, and how it dynamically routes around downed links. Assignment Beginner 4  Jay Aikat
Networking Basics Traffic Analysis Learn to use tcpdump to capture and analyze network traffic. Uses the GENI Desktop to visualize flows. Assignment Advanced 2  Jay Aikat
Networking Basics OpenFlow Learning Switch Implement the learning switch capability used by Ethernet switches. Develop a five-port learning switch using a software-based OpenFlow switch. Uses the LabWiki tool. Assignment Expert 6 ? ?  Mike Zink
Networking Basics Babel - a loop-avoiding distance-vector routing protocol See how routes are added and updated dynamically as new nodes join a network, and as links are broken and recover. Tutorial Intermediate 7  Fraida Fund
Networking Basics Nyquist formula: relating data rate and bandwidth Verify the relationship between data transmission rate, bandwidth, and modulation scheme, as described by the Nyquist formula. Tutorial Beginner 2 ORBIT or WITest  Fraida Fund
Networking Basics Operation of a basic Ethernet switch or bridge In this experimental demonstration of the basic operation of a layer 2 switch/bridge, we will see: (1) how to set up a layer 2 bridge on Linux, (2) how a bridge or switch learns MAC addresses and updates its forwarding table, and how it forwards, filters, or floods a frame depending on the forwarding table, and (3) how a bridge or switch reduces collisions by separating each port into a separate collision domain. Assignment Beginner 5  Fraida Fund
Networking Basics Dijkstra's shortest path algorithm Use Dijkstra's algorithm to find the shortest path from one node in a six-node topology, to all other nodes. Then, install routing rules at each node to implement the shortest-path tree produced by Dijkstra's algorithm. Assignment Intermediate 6  Fraida Fund
Networking Basics Basic home gateway services: DHCP, DNS, NAT Most Internet-connected homes use a home network gateway to connect a local area network (LAN) in the home, to a wide area network (WAN) such as the Internet. In this experiment, we look at some of the services that are always or often included on these gateways: DHCP, DNS, and NAT. Assignment Beginner 4  Fraida Fund
Networking Basics Designing subnets Set up a few small subnets to meet design requirements. (Identify appropriate subnet masks and IP address range for each LAN, and set up static routes to move traffic between LANs.) Assignment Intermediate 9  Fraida Fund
Networking Basics TCP congestion control basics Record congestion window size and slow start threshold for a set of TCP flows that share a common bottleneck router. Identify "slow start" and "congestion avoidance" phases, and instances of timeout (where CWND goes to 1 MSS) and 3 duplicate ACKs (where the slow start threshold is set to half the CWND, and CWND goes down to the slow start threshold). Assignment Beginner 3  Fraida Fund
Networking Basics Spanning tree protocol In this experiment, we will see how broadcast storms can occur in a network with bridge loops (multiple Layer 2 paths between endpoints). Then, we will see how the spanning tree protocol creates a loop-free logical topology in a network with physical loops, so that a broadcast storm cannot occur. We will also see how the spanning tree protocol reacts when the topology changes. Assignment Beginner 8  Fraida Fund
Networking Basics Exploring IPv6 Explore the differences between IPv4 and IPv6 and use network tools to work with IPv6 addresses. Assignment Intermediate 3  Jay Aikat
Advanced Networking Content Centric Networking (CCN) Run an application over a CCN protocol stack and observe how content is fetched. Optional: Use GENI Desktop to view traffic flows in the CCN. Assignment Intermediate 4  GENI Project Office
Advanced Networking Network Function Virtualization: OpenFlow based Firewall Introduce NFV concepts by making an OpenFlow controlled OVS switch function as a network firewall. Much of the code for the Ryu-based controller is provided. Uses the same topology as the OpenFlow-based NAT exercise. Assignment Expert 4  GENI Project Office
Advanced Networking Network Function Virtualization: OpenFlow based NAT Introduce NFV concepts by making an OpenFlow controlled OVS switch function as a network firewall. Much of the code for the Ryu-based controller is provided. Uses the same topology as the OpenFlow-based Firewall exercise. Assignment Expert 4  GENI Project Office
Advanced Networking Traffic Generation Learn principles of traffic generation using Tmix, a tool for generating realistic network traffic. Assignment Intermediate 2  Jay Aikat
Advanced Networking OpenFlow based Load Balancing Router Implement of a load balancer using OpenFlow switches (OVS switches) and a controller capable of collecting flow stats. The exercise includes a template for a Treme-Based controller; only a few methods need to implemented to get the required functionality. Uses the LabWiki tool. The 7 VMs include a VM for the OpenFlow controller. Assignment Expert 7 ? ?  Mike Zink
Advanced Networking Adaptive video policies for DASH video Explores the tradeoff between different metrics of video quality (average rate, interruptions, and variability of rate) in an adaptive video delivery system. This exercise is a good starting point for having students design, implement, and test their own adaptive video policies. Tutorial Expert 2  Fraida Fund
Advanced Networking Two queues or not two queues? The benefit of statistical multiplexing Reproduces a classic result in queueing theory, statistical multiplexing gain in queues. It answers the basic question: is it faster to serve a set of requests with one fast server, or many slower servers? Tutorial Beginner 5  Fraida Fund
Advanced Networking Average length of an M/M/1 queue This experiment reproduces a classic result in queueing theory: the length of the M/M/1 queue as its utilization approaches 100%. Note this experiment can take a long time, running overnight without user intervention. Tutorial Beginner 3  Fraida Fund
Distributed Systems Web Server Get hands-on experience installing and interacting with a web server. Assignment Beginner 2  Jay Aikat
Distributed Systems VLC/Dynamic Adaptive Streaming over HTTP Give students a better understanding of how Dynamic Adaptive Streaming over Http (DASH) works. It builds on the "Load Balancing Router" exercise and uses the same topology. VLC parameters such as VLC decision bit rate (actual measured bit rate), VLC empirical rate (instant measured throughput) are measured and displayed using GIMI tools. The 7 VMs include an OpenFlow controller. Assignment Expert 7 ? ?  Mike Zink
Distributed Systems Bitcoin: reaching consensus in distributed systems Explores the problem of consensus in distributed systems in the context of Bitcoin, a distributed currency. Tutorial Beginner 5  Fraida Fund
Wireless Networking Adaptive modulation and coding in cellular networks Shows how adaptive modulation and coding profiles are assigned to wireless clients in a (WiMAX) cellular network. Tutorial Expert WITest instructors: Fraida Fund, students: WITest help
Wireless Networking Channel access delay of wireless networks under different loads Highlights the difference in channel access delay between a contention-based WiFi network and a scheduled WiMAX network. Tutorial Expert WITest instructors: Fraida Fund, students: WITest help
Wireless Networking TCP congestion control in lossy wireless networks Shows some of the basic issues affecting TCP congestion control in lossy wireless networks. Tutorial Expert WITest instructors: Fraida Fund, students: WITest help
Wireless Networking Capture and decode FM radio Teaches the basics of FM signal processing using software-defined radio. Tutorial Intermediate ORBIT instructors: Fraida Fund, students: ORBIT help
Wireless Networking Open-ended cognitive radio design challenge Students learn about wireless communications and software radio in the context of a Spectrum Challenge-like cognitive radio competition. Advanced project Expert WITest  Fraida Fund
Wireless Networking Frequency hopping spread spectrum Learn how a frequency hopping transmitter works and observe at FHSS signal transmitted over the air using software defined radio devices. Tutorial Intermediate 2 ORBIT  Fraida Fund
Wireless Networking Channel planning in 802.11: understanding the effect of nearby networks When neighboring 802.11 networks operate on the same channel, they compete with one another to use the shared medium. In this experiment, you will observe the effect on throughput when neighboring cells operate on the same channel vs. on non-interfering channels. Assignment Beginner 6 ORBIT or WITest  Fraida Fund
Wireless Networking Understanding the 802.11 Wireless LAN MAC frame format In this experiment, we will capture traffic on an 802.11 network and observe the 802.11 MAC frame fields using Wireshark. Assignment Beginner 3 ORBIT or WITest  Fraida Fund
Security Run a Man-in-the-Middle attack on a WiFi hotspot Shows how an attacker can capture traffic on a WiFi hotspot with a simple man-in-the-middle attack. Tutorial Advanced ORBIT or WITest instructors: Fraida Fund, students: ORBIT help
Security Passive Sniffing in 802.11 Networks Observe the level of confidentiality provided by three kinds of WiFi networks - an open WiFi network, a WEP network, and a WPA network. Tutorial Intermediate ORBIT or WITest  Fraida Fund
Security Layer 7 DoS attack with slowloris This experiment explores slowloris, a Layer 7 denial of service attack that requires very little bandwidth and causes vulnerable web servers to stop accepting connections to other users. Tutorial Intermediate
2
 Fraida Fund
Security Redirect traffic to a wrong or fake site with DNS spoofing on a LAN Experimental demonstration of two ways a malicious attacker might use DNS spoofing to redirect traffic for a website to its own "fake" version of a website. Tutorial Intermediate 3  Fraida Fund
Security Network Traffic and Denial of Service Lab Students will obtain an experiential perspective of a DDoS attack, save network traffic logs, and use Wireshark to generate graphs from the network traffic logs. Tutorial Beginner 4 Xenia Mountrouidou, Xiangyang Li
Security Intrusion Detection Systems Lab Students will use Snort to install an IDS on a real machine, use the IDS to detect DDoS attacks, create and study IDS rules, and study and understand IDS logs. Assignment Intermediate 6 Xenia Mountrouidou, Xiangyang Li
Security Correlation and Mitigation Using SDN Lab Students will work with Software Defined Networking (SDN) concepts, analyze Snort alerts in real time, and study traffic flow rules. Assignment Expert 6 Xenia Mountrouidou, Xiangyang Li
Security Covert Storage Channel Communcation with TCP Flags Students will generate regular network traffic, generate covert storage traffic channel traffic with TCP flag manipulation, and detect the presence of covert storage traffic in a network. Assignment Advanced 7 Xenia Mountrouidou, Xiangyang Li
Security Certificate Authority Students will learn about the functions of a certificate authority, understand how a certificate request is generated and signed, and understand how a web server works and interacts with a certificate authority. Tutorial Intermediate 4 Xenia Mountrouidou, Xiangyang Li

Cloud Computing

Prasad Calyam of the University of Missouri has used GENI for his Cloud Computing classes and will be happy to share his ideas for labs on GENI. Information regarding the class exercises utilizing GENI can be found here. Please feel free to email him for further information.

Lab sequence for a bottom-up course in computer networks

This is a complete bottom-to-top lab sequence for an undergrad course in computer networks, following William Stallings' "Data and Computer Communications" textbook. The main sequence includes 9 lab assignments (approximately one per week during the semester, not including the standard GENI "Lab 0"). There are also 5 "extra" lab exercises for students interested in engaging further with the material. Each lab exercise in the main sequence includes background information, step-by-step instructions for running the experiment, and an "Exercise" section with questions that students may answer.

Website: https://witestlab.poly.edu/site/page/experiments-for-classroom

Contact: Fraida Fund.

If changes need to be made to this list, please contact Alden Caron-O'Neill or Jay Aikat.