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 | ✔ | 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 |