This repository contains programming assignments for the course Introduction to Computer Networks taken during the Fall of 2017 at the University of Wisconsin-Madison.
Building a learning switch using the switchyard framework with the following packet retention policies:
- Timeout
- LRU
- Least Traffic First
Building a static router using the switchyard framework with the following functionalities:
- Respond to ARP (address resolution protocol) requests for addresses that are assigned to interfaces on the router.
- Make ARP requests for IP addresses that have no known Ethernet MAC address.
- Receive and forward packets that arrive on links and are destined to other hosts.
- Respond to ICMP messages like echo requests ("pings").
- Generate ICMP error messages when necessary, such as when an IP packet's TTL (time to live) value has been decremented to zero.
Building a simulation of reliable transmission using three components.
- Blaster
- Blastee
- Middlebox
The blaster sends packets to blastee via the middlebox which can randomly drop packets. The blastee ACK's the packets sent by the blaster. The ACK packets are not dropped.