A Network Simulator to move packets in a network and calculate the associated delays
Forwarding multiple packets at a time (packet queing at nodes should be considered)
Working OnWe had a meeting with the product owner and asked for a description about his requirement.
Nov 1We had a discussion and started to work on the project.
Nov 2To familiarize ourselves with the idea we had a look at past projects similar to ours.We also tested some network simulator software.
Network Simulators Nov 3A discussion about the user input (network topology, dealys, parameters, packet injection) and the expected output (packet path, associated delays) with the product owner
Nov 5For the basic implementation there was no need of any API.To enhance user experience we planned to display the router network.Hence we agreed to use the
GraphStream Library Nov 7Router is the main component in the network.Its switch fabric is of main concern.We adopted the following switch fabric pattern in our implementation
Switch Fabric Nov 8We agreed to use Java Maven Platform.We studied its facilities that we can we can use for testing.
Maven Platform Nov 8Initializing Forwarding Tables, Routers, Links as public data structures instead of variables inside objects. Also used the directed links concept to function the full duplexity.
Nov 10With necessary adjustments coding of the idea was done.
Nov 12Testing of the code was done without JUnit facility.
Nov 15To make testing easy and the output understandable GUI was developed parallely.
Nov 17As shown in above flow chart the time based approach was not an ideal simulation.In the next meeting we had with the product owner,he insisted on ideal simulation and asked us to go for an event based simulation.
Nov 21Event Based simulation gave us room to access almost all the associated parameters(link distance,transmission rate,packet size etc) of the network and change them easily.
Flow Chart-2 Nov 22Improved GUI is attached
Nov 30Power point slides covering all the required aspects were prepared.
Mid Presentaion Dec 5The project progress was presented along with the demonstration. The feedback was good and work was appreciated
Dec 6Product owner was made aware of the work done so far. The future modifications as we listed out were discussed with the product owner.There, some of the modifications were dropped and some were added. Visualizing the graph for the purpose of making the presentation easier was set as a goal to acomplish.
Dec 6When the graph gets bigger or when the number of simultaneous packets moving gets bigger the graph becomes complex and there is no point of visualizing. Also graph visualizing libraries are not supporting javaFx ( graphstream library has just started developing the library to be compatible with javaFx) But we implemented the visualization and is available in our github repository. The facility will be included in version 2.0
Dec 7All are welcome to download and use the "Simulator" and we value your feedbacks
The facility to inject packets via a file was included. Some java threads were not working properly when resets. This was fixed too. The background was changed to plain color to enhance user experience.
Dec 27The discarding policy (FIFO,tail drop,priority drop,random drop) were implemented demanding the network neurality:p
Scheduling Jan 12ns2 simulator was used to compare with our simulator. The same features were applied to both the simulators. It was found out that the results were perfectly matching.
Comparison Jan 15The tested simulator version 1.2 is now available. Ths graph is not working since javafx and swing cannot be connected. To run the software with full facilities visit git repository and use source code.
Download Jan 16