How to Simulate Software Defined Wide Area Network in MATLAB

To simulate the Software-Defined Wide Area Networks (SD-WAN) using MATLAB, it has includes to design the network components like edge routers, controllers, and several network paths over broad range. In an SD-WAN architecture, the control plane is centralized and decoupled from the data plane that allowing efficient management of the network traffic, dynamic routing, and quality of service (QoS) optimization.

We will guide you through the structured process to simulate SD-WAN projects using MATLAB:

Steps to Simulate SD-WAN projects in MATLAB

Step 1: Understand SD-WAN Components

The fundamental components within an SD-WAN architecture contain:

  • SD-WAN Controller: A centralized control plane, which handles the routing policies, traffic prioritization, and security.
  • Edge Routers: Network devices at branch offices or remote locations that responsible for routing traffic over the WAN.
  • WAN Links: Several paths are associating the edge routers to the data center or cloud such as MPLS, broadband, LTE.
  • Traffic Classes: Distinct kinds of traffic along with different quality requirements like VoIP, video streaming, file transfer.

Step 2: Set Up the MATLAB Environment

In MATLAB, we can utilize the custom scripts to replicate SD-WAN aspects like dynamic path selection, load balancing, and traffic prioritization. Also, we can utilize the toolboxes such as Optimization Toolbox for resource allocation and Communications Toolbox for networking simulations.

Step 3: Define SD-WAN Topology

Initially, we describe a basic SD-WAN topology along with edge routers, WAN links, and a centralized SD-WAN controller. Denote the geographical distribution of these modules by using 2D plane.

% Define network parameters

num_edge_routers = 4;  % Number of edge routers

num_wan_links = 2;  % Number of WAN links (e.g., MPLS and broadband)

controller_position = [500, 500];  % SD-WAN controller at the center

network_area = 1000;  % 1000×1000 grid for network area

% Randomly place edge routers in the network

edge_router_positions = rand(num_edge_routers, 2) * network_area;

% Plot the SD-WAN topology

figure;

scatter(edge_router_positions(:, 1), edge_router_positions(:, 2), ‘bo’, ‘filled’);

hold on;

scatter(controller_position(1), controller_position(2), ‘rs’, ‘filled’);

legend(‘Edge Routers’, ‘SD-WAN Controller’);

title(‘SD-WAN Topology’);

xlabel(‘X Position (m)’);

ylabel(‘Y Position (m)’);

Step 4: Implement Path Selection Algorithm

In SD-WAN, traffic can be routed dynamically over several WAN links like MPLS, broadband according to the real-time network conditions. We can execute a path selection algorithm, which selects the optimal link rely on the factors such as latency, bandwidth, and packet loss.

Example: Latency and Bandwidth-Based Path Selection

% Define WAN link characteristics

wan_link_latency = [10, 50];  % Latency in milliseconds (MPLS and broadband)

wan_link_bandwidth = [100e6, 50e6];  % Bandwidth in bits per second (MPLS and broadband)

% Function to select the best path based on latency and bandwidth

function selected_path = select_best_path(latency, bandwidth)

% Combine latency and bandwidth to create a weighted score for each link

score = (latency ./ bandwidth);

[~, selected_path] = min(score);  % Select the path with the lowest score

end

% Example: Select the best WAN link for a traffic flow

selected_wan_link = select_best_path(wan_link_latency, wan_link_bandwidth);

disp([‘Selected WAN link: ‘, num2str(selected_wan_link)]);

Step 5: Simulate Traffic Flow and Routing Decisions

Replicate the transmission of traffic from edge routers to the data center or cloud in which the SD-WAN controller depends on the network conditions and policies that actively chooses the optimal WAN link.

% Function to simulate traffic routing through selected WAN link

function [latency, bandwidth_used] = simulate_traffic_routing(selected_wan_link, data_size, wan_link_latency, wan_link_bandwidth)

latency = wan_link_latency(selected_wan_link);  % Link latency

bandwidth_used = data_size / wan_link_bandwidth(selected_wan_link);  % Bandwidth consumption

end

% Example: Simulate traffic from Edge Router 1

data_size = 10e6;  % Data size in bits (e.g., 10 MB)

[latency, bandwidth_used] = simulate_traffic_routing(selected_wan_link, data_size, wan_link_latency, wan_link_bandwidth);

disp([‘Latency: ‘, num2str(latency), ‘ ms, Bandwidth used: ‘, num2str(bandwidth_used), ‘ seconds’]);

Step 6: Implement Traffic Prioritization (Quality of Service)

In SD-WAN, diverse kinds of traffic such as VoIP, video, give precedence to the file transfers rely on their QoS needs. For example, VoIP traffic can be prioritized to minimize the jitter and latency.

% Define traffic types and QoS requirements (latency and bandwidth)

traffic_types = {‘VoIP’, ‘Video’, ‘File Transfer’};

qos_requirements = [20, 30, 100;  % Max latency (ms)

1e6, 10e6, 50e6];  % Required bandwidth (bps)

% Function to prioritize traffic based on QoS requirements

function selected_path = qos_based_path_selection(qos_latency, qos_bandwidth, wan_latency, wan_bandwidth)

for i = 1:length(qos_latency)

if wan_latency <= qos_latency(i) && wan_bandwidth >= qos_bandwidth(i)

selected_path = i;

return;

end

end

selected_path = length(qos_latency);  % Default to the last option if no match

end

% Example: Select the best WAN link for VoIP traffic

traffic_type_id = 1;  % VoIP traffic

selected_wan_link = qos_based_path_selection(qos_requirements(1, traffic_type_id), qos_requirements(2, traffic_type_id), wan_link_latency, wan_link_bandwidth);

disp([‘QoS-based selected WAN link for ‘, traffic_types{traffic_type_id}, ‘: ‘, num2str(selected_wan_link)]);

Step 7: Simulate Dynamic Path Rerouting

Just in case of the network failures or degradation such as increased latency, packet loss, the SD-WAN controller can actively reroute traffic to a better-performing WAN link. Replicate on how the controller identifies such modifications and reroutes traffic consequently.

% Function to detect network degradation and reroute traffic

function [rerouted, new_path] = detect_and_reroute(latency_threshold, current_latency, current_path, alternative_latency)

if current_latency > latency_threshold

rerouted = true;

new_path = find(alternative_latency < latency_threshold, 1);

else

rerouted = false;

new_path = current_path;

end

end

% Example: Simulate rerouting decision if latency on the current path exceeds the threshold

latency_threshold = 30;  % Maximum acceptable latency (ms)

[routed, new_path] = detect_and_reroute(latency_threshold, latency, selected_wan_link, wan_link_latency);

if routed

disp([‘Traffic rerouted to WAN link: ‘, num2str(new_path)]);

else

disp(‘No rerouting required.’);

end

Step 8: Evaluate SD-WAN Performance

Estimate the performance of the SD-WAN by assessing the crucial parameters like:

  • Latency: The duration for packets to navigate the network.
  • Bandwidth Utilization: How much bandwidth used for each WAN link.
  • Packet Loss: The percentage of packets lost by reason of congestion or network failures.

% Function to calculate network performance metrics

function performance_metrics = evaluate_performance(latency, bandwidth_used, packet_loss)

performance_metrics.latency = latency;

performance_metrics.bandwidth_utilization = bandwidth_used;

performance_metrics.packet_loss = packet_loss;

end

% Example: Calculate performance metrics

packet_loss = 0.02;  % 2% packet loss

performance_metrics = evaluate_performance(latency, bandwidth_used, packet_loss);

disp([‘Network Latency: ‘, num2str(performance_metrics.latency), ‘ ms’]);

disp([‘Bandwidth Utilization: ‘, num2str(performance_metrics.bandwidth_utilization), ‘ seconds’]);

disp([‘Packet Loss: ‘, num2str(performance_metrics.packet_loss * 100), ‘%’]);

Step 9: Visualize Network Performance

Envision the SD-WAN performance parameters such as latency, bandwidth utilization, and rerouting events over time using MATLAB’s plotting tools.

% Example: Plot latency over time for multiple WAN links

time_steps = 1:10;

latency_mpls = wan_link_latency(1) + randn(1, 10);  % Simulated latency variation on MPLS

latency_broadband = wan_link_latency(2) + randn(1, 10);  % Simulated latency variation on broadband

figure;

plot(time_steps, latency_mpls, ‘r’, time_steps, latency_broadband, ‘b’);

legend(‘MPLS’, ‘Broadband’);

xlabel(‘Time Steps’);

ylabel(‘Latency (ms)’);

title(‘Latency Variation Over Time’);

Step 10: Advanced Features (Optional)

  1. Load Balancing: Execute the dynamic load balancing over WAN links rely on real-time traffic and link utilization.
  2. Failure Recovery: Replicate network link failures and experiment the SD-WAN’s ability to reroute traffic.
  3. Security Mechanisms: For encrypted communication, we can design secures tunnelling (e.g., IPsec) among the edge routers and the SD-WAN controller.
  4. Multipath Routing: Execute the multipath routing dividing traffic over distinct WAN links for redundancy and higher throughput.

Step 11: Run the Simulation

When every modules are configured then we execute the simulation under numerous network conditions like increasing traffic load, network failures, dynamic rerouting to estimate the SD-WAN’s performance.

The above manual have aggregated the valuable details that including snippet codes about how to simulate the Software-Defined Wide Area Network Projects to establish it in the MATLAB environment. We will attach further information on this topic later.

Our team oversees network traffic, dynamic routing, and the optimization of quality of service (QoS) for your projects. We are dedicated to offering customized support to meet your specific requirements. Reach out to us for exceptional expert advice and help. Discover the finest in Software-Defined Wide Area Network simulations and explore topics that intrigue you.

Opening Time

9:00am

Lunch Time

12:30pm

Break Time

4:00pm

Closing Time

6:30pm

  • award1
  • award2