-
This project develops a network simulation protocol in Java, starting with Internet Control Message Protocol (ICMP) ping functionality and Open Shortest Path First (OSPF) implementation. The goal is to simulate network interactions, analysing packets and implementing network devices.
-
The simulation is structured using object-oriented programming (OOP) principles, with core components such as PC, Router, and Device classes. Features include Address Resolution Protocol (ARP) for managing IP to Media Access Control (MAC) address resolution, Internet Protocol (IP) packet handling, Internet Control Message Protocol (ICMP) packet sending, network device management, and Network Interface Cards (NICs) for holding IP address details and randomly generated MAC addresses to simulate realistic network behaviour, with the added benefit of subnetting through the use of subnet masks. Parts of it are implemented using a command line interface (CLI), and a graphical user interface (GUI).
-
OSPF is implemented by modelling the network as a graph and calculating the lowest-cost path between devices using Dijkstra’s algorithm, although within the application it is done from a more simplified approach. Animations were used to represent packets being sent and received across the network. This has all been done with the use of the Swing GUI widget toolkit for Java.