Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

im working on my final year project , Topic is A network traffic simulation environment tailored for testing the resilience and performance of the network

im working on my final year project , Topic is "A network traffic simulation environment tailored for testing the resilience and performance of the network infrastructure of NDMA Data Network"
please implement these steps
### Milestone 1: Represent the NDMA Network with Python Code
*Step 1.1:* Define the Router/Node Class
- Create a Python class named Router to represent each router/node in the network.
- The class should include the following properties:
- forwarding_capacity (e.g.,2.4Tbps,100Gbps)
- brand (e.g., Huawei, Mikrotik)
- ports (e.g., a list of tuples representing port numbers and their capacities, such as [(1,10Gbps),(2,10Gbps),...])
*Step 1.2:* Define the Link Class
- Create a Python class named Link to represent each link in the network.
- The class should include the following properties:
- link_type (e.g., fibre, microwave)
- capacity (e.g.,10Gbps,1Gbps,720Mbps)
- source_router (reference to the Router object at one end of the link)
- destination_router (reference to the Router object at the other end of the link)
*Step 1.3:* Instantiate Router and Link Objects
- Instantiate objects for each router and link in the NDMA network using the classes defined above.
- Ensure all routers and links are interconnected according to the actual network topology.
*Step 1.4:* Visualize the Network (Optional)
- Implement a method to visualize the network topology, possibly using a library such as NetworkX and Matplotlib for graphical representation.
---
### Milestone 2: Create Matrices/Tables that Represent Traffic Flows
*Step 2.1:* Define the Traffic Flow Class
- Create a Python class named TrafficFlow to represent traffic flows between devices.
- The class should include the following properties:
- source_device (e.g., IP address or identifier of the source device)
- destination_device (e.g., IP address or identifier of the destination device)
- amount_of_traffic (e.g.,10Mbps)
*Step 2.2:* Create the Traffic Flow Matrix
- Create a matrix or table to represent traffic flows.
- Each row should correspond to a traffic flow with columns for From Device, To Device, and Amount Traffic.
*Step 2.3:* Populate the Traffic Flow Matrix
- Populate the matrix with sample data representing typical traffic flows within the NDMA network.
---
### Milestone 3: Represent the Routing Table in the Code for Each Router
*Step 3.1:* Define the Routing Table Class
- Create a Python class named RoutingTable to represent the routing table for each router.
- The class should include properties and methods to store and manage routes (e.g., destination network, next hop, metric).
*Step 3.2:* Integrate Routing Tables with Routers
- Add a routing_table attribute to the Router class, which is an instance of the RoutingTable class.
- Implement methods to add, remove, and lookup routes within the routing table.
*Step 3.3:* Populate Routing Tables
- Populate the routing tables for each router with initial routes, based on the NDMA network's routing configuration.
---
### Milestone 4: Input the Traffic Flow Matrix and Use the Code for the Routing Table to Show How Much Load is Put on Each Link
*Step 4.1:* Define the Traffic Simulation Function
- Create a function that takes the traffic flow matrix as input and simulates the traffic flow through the network.
- Use the routing tables to determine the path each traffic flow will take.
*Step 4.2:* Calculate Link Load
- For each traffic flow, determine the links it traverses and calculate the load placed on each link.
- Update the link objects with the current load based on the traffic flows.
*Step 4.3:* Output Link Load Data
- Create a method to output or visualize the load on each link.
- This could be in the form of a table, log file, or graphical representation.
---
### Milestone 5: Setup a Method so the User Can Vary the Traffic Flow Matrix
*Step 5.1:* Implement User Input for Traffic Flow
- Create a user interface (CLI or GUI) that allows users to modify the traffic flow matrix.
- Implement input validation to ensure the traffic flows are correctly formatted.
*Step 5.2:* Re-run Simulation with New Traffic Flows
- Allow the user to re-run the traffic simulation with the modified traffic flow matrix.
- Update the link load data based on the new traffic flows.
*Step 5.3:* Provide Feedback to the User
- Output the new link load data to the user.
- Highlight any changes in load and potential bottlenecks or overloads in the network.
*Step 5.4:*(Optional) Save and Load Traffic Scenarios
- Implement functionality to save traffic flow matrices to a file and load them for future simulations.
- This allows users to quickly test different scenarios without re-entering data.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Seven NoSQL Databases In A Week Get Up And Running With The Fundamentals And Functionalities Of Seven Of The Most Popular NoSQL Databases

Authors: Aaron Ploetz ,Devram Kandhare ,Sudarshan Kadambi ,Xun Wu

1st Edition

1787288862, 978-1787288867

More Books

Students also viewed these Databases questions