This project aims to design and implement a basic network simulator in Java to visualize packet forwarding between devices in a simple network topology. It will also focus on understanding IP addressing, subnet masking, and basic routing concepts.
Project Requirements:
1. Network Topology (5 points):
Ο Create a network topology with at least 5 devices (routers and hosts).
Ο Assign IP addresses and subnet masks to each interface.
Ο Implement static routing to determine the next hop for packets.
2. Packet Forwarding (5 points):
Ο Simulate packet forwarding between devices based on routing tables.
Ο Implement packet loss and delay.
Ο Visualize packet movement on the network topology.
3. User Interface (5 points):
Ο Create a user-friendly interface to:
• Define the network topology.
• Assign IP addresses and subnet masks.
• Start and stop simulations.
• Visualize network traffic.
Additional Considerations:
• Error Handling: Implement robust error handling to handle invalid input and unexpected behavior.
• Documentation: Provide clear documentation, including code comments and a user manual.
Tips for Success:
• Start Simple: Start with a small network topology and gradually increase its complexity.
• Leverage Existing Libraries: Use libraries like JavaFX or Swing for visualization.
• Test Thoroughly: Write unit tests to ensure the correctness of each component.
Deliverables: Your code including the Network Simulator and a PDF explaining your code. Code submission with no PDF mean 0.