Virtual Network Forwarding

Systems Project

A Java implementation of a learning switch that optimally forwards packets based on link layer headers and a router that updates and forwards packets based on network layer headers.

Specifically, the router does the following:

  • Generates Internet Control Messaging Protocol (ICMP) messages when error conditions occur;
  • Populates the ARP cache by generating and consuming Address Resolution Protocol (ARP) messages;
  • Builds a routing table using distance vector routing via a Routing Information Protocol v2 (RIPv2) implementation.

For more information and the source code, check out the GitHub repository.

If interested in hearing more about this project, feel free to contact me.