Packet Forwarding Simulator

Packet Forwarding Simulator


Overview


A Network Simulator to move packets in a network and calculate the associated delays


Stages


Picture

Stage 1

Moving a single packet at a time in the network

Completed
Picture

Stage 2

Forwarding multiple packets at a time (packet queing at nodes should be considered)

Working On

Project Log


Picture

Meeting the Product Owner


We had a meeting with the product owner and asked for a description about his requirement.

Nov 1
Picture

Team Meeting


We had a discussion and started to work on the project.

Nov 2
Picture

Searching for Similar Projects and Software


To 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 3
Picture

Project Initializing


Github Repository Nov 4
Movie

User Input and Expected Output

A discussion about the user input (network topology, dealys, parameters, packet injection) and the expected output (packet path, associated delays) with the product owner

Nov 5
Movie

Designing Flow Chart

The initial designing of the solution

Flow Chart Nov 6
Picture

Use of APIs


For 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 7
Movie

Router Switch Fabric

Router 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 8
Picture

Implementing The Idea

We agreed to use Java Maven Platform.We studied its facilities that we can we can use for testing.

Maven Platform Nov 8
Movie

Change In Class Diagram

Initializing 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 10
Location

Coding the approach

With necessary adjustments coding of the idea was done.

Nov 12
Location

Testing the Code

Testing of the code was done without JUnit facility.

Nov 15
Location

Attaching The GUI

To make testing easy and the output understandable GUI was developed parallely.

Nov 17
Location

Change In Solution

As 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 21
Movie

Designing Flow Chart-2

Event 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 22
Location

Class Diagram

Event based simulation's class diagram.

Class Diagram Nov 24
Location

Coding the Idea

Coding of the Event based simulation

Source Code Nov 25
Movie

Setting GUI

Improved GUI is attached

Nov 30
Movie

Preparation for Mid Evaluation

Power point slides covering all the required aspects were prepared.

Mid Presentaion Dec 5
Movie

Presentation Of the Work

The project progress was presented along with the demonstration. The feedback was good and work was appreciated

Dec 6
Movie

Meeting with the Product Owner

Product 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 6
Movie

The complexity of visualization

When 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 7
Movie

Software Release Version 1.0

All are welcome to download and use the "Simulator" and we value your feedbacks

Simulator Download Dec 10
Movie

Further Development of Software

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 27
Movie

Further Testing

The famouse NSFNET was used as the model topology to carry out the testing. Testing a simulation of a real situation was interesting. Results

Jan 3
Movie

Scheduling Mechanism Implemetation

The discarding policy (FIFO,tail drop,priority drop,random drop) were implemented demanding the network neurality:p

Scheduling Jan 12
Movie

Comparison Test with ns2

ns2 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 15
Movie

Software Release Version 1.2

The 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

Team


Picture

Hiruna Samarakoon

Working on the development of the simulation

Working On E14302
Picture

Anjana Senanayake

Working on the UX/UI of the simulator

Working On E14317
Picture

Dhanushki Mapitigama

Working on testing the simulator

Working On E14240