NS-3 is an efficient simulation tool and it is determined as prominent SDN simulator. Explore the latest research on NS3 SDN through a comparative analysis using top papers from reputable journals this year. Don’t hesitate to collaborate with phddirection.com – we provide unique topics customized just for you! The following is a comparative analysis using NS-3. This assist you to know more about the simulation of NS-3:

Comparative Analysis Using ns-3

  1. Install ns-3 and Dependencies

It is advisable to make sure that ns-3 and the OpenFlow module are installed in an accurate manner.

# Clone the ns-3 repository

git clone https://gitlab.com/nsnam/ns-3-dev.git

cd ns-3-dev

# Configure and build ns-3

./waf configure –enable-examples –enable-tests

./waf build

  1. Network Topology Setup in ns-3

To specify the network topology, write a simulation script in Python or C++. The following is an instance employing C++ to contrast various SDN controllers.

Example: ns-3 C++ Script (sdn_comparison.cc)

#include “ns3/core-module.h”

#include “ns3/network-module.h”

#include “ns3/internet-module.h”

#include “ns3/openflow-module.h”

#include “ns3/applications-module.h”

using namespace ns3;

NS_LOG_COMPONENT_DEFINE (“SdnComparisonExample”);


int main (int argc, char *argv[])


    // Log Component

    LogComponentEnable (“SdnComparisonExample”, LOG_LEVEL_INFO);

    // Create network nodes

    NodeContainer hosts;

    NodeContainer switches;

    hosts.Create (4);

    switches.Create (2);

    // Install the Internet stack

    InternetStackHelper internet;

    internet.Install (hosts);

    // Create OpenFlow switches

    Ptr<Node> s1 = switches.Get (0);

    Ptr<Node> s2 = switches.Get (1);

    // Create OpenFlow controller

    Ptr<ofi::Controller> controller = CreateObject<ofi::Controller> ();

    ofi::SwitchHelper switchHelper;

    switchHelper.InstallSwitch (s1, controller);

    switchHelper.InstallSwitch (s2, controller);

    // Create network devices for hosts and switches

    NetDeviceContainer devices;

    PointToPointHelper p2p;

    p2p.SetDeviceAttribute (“DataRate”, StringValue (“1Gbps”));

    p2p.SetChannelAttribute (“Delay”, StringValue (“2ms”));

    // Links between hosts and switches

    for (int i = 0; i < 2; ++i)


        NetDeviceContainer link1 = p2p.Install (NodeContainer (hosts.Get (i), s1));

        NetDeviceContainer link2 = p2p.Install (NodeContainer (hosts.Get (i + 2), s2));

        devices.Add (link1);

        devices.Add (link2);


    // Link between switches

    NetDeviceContainer linkSw = p2p.Install (NodeContainer (s1, s2));

    devices.Add (linkSw);

    // Assign IP addresses to devices

    Ipv4AddressHelper ipv4;

    ipv4.SetBase (“”, “”);

    Ipv4InterfaceContainer interfaces = ipv4.Assign (devices);

    // Create applications

    uint16_t port = 9;  // Discard port (RFC 863)

    UdpEchoServerHelper echoServer (port);

    ApplicationContainer serverApps = echoServer.Install (hosts.Get (1));

    serverApps.Start (Seconds (1.0));

    serverApps.Stop (Seconds (10.0));

    UdpEchoClientHelper echoClient (interfaces.GetAddress (1), port);

    echoClient.SetAttribute (“MaxPackets”, UintegerValue (10));

    echoClient.SetAttribute (“Interval”, TimeValue (Seconds (1.0)));

    echoClient.SetAttribute (“PacketSize”, UintegerValue (1024));

    ApplicationContainer clientApps = echoClient.Install (hosts.Get (0));

    clientApps.Start (Seconds (2.0));

    clientApps.Stop (Seconds (10.0));

    // Enable network traffic tracing

    AsciiTraceHelper ascii;

    p2p.EnableAsciiAll (ascii.CreateFileStream (“sdn_comparison.tr”));

    // Run simulation

    NS_LOG_INFO (“Starting simulation…”);

    Simulator::Stop (Seconds (11.0));

    Simulator::Run ();

    Simulator::Destroy ();

    NS_LOG_INFO (“Simulation finished.”);


Build and Run the ns-3 Simulation

# Add the C++ file to ns-3 examples

cp sdn_comparison.cc ns-3-dev/examples/openflow/sdn_comparison.cc

# Edit the wscript file

nano ns-3-dev/examples/openflow/wscript

# Add this line to wscript

(‘sdn_comparison’, [‘sdn_comparison.cc’])

# Build ns-3

cd ns-3-dev

./waf configure

./waf build

# Run the simulation

./waf –run sdn_comparison

  1. Performance Metrics Analysis

You can seize the following parameters to examine network effectiveness:

  1. Throughput:
  • By employing an application such as UDP Echo, calculate the data transfer.
  • Otherwise, through iperf aim to simulate throughput.
  1. Latency:
  • Between packet transmission and reception, compute the time latency.
  1. Packet Loss:
  • The percentage of packets lost at the time of transmission has to be defined.
  1. Flow Table Size and Rule Management:
  • Focus on tracking the flow table entries and assess rule management.
  1. Controller Response Time:
  • To process and install flow regulations, calculate the time taken by the controller.
  1. Comparative Analysis Report

Sample Structure

  1. Introduction:
  • Offer contextual information on SDN and the relevance of performance analysis.
  1. Network Topology and Setup:
  • Diagram or explanation of the topology has to be provided.
  • In this step, description of simulation arrangement is encompassed.
  1. Performance Metrics:
  • Throughput: Contrasting controller effectiveness, by representing graphs/tables.
  • Latency: Graphs/tables are encompassed to exhibit packet delay.
  • Packet Loss: Display bar chart of loss percentage among settings.
  • Controller Response Time: By means of boxplot contrasting rule processing times.
  1. Analysis and Insights:
  • Typically, the comparison of various controllers such as Floodlight vs. Ryu vs. ODL are described in this section.
  • Provides the detected enhancements or blockages.
  • Mainly, for improvement suitable suggestions have to be offered.
  1. Conclusion:
  • The outline of outcomes has to be offered in the conclusion segment.
  • For upcoming research, it is better to provide beneficial recommendations.
  1. References:
  • In this section, mention related documents or papers.

What are the SDN simulators currently available? Any ideas?

There are several SDN simulators, but some are recently available. We offer a classified collection of prevalent SDN simulators and emulators, together with their major characteristics and application areas:

  1. Mininet
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • This simulator has the capability to develop virtual networks on a single machine.
  • For OpenFlow and external SDN controllers, it is assistive.
  • It enabled CLI and Python API for network control.
  • Application Areas:
  • Specifically, in rapid modelling and examining of the SDN applications, Mininet is employed.
  • Installation:

sudo apt-get install mininet

  • Website: Mininet
  1. ns-3
  • Type: Simulator
  • Language: Python, C++
  • Major Characteristics:
  • NS-3 is examined as a discrete-event network simulator.
  • It provides OpenFlow support by means of the openflow-switch module.
  • NS-3 enables the combination with external SDN controllers such as POX and Ryu.
  • Application Areas:
  • It is utilized in protocol study and extensive network simulation.
  • Installation:

git clone https://gitlab.com/nsnam/ns-3-dev.git

cd ns-3-dev

./waf configure && ./waf build

  • Website: ns-3
  1. EstiNet
  • Type: Simulator, Emulator
  • Language: C++
  • Major Characteristics:
  • Generally, EstiNet is examined as a commercial-graded SDN network simulator and emulator.
  • It assists OpenFlow controllers such as Floodlight, ONOS, ODL.
  • EstinNet facilitates GUI-related topology development and traffic exploration.
  • Application Areas:
  • EstiNet is employed in extensive network study and commercial-grade testing.
  • Website: EstiNet
  1. GNS3
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • GNS3 is a graphical network simulator and emulator.
  • It enables VirtualBox/QEMU incorporation for virtual hosts.
  • GNS3 supports the emulation of switches and routers with SDN controllers.
  • Application Areas:
  • In actual-world network simulation and emulation, GNS3 is used.
  • Installation:

sudo add-apt-repository ppa:gns3/ppa

sudo apt-get update

sudo apt-get install gns3-gui gns3-server

  • Website: GNS3
  1. CORE (Common Open Research Emulator)
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • For wired and wireless networks, CORE is determined as a lightweight emulator.
  • It enables Python API for custom topology development.
  • Offers SDN assistance through OpenFlow and external controllers.
  • Application Areas:
  • CORE is employed in the study of SDN-enabled mobile and wireless networks.
  • Installation:

sudo apt-get install core

  • Website: CORE
  1. Containernet
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • Along with Docker container support, Containernet is a Mininet extension.
  • For external SDN controllers, it is helpful.
  • It enables the integration of containers and virtual switches.
  • Application Areas:
  • In SDN-based cloud-native applications, it is employed.
  • Containernet is used in Multi-cloud structures.
  • Installation:

git clone https://github.com/containernet/containernet.git

cd containernet

sudo ./install.sh

  • Website: Containernet
  1. OFNet
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • OFNet which is an SDN network emulator is formulated for extensive testing.
  • It facilitates REST API for network control.
  • OFNeT offers support for traffic tracking and analysis tools.
  • Application Areas:
  • OFNet is utilized in emulating cloud-scale data center networks.
  • Employed in the study of SDN-based traffic engineering.
  • Website: OFNet
  1. ONOS Simulator
  • Type: Simulator
  • Language: Java
  • Major Characteristics:
  • ONOS is examined as a network simulator for the ONOS SDN controller.
  • It facilitates the simulation of extensive network topologies.
  • For OpenFlow, P4, it is assistive.
  • Application Areas:
  • ONOS is utilized in the study of ONOS-based network applications.
  • Employs in examining ONOS SDN applications and network strategies.
  • Website: ONOS
  1. EmuNet
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • It provides support for combining with Mininet and external controllers.
  • For traffic tracking and analysis tools, it is supportive.
  • It enables REST API for network arrangement.
  • Application Areas:
  • In the study of SDN-based traffic analysis, EmuNet is used.
  • This emulator is utilized in emulating extensive network platforms.
  1. SDN Playground
  • Type: Emulator
  • Language: Python
  • Major Characteristics:
  • It assists external controllers such as Ryu and POX.
  • SDN Playground offers an adaptable SDN testbed for testing with controllers.
  • Application Areas:
  • This emulator is employed in academic usages and modelling SDN applications.

Summary Table


Best Use Case

OpenFlow Support



Network prototyping and SDN testing




Protocol simulation and SDN integration




Commercial-grade network research




Real-world network emulation




Wireless network emulation




SDN and Docker-based cloud-native applications




Large-scale network emulation



ONOS Simulator

Research on ONOS applications




SDN traffic analysis



SDN Playground

Educational SDN applications



 Selecting the Right Tool

  • Beginners: For simpler arrangement and learning curve, begin with CORE or Mininet.
  • Advanced Research: Specifically, for extensive SDN experimentations, determine EstiNet or ns-3.
  • Real-World Emulation: It is beneficial to utilize OFNet, Containernet, or GNS3.
NS3 SDN Thesis Topics


Explore the NS3 SDN simulation concepts and themes along with effective methods and algorithms provided on this page. Let us help you complete your project with high-quality service at a reasonable price. We guarantee timely delivery of all your work. Reach out to our support team for quick assistance.

  1. Detecting DDoS attacks in software-defined networks through feature selection methods and machine learning models
  2. OpenQoS: An OpenFlow controller design for multimedia delivery with end-to-end Quality of Service over Software-Defined Networks
  3. Implementing quality of service for the software defined networking enabled future internet
  4. Network traffic classification using machine learning techniques over software defined networks
  5. SD-Anti-DDoS: Fast and efficient DDoS defense in software-defined networks
  6. Zoning for hierarchical network optimization in software defined networks
  7. Dynamic routing for network throughput maximization in software-defined networks
  8. Enhanced method of fast re-routing with load balancing in software-defined networks
  9. Flow wars: Systemizing the attack surface and defenses in software-defined networks
  10. QoS-aware adaptive routing in multi-layer hierarchical software defined networks: A reinforcement learning approach
  11. TimeoutX: An adaptive flow table management method in software defined networks
  12. Development of a distributed firewall using software defined networking technology
  13. Cyberpulse: A machine learning based link flooding attack mitigation system for software defined networks
  14. Performance modelling and analysis of software-defined networking under bursty multimedia traffic
  15. Cab: A reactive wildcard rule caching system for software-defined networks
  16. Software defined networking, caching, and computing for green wireless networks
  17. Publish/subscribe-enabled software defined networking for efficient and scalable IoT communications
  18. QoS improvement with an optimum controller selection for software-defined network
  19. An improved network security situation assessment approach in software defined networks
  20. Edge computing in the industrial internet of things environment: Software-defined-networks-based edge-cloud interplay

Why Work With Us ?

Senior Research Member Research Experience Journal
Research Ethics Business Ethics Valid
Explanations Paper Publication
9 Big Reasons to Select Us
Senior Research Member

Our Editor-in-Chief has Website Ownership who control and deliver all aspects of PhD Direction to scholars and students and also keep the look to fully manage all our clients.

Research Experience

Our world-class certified experts have 18+years of experience in Research & Development programs (Industrial Research) who absolutely immersed as many scholars as possible in developing strong PhD research projects.

Journal Member

We associated with 200+reputed SCI and SCOPUS indexed journals (SJR ranking) for getting research work to be published in standard journals (Your first-choice journal).

Book Publisher

PhDdirection.com is world’s largest book publishing platform that predominantly work subject-wise categories for scholars/students to assist their books writing and takes out into the University Library.

Research Ethics

Our researchers provide required research ethics such as Confidentiality & Privacy, Novelty (valuable research), Plagiarism-Free, and Timely Delivery. Our customers have freedom to examine their current specific research activities.

Business Ethics

Our organization take into consideration of customer satisfaction, online, offline support and professional works deliver since these are the actual inspiring business factors.

Valid References

Solid works delivering by young qualified global research team. "References" is the key to evaluating works easier because we carefully assess scholars findings.


Detailed Videos, Readme files, Screenshots are provided for all research projects. We provide Teamviewer support and other online channels for project explanation.

Paper Publication

Worthy journal publication is our main thing like IEEE, ACM, Springer, IET, Elsevier, etc. We substantially reduces scholars burden in publication side. We carry scholars from initial submission to final acceptance.

Related Pages

Our Benefits

Throughout Reference
Confidential Agreement
Research No Way Resale
Publication Guarantee
Customize Support
Fair Revisions
Business Professionalism

Domains & Tools

We generally use




Support 24/7, Call Us @ Any Time

Research Topics
Order Now