How to Simulate Non Adaptive Routing Projects Using MATLAB

To simulate Non-Adaptive Routing in MATLAB, we can generate a design in which routes are predefined and cannot vary in response to network conditions. Non-adaptive routing, also termed as static routing, allocates the fixed paths for each source-destination pair that means that routes persist constant nevertheless of factors such as network congestion, link failure, or load variations.

Below are the procedures to simulate the Non-Adaptive Routing in MATLAB

Steps to Simulate Non-Adaptive Routing in MATLAB

  1. Define Network Topology:
    • Utilize an adjacency matrix or graph object to demonstrate nodes and links in the network.
    • Allocate weights to each link that could demonstrate costs, distances, or other routing parameters.
  2. Initialize Routing Tables with Predefined Routes:
    • Utilize an algorithm such as Dijkstra’s to estimate the shortest path from each node to every other node primarily.
    • Keep these paths in a routing table for each node, and does not permit updates even if network conditions varies.
  3. Simulate Packet Forwarding:
    • Utilize the static routing tables to send packets from an origin to a destination.
    • Measure the route taken by each packet that contains the nodes visited and the total transmission cost.
  4. Visualize and Analyze Results:
    • Plot the network topology and focus the paths taken by packets.
    • Measure the parameters such as hop count, path length, and end-to-end delay to measure non-adaptive routing performance.

Example Code Outline

Here’s an instance MATLAB code summary for replicating non-adaptive routing using Dijkstra’s technique to estimate fixed routes.

% Define network topology as an adjacency matrix with link weights

adjMatrix = [

0 2 0 0 7;

2 0 3 8 0;

0 3 0 1 6;

0 8 1 0 4;

7 0 6 4 0

];

numNodes = size(adjMatrix, 1);

% Dijkstra’s algorithm function for finding shortest path from source

function [dist, prev] = dijkstra(adjMatrix, source)

numNodes = size(adjMatrix, 1);

dist = inf(1, numNodes);  % Initialize distances to infinity

dist(source) = 0;          % Distance to itself is 0

visited = false(1, numNodes);

prev = NaN(1, numNodes);   % Previous node in optimal path

for i = 1:numNodes

% Find the unvisited node with the smallest distance

[~, u] = min(dist + visited * inf);

visited(u) = true;

% Update distances to neighboring nodes

for v = 1:numNodes

if adjMatrix(u, v) > 0 && ~visited(v)  % Check for edge and if unvisited

alt = dist(u) + adjMatrix(u, v);

if alt < dist(v)

dist(v) = alt;

prev(v) = u;

end

end

end

end

end

% Initialize static routing tables using Dijkstra’s algorithm for each node

routingTables = cell(numNodes, 1);

for source = 1:numNodes

[~, prev] = dijkstra(adjMatrix, source);

routingTables{source} = prev;  % Store the previous node for each shortest path

end

% Display the static routing tables for all nodes

disp(‘Static Routing Tables:’);

for i = 1:numNodes

disp([‘Routing table for node ‘, num2str(i), ‘:’]);

disp(routingTables{i});

end

% Function to simulate packet forwarding based on the static routing tables

function forwardPacket(src, dest, routingTables)

current = src;

path = [current];

while current ~= dest

nextHop = routingTables{current}(dest);

if isnan(nextHop)

disp(‘No path available.’);

return;

end

path = [path, nextHop];

current = nextHop;

end

disp([‘Packet path from ‘, num2str(src), ‘ to ‘, num2str(dest), ‘: ‘, num2str(path)]);

end

% Test packet forwarding from a source to destination

srcNode = 1;

destNode = 5;

disp(‘— Packet Transmission —‘);

forwardPacket(srcNode, destNode, routingTables);

% Visualize the network topology

G = graph(adjMatrix);

figure;

plot(G, ‘EdgeLabel’, G.Edges.Weight);

title(‘Network Topology’);

Explanation of the Code

  • Network Topology: The adjacency matrix adjMatrix describes the network, in which each non-zero entry demonstrates a link with an associated weight (cost).
  • Dijkstra’s Algorithm: The dijkstra function estimates the shortest path from an origin node to all other nodes, creating a static routing table for each node.
  • Static Routing Table Setup: Routing tables are estimated once and stay fixed, nevertheless of network conditions. Each table includes the next hop for reaching each destination.
  • Packet Forwarding: The forwardPacket function sends packets beside the predefined path, subsequent the static routing tables from the origin to the destination.

Visualization and Analysis

To measure and envision non-adaptive routing:

  • Network Visualization: Utilize MATLAB’s graph and plot functions to shows the network topology with edge labels demonstrating link weights.
  • Path Display: measure and shows the path taken by each packet from origin to destination according to the static routing tables.

Extending the Simulation

For a further detailed non-adaptive routing simulation:

  • Link Failure Simulation: Physically disable certain links by configure them to infinity (inf) in the adjacency matrix, then learn on how the non-adaptive routing tables fail to adjust to the failure.
  • Multi-path Simulation: Predefine multiple paths for high-availability routes by adjusting routing tables to switch paths according to certain condition.
  • Metrics Tracking: Measure the key parameters such as average hop count, total transmission cost, and delay via multiple routes.

By utilizing the MATLAB, you can simulate and measure the performance for Non-Adaptive Routing projects that were simulated and visualized the results in the above following steps. We will be offer more information related this project in another manual.

Our team is here to handle your project performance. We take care of issues like network congestion, link failures, and load variations based on your needs. Just let us know what you need, and we’ll get it done for you. If you want top-notch simulation guidance for Non-Adaptive Routing Projects using MATLAB, just send us your project details via email. We’ve got everything you need to provide you with the best support.

Opening Time

9:00am

Lunch Time

12:30pm

Break Time

4:00pm

Closing Time

6:30pm

  • award1
  • award2