Implemented a fully functional Internet router that routes real network traffic. Implemented ARP, ICMP, and basic IP forwarding as part of the project. The router runs on top of the Virtual Network System built at Stanford that allows building virtual network topologies consisting of nodes that operate on actual Ethernet frames. Router functionality is to handle ARP requests and replies, ICMP echo requests, ICMP messages, traceroutes through it (where it is not the end host) and to it (where it is the end host), route packets between the gateway and the application servers, ARP cache whose entries were invalidated after a timeout period (timeouts should be on the order of 15 seconds), tcp/udp packets sent to one of its interface