SDN SIMULATOR

In Mininet, developing a SDN simulation model is not an easy approach, it requires moving on with the process in a gradual manner. A systematic guide with the application of Mininet and a basic Python application as a SDN controller is exhibited in this article for guiding you in simulating the SDN framework in Mininet:

SDN Simulation Model in Mininet

Step 1: State the Network Topology

By using numerous switches and hosts, design a Mininet topology.

  • Python Script for Network Topology (sdn_topology.py):

# sdn_topology.py

From mininet.net import Mininet

From mininet.node import RemoteController, OVSSwitch

From mininet.cli import CLI

From mininet.log import setLogLevel

Def sdn_topology ():

# Initialize Mininet network

Net = Mininet (controller=RemoteController, switch=OVSSwitch)

# Add a remote SDN controller

net.addController (‘c0′, controller=RemoteController, ip=’127.0.0.1’, port=6633)

# add switches and host

s1 = net.addSwitch (‘s1’)

s2 = net.addSwitch (‘s2’)

h1 = net.addHost (‘h1′, ip=’10.0.0.1’)

h2 = net.addHost (‘h2′, ip=’10.0.0.2’)

h3 = net.addHost (‘h3′, ip=’10.0.0.3’)

h4 = net.addHost (‘h4′, ip=’10.0.0.4’)

# create links between switches and hosts

net.addLink (h1, s1)

net.addLink (h2, s1)

net.addLink (h3, s2)

net.addLink (h4, s2)

# Create a link between the two switches

net.addLink (s1, s2)

# Start the network

net.start ()

CLI (net)

Net. Stop ()

If __name__ == ‘__main__’:

SetLogLevel (‘info’)

sdn_topology ()

  • Configure the Mininet Topology:

Sudo python3 sdn_topology.py

Step 2: Execute a Simple SDN Controller

To manage packet forwarding, use POX or Ryu to design a SDN controller application.

  • Ryu Controller Application (simple_switch.py):

# simple_switch.py

From ryu.base import app_manager

From ryu.controller import ofp_event

From ryu.controller.handler import MAIN_DISPATCHER, set_ev_cls

From ryu.ofproto import ofproto_v1_3

From ryu.lib.packet import packet, ethernet

Class SimpleSwitch (app_manager.RyuApp):

OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]

Def __init__ (self, *args, **kwargs):

Super (SimpleSwitch, self).__init__(*args, **kwargs)

self.mac_to_port = {}

@set_ev_cls (ofp_event.EventOFPSwitchFeatures, MAIN_DISPATCHER)

Def switch_features_handler (self, ev):

Datapath = ev.msg.datapath

Ofproto = datapath.ofproto

Parser = datapath.ofproto_parser

Match = parser.OFPMatch ()

Actions = [parser.OFPActionOutput (ofproto.OFPP_CONTROLLER, ofproto.OFPCML_NO_BUFFER)]

self.add_flow (datapath, 0, match, actions)

Def add_flow (self, datapath, priority, match, actions, and buffer_id=none):

Ofproto = datapath.ofproto

Parser = datapath.ofproto_parser

inst = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, actions)]

If buffer_id:

Mod = parser.OFPFlowMod (datapath=datapath, buffer_id=buffer_id, priority=priority, match=match, instructions=inst)

Else:

Mod = parser.OFPFlowMod (datapath=datapath, priority=priority, match=match, instructions=inst)

datapath.send_msg (mod)

@set_ev_cls (ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)

Def packet_in_handler (self, ev):

Msg = ev.msg

Datapath = msg.datapath

Ofproto = datapath.ofproto

Parser = datapath.ofproto_parser

in_port = msg.match [‘in_port’]

Pkt = packet.Packet (msg.data)

Eth = pkt.get_protocols (ethernet.ethernet)[0]

DST = eth.dst

Src = eth.src

Dpid = datapath.id

self.mac_to_port.setdefault (dpid, {})

self.mac_to_port [dpid][src] = in_port

If DST in self.mac_to_port [dpid]:

out_port = self.mac_to_port [dpid][dst]

Else:

out_port = ofproto.OFPP_FLOOD

Actions = [parser.OFPActionOutput (out_port)]

If out_port! = ofproto.OFPP_FLOOD:

Match = parser.OFPMatch (in_port=in_port, eth_dst=dst)

self.add_flow (datapath, 1, match, actions)

Data = None

If msg.buffer_id == ofproto.OFP_NO_BUFFER:

Data = msg.data

Out = parser.OFPPacketOut (datapath=datapath, buffer_id=msg.buffer_id, in_port=in_port, actions=actions, data=data)

datapath.send_msg (out)

  • Run the Ryu Controller:

Ryu-manager simple_switch.py

Step 3: Formulate Traffic Patterns

Formulate traffic patterns by implementing Mininet’s CLI commands or  conventional Python programs.

Traffic Generation Commands:

  • Ping All Hosts:

Mininet> pingall

  • Evaluate Latency between Two Hosts:

Mininet> h1 ping -c 10 h2

  • Assess Throughput Using iperf:

On h1, begin the iperf server

Mininet> h1 iperf –s

On h2, initiate the iperf client

Mininet> h2 iperf -c h1

  • Automate Traffic Generation Using Python Script (traffic_test.py):

# traffic_test.py

From mininet.net import Mininet

From mininet.node import RemoteController, OVSSwitch

From mininet.log import setLogLevel

Def traffic_test ():

# Initialize Mininet network

Net = Mininet (controller=RemoteController, switch=OVSSwitch)

# Add a remote SDN controller

net.addController (‘c0′, controller=RemoteController, ip=’127.0.0.1’, port=6633)

# add switches and hosts

s1 = net.addSwitch (‘s1’)

s2 = net.addSwitch (‘s2’)

h1 = net.addHost (‘h1′, ip=’10.0.0.1’)

h2 = net.addHost (‘h2′, ip=’10.0.0.2’)

h3 = net.addHost (‘h3′, ip=’10.0.0.3’)

h4 = net.addHost (‘h4′, ip=’10.0.0.4’)

# create links between switches and hosts

net.addLink (h1, s1)

net.addLink (h2, s1)

net.addLink (h3, s2)

net.addLink (h4, s2)

net.addLink (s1, s2)

# Start the network

net.start ()

# generate traffic patterns

h1 = net.get (‘h1’)

h2 = net.get (‘h2’)

h3 = net.get (‘h3’)

h4 = net.get (‘h4’)

# Ping test between hosts

h1.cmd (‘ping -c 5 10.0.0.2’)

h1.cmd (‘ping -c 5 10.0.0.3’)

h1.cmd (‘ping -c 5 10.0.0.4’)

# Throughput test using iperf

h1.cmd (‘iperf -s -i 1 > h1_server.log &’)

h2.cmd (‘iperf -c 10.0.0.1 -t 10 -i 1 > h2_client.log’)

# Stop the network

Net. Stop ()

if __name__ == ‘__main__’:

SetLogLevel (‘info’)

traffic_test ()

  • Execute the Automated Traffic Test:

Sudo python3 traffic_test.py

Step 4: Gather and Evaluate Results

Evaluating the iperf Logs:

Throughput outcomes need to be examined.

  • Verify Throughput Results:

Cat h2_client.log

  • Verify ping Results:

Tail -n 10 ping_results log

What are some cool projects that make use of software defined radio?

For assessing the modulation and demodulation of radio signals, SDR (Software Defined Radio) is a specifically designed radio communication system which applies specific software. Based on SDR, some of the trending and intriguing project concepts are suggested by us:

  1. FM Radio Station: To develop your custom FM radio station, deploy SDR. By means of FM radio frequencies, modify the audio signals and transfer them that could be received through any standard radio, as this research includes the configuration of SDR.
  2. Aircraft Tracking with ADS-B: Data such as altitude, position and speed on a frequency of 1090 MHz are transmitted through the aircraft transponders. To monitor the aircraft practically, you can deploy SDN to receive those signals. For visualizing the flight routes, it could be synthesized with mapping software.
  3. Radio Astronomy: As regards the simple radio astronomy deployments as an example, at specific frequencies, observing the noise from Jupiter or Sun, SDR could be highly adaptable. On the basis of crucial space phenomena and the activities of these astronomical bodies, it might assist you in further investigation.
  4. Weather Satellite Image Reception: From weather satellites like METEOR and NOAA, derive images rapidly with the help of SDR. To acquire actual-time weather images and data, these satellites transfer APT (Automatic Picture Transmission) signals that might be decoded.
  5. GSM Network Sniffing: SDR is efficiently applied to interpret the function of cellular networks and analyze the GSM signal spectrum with the proper legal access. Examine traffic and clarify the data which is transferred without any wires by incorporating the sniffing GSM frequencies.
  6. Ham Radio Digital Modes: In ham radio, investigate the employed diverse digital communication modes like PSK31, FT8 or JT65. Among these modes, SDR makes the switch process simpler and examines further about digital communication.
  7. RFID Reader and Analysis: To interpret and evaluate RFID frequencies, deploy SDR. How the RFID tags and readers perform is clearly explained through this research and you can also examine various kinds of RFID applications.
  8. Signal Jamming and Interference Analysis: Conduct an extensive research and interpretation of RF signal interference, in what way the signals are blocked and how to overcome these issues. In business industries as well as defense applications, it is considered as a significant area of study.
  9. Spectrum Monitoring: For actual-time spectrum analysis and supervising, make use of SDR. Considering the specific areas, spectrum monitoring is beneficial for the process of entire management of the RF spectrum, identifying the illicit transmissions and detection of unoccupied frequency.
  10. Emergency Communication Systems: Specifically in fields where conventional communication architecture is inaccessible or impaired this research involves developing a SDR-based system which might be applied for emergency warning systems.

SDN Simulator Topics

SDN Simulator Projects

The SDN Simulator Projects listed above have been made available for scholars at all academic levels by phdtopic.com. This unique company specializes in offering innovative research topics tailored to your specific areas of interest. Feel free to reach out to our team for personalized support and further information.

  1. Flow-based anomaly intrusion detection using machine learning model with software defined networking for OpenFlow network
  2. Scalable multicasting with multiple shared trees in software defined networking
  3. Traffic engineering framework with machine learning based meta-layer in software-defined networks
  4. Managing IoT-based smart healthcare systems traffic with software defined networks
  5. Service-aware adaptive link load balancing mechanism for Software-Defined Networking
  6. Improving QoS in real-time internet applications: from best-effort to Software-Defined Networks
  7. Flexible network-based intrusion detection and prevention system on software-defined networks
  8. An intelligent software defined network controller for preventing distributed denial of service attack
  9. Flooding DDoS mitigation and traffic management with software defined networking
  10. Trends on virtualisation with software defined networking and network function virtualisation
  11. Deep packet inspection based application-aware traffic control for software defined networks
  12. Deep reinforcement learning based smart mitigation of DDoS flooding in software-defined networks
  13. Technology-related disasters: A survey towards disaster-resilient software defined networks
  14. Abstracting network state in Software Defined Networks (SDN) for rendezvous services
  15. Future space-based communications infrastructures based on high throughput satellites and software defined networking
  16. Survivable virtual infrastructure mapping with dedicated protection in transport software-defined networks
  17. BlockCSDN: towards blockchain-based collaborative intrusion detection in software defined networking
  18. Deep reinforcement learning for the management of software-defined networks and network function virtualization in an edge-IoT architecture
  19. Reliability-based controller placement algorithm in software defined networking
  20. Optimal network reconfiguration for software defined networks using shuffle-based online MTD