Software Defined Networking (SDN) is an important as well as efficient approach. There are several research areas and topics based on SDN. The following are some important SDN-based research areas, along with explanation, suitable protocols, and procedures for implementation: 

Quality of Service (QoS) with OpenFlow

  • Explanation: For SDN networks, a QoS policy architecture has to be applied with the support of OpenFlow.
  • Protocols:
    • OpenFlow:
      • Version: OpenFlow 1.3
      • Characteristics: Queues and flow meters.
    • REST API:
      • To develop QoS Strategies and track performance, this protocol is highly appropriate.
    • Procedures:
  1. Several traffic categories have to be described with various QoS specifications.
  2. With queueing and metering, OpenFlow flow regulations must be applied.
  3. For policy handling, create a REST API.
  4. Employ flow statistics to track QoS adherence.

# Example OpenFlow rule with meter

# Flow match with specific QoS class

flow = {

    ‘match’: {

        ‘ip_proto’: 6,  # TCP protocol

        ‘ip_dscp’: 46  # EF DSCP

    },

    ‘actions’: [

        {

            ‘type’: ‘meter’,

            ‘meter_id’: 1

        },

        {

            ‘type’: ‘output’,

            ‘port’: 1

        }

    ]

}

Intent-Based Networking (IBN) with RESTCONF and NETCONF

  • Explanation: Utilize NETCONF and RESTCONF protocols for developing an intent-based networking application.
  • Protocols:
    • RESTCONF:
      • Standard: IETF RFC 8040.
      • Characteristics: Network arrangement on the basis of JSON.
    • NETCONF:
      • Standard: IETF RFC 6241.
      • Characteristics: For network device arrangement, it supports YANG frameworks.
    • Procedures:
  1. With the aid of RESTCONF, specify network intents such as latency or bandwidth necessities.
  2. It is important to convert specified intents into YANG/NETCONF arrangements.
  3. Through NETCONF, stimulate arrangements to SDN devices.
  4. Employ actual-time telemetry to validate intent adherence.

{

  “intent”: {

    “name”: “high-bandwidth”,

    “bandwidth”: “100Mbps”,

    “latency”: “5ms”

  }

}

Segment Routing (SR) with MPLS and OpenFlow

  • Explanation: Through the utilization of OpenFlow and MPLS labels, apply segment routing.
  • Protocols:
    • MPLS:
      • Protocol: Multiprotocol Label Switching (RFC 3031).
      • Characteristics: For segment routing, it provides label stacking.
    • OpenFlow:
      • Version: OpenFlow 1.4
      • Characteristics: Alignment and alteration of MPLS label.
    • Procedures:
  1. On OpenFlow switches, facilitate MPLS assistance.
  2. Utilize MPLS labels to execute the development of SR strategy.
  3. For SR paths, OpenFlow flow regulations must be developed.
  4. Employ telemetry for tracking SR paths efficiency.

# Example OpenFlow rule for MPLS segment routing

flow = {

    ‘match’: {

        ‘mpls_label’: 1001

    },

    ‘actions’: [

        {

            ‘type’: ‘pop_mpls’

        },

        {

            ‘type’: ‘output’,

            ‘port’: 2

        }

    ]

}

SDN-based DDoS Detection and Mitigation

  • Explanation: To identify and reduce DDoS assaults with the aid of OpenFlow, create an efficient SDN application.
  • Protocols:
    • OpenFlow:
      • Version: OpenFlow 1.5
      • Characteristics: It includes flow statistics and packet-in messages.
    • REST API:
      • It is very helpful to reveal identification and reduction regulations.
    • Procedures:
  1. Through the use of OpenFlow, a traffic monitoring system has to be applied.
  2. Utilize flow statistics for identifying abnormalities in network traffic.
  3. It is approachable to implement reduction policies such as traffic rate-limiting.
  4. To handle identification and reduction regulations, create a REST API.

# Example OpenFlow rule for rate-limiting DDoS traffic

flow = {

    ‘match’: {

        ‘ip_proto’: 17,  # UDP protocol

        ‘ipv4_src’: ‘192.168.1.0/24’

    },

    ‘actions’: [

        {

            ‘type’: ‘meter’,

            ‘meter_id’: 1

        },

        {

            ‘type’: ‘output’,

            ‘port’: 3

        }

    ]

}

Network Slicing with OpenFlow and VLANs

  • Explanation: For traffic isolation, develop network slices by employing VLANS and OpenFlow.
  • Protocols:
    • OpenFlow:
      • Version: OpenFlow 1.3
      • Characteristics: Labeling and aligning VLAN.
    • VLAN:
      • Standard: IEEE 802.1Q.
      • Characteristics: Traffic isolation on the basis of VLAN ID.
    • Procedures:
  1. For various network slices, describe VLANs.
  2. To separate traffic into VLANs, implement OpenFlow regulations.
  3. Specifically for inter-VLAN interaction, develop OpenFlow flow regulations.
  4. Employ flow statistics to track traffic for each slice.

# Example OpenFlow rule for VLAN tagging

flow = {         

    ‘match’: {

        ‘in_port’: 1

    },

    ‘actions’: [

        {

            ‘type’: ‘push_vlan’,

            ‘vlan_id’: 10

        },

        {

            ‘type’: ‘output’,

            ‘port’: 2

        }

    ]

}

SDN-based Path Computation with PCEP and OpenFlow

  • Explanation: With the support of OpenFlow and Path Computation Element Protocol (PCEP), apply a path computation engine.
  • Protocols:
    • PCEP:
      • Protocol: RFC 5440.
      • Characteristics: Path computation queries and responses are encompassed.
    • OpenFlow:
      • Version: OpenFlow 1.5
      • Characteristics: It involves meter tables and flow groups.
    • Procedures:
  1. For determining the best network paths, create a PCE.
  2. By means of PCEP, interact path computation queries.
  3. To implement determined paths, the OpenFlow flow regulations have to be installed.
  4. Utilize telemetry data for tracking path usage.

{

  “pcep-request”: {

    “source”: “10.0.0.1”,

    “destination”: “10.0.0.2”,

    “bandwidth”: “50Mbps”

  }

}

Time-Sensitive Networking (TSN) with OpenFlow

  • Explanation: Particularly for ensuring certain latency, apply time-sensitive networking through the use of OpenFlow.
  • Protocols:
    • OpenFlow:
      • Version: OpenFlow 1.4
      • Characteristics: Time-related flow scheduling and meter tables are the general features.
    • IEEE 802.1Q:
      • Characteristics: Traffic isolation in terms of VLAN preference.
    • Procedures:
  1. Use time-related flow scheduling to apply OpenFlow regulations.
  2. Consider preference sequences to develop VLANs.
  3. For time-aware flows, track traffic latency.
  4. Especially for TSN strategy handling, create a REST API.

# Example OpenFlow rule for TSN traffic priority

flow = {

    ‘match’: {

        ‘ip_dscp’: 46  # Expedited Forwarding (EF) DSCP

    },

    ‘actions’: [

        {

            ‘type’: ‘output’,

            ‘port’: 1

        }

    ]

}

Machine Learning-based Traffic Classification in SDN

  • Explanation: In SDN networks, categorize network traffic by creating a machine learning framework.
  • Protocols:
    • OpenFlow:
      • Version: OpenFlow 1.3
      • Characteristics: Supports packet-in messages and flow statistics.
    • REST API:
      • It is appropriate to disclose handling regulations and categorization outcomes.
    • Procedures:
  1. Employ OpenFlow flow statistics to gather network traffic data.
  2. For traffic categorization, a machine learning framework has to be trained.
  3. On the basis of traffic categorization, implement flow regulations.
  4. Particularly for traffic categorization handling, create a REST API.

# Example OpenFlow rule for classified traffic

flow = {

    ‘match’: {

        ‘tcp_dst’: 80,  # HTTP traffic

        ‘ip_proto’: 6   # TCP protocol

    },

    ‘actions’: [

        {

            ‘type’: ‘output’,

            ‘port’: 1

        }

    ]

}

Common Execution Instructions

  • Controller Chosen: Initially, a suitable SDN controller (such as POX, Ryu, OpenDaylight, etc) must be selected.
  • Tracking and Telemetry: With the help of network telemetry, apply actual-time tracking.
  • REST API Creation: For policy handling and arrangement, present REST APIs.

What is the simplest and easiest way to implement a software Defined Network SDN project?

Execution of software defined networking (SDN) projects is considered as a significant process, which encompasses several major guidelines. It is also approachable to employ the integration of below specified tools for executing an SDN project in an efficient and simplest manner:

  1. SDN Emulator: To develop a virtual network topology, Mininet is highly appropriate.
  2. SDN Controller: Plan to utilize a lightweight python-related SDN controller such as POX.
  3. Programming Language: For quick modeling and creation, Python language is more ideal.

Brief Summary: SDN Project in POX and Mininet

  1. Mininet: Using hosts and switches, Mininet develops a virtual network.
  2. POX Controller: By means of Python applications, it executes network logic.
  3. OpenFlow: To regulate the Mininet’s switches, OpenFlow protocol supports a POX controller.

Procedural Instructions

  1. Install Mininet and POX

Install Mininet

# On Ubuntu 20.04+

sudo apt-get update

sudo apt-get install mininet –y

Install POX

# Clone the POX repository

git clone https://github.com/noxrepo/pox.git

# Navigate to the POX directory

cd pox

  1. Develop a Mininet Topology

By utilizing the Mininet CLI, a basic topology has to be developed, along with two hosts and one switch. 

# Launch Mininet with one switch and two hosts

sudo mn –topo single,2 –mac –controller remote –switch ovsk

On the other hand, the topology can be saved in a Python script (simple_topology.py): 

from mininet.net import Mininet

from mininet.node import RemoteController

from mininet.cli import CLI

from mininet.log import setLogLevel

def simple_topology():

    net = Mininet(controller=RemoteController)

    # Add a remote controller

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

    # Add hosts and switch

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

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

    s1 = net.addSwitch(‘s1’)

    # Add links between switch and hosts

    net.addLink(h1, s1)

    net.addLink(h2, s1)

    # Start the network

    net.start()

    CLI(net)

    net.stop()

if __name__ == ‘__main__’:

    setLogLevel(‘info’)

    simple_topology()

  1. Apply a Basic POX Controller

A python application file simple_switch.py must be developed in the pox directory:

# pox/simple_switch.py

from pox.core import core

import pox.openflow.libopenflow_01 as of

log = core.getLogger()

class SimpleSwitch(object):

    def __init__(self):

        # Listen for new switch connections

        core.openflow.addListeners(self)

    def _handle_ConnectionUp(self, event):

        # New switch connection

        log.info(“Switch %s connected” % (event.connection,))

    def _handle_PacketIn(self, event):

        # Incoming packet

        packet = event.parsed

        # Create an output action to forward packets to the right port

        msg = of.ofp_packet_out()

        msg.data = event.data

        action = of.ofp_action_output(port=of.OFPP_FLOOD)        msg.actions.append(action)        event.connection.send(msg)

def launch():    core.registerNew(SimpleSwitch)

  1. Execute POX and Mininet

Initiate POX Controller

# In the POX directory

./pox.py log.level –DEBUG simple_switch

Initiate Mininet Topology

In the case of utilizing Mininet CLI:

sudo mn –topo single,2 –mac –controller remote –switch ovsk

In the case of employing Python script:

sudo python3 simple_topology.py

  1. Assess Connectivity

Assess Ping among hosts

# In Mininet CLI

mininet> pingall

Supplementary Characteristics to Enlarge Your Project

  1. Apply Flow-Based Routing
  • To append flow-based routing regulations, alter simple_switch.py.

def _handle_PacketIn(self, event):

    packet = event.parsed

    in_port = event.port

    if packet.dst.is_multicast:

        action = of.ofp_action_output(port=of.OFPP_FLOOD)

    else:

        # Use a hardcoded rule to route packets

        out_port = 1 if in_port == 2 else 2

        action = of.ofp_action_output(port=out_port)

        # Add flow rule for future packets

        msg = of.ofp_flow_mod()

        msg.match = of.ofp_match.from_packet(packet, in_port)        msg.actions.append(action)        event.connection.send(msg)

    msg = of.ofp_packet_out()

    msg.data = event.data

    msg.actions.append(action)

    event.connection.send(msg)

  1. REST API for Network Handling
  • For dynamic flow regulation arrangement, append the endpoints of REST API to the POX controller.
  1. Traffic Monitoring and Analytics
  • Through the utilization of POX’s openflow.of_01 statistics messages, track network traffic.
SDN Project Thesis Topics

SDN Project Topics

Current popular SDN project topics are outlined below. For further updates, please refer to our work and reach out to us. Publishing your research paper is a seamless process with the phdservices.org team supporting you. With over 17 years of experience in this field, our expert team is available to address any queries you may have. Rely on our guidance and support to achieve high grades effortlessly.

  1. Scalability of control planes for software defined networks: Modeling and evaluation
  2. Load balancing mechanisms in the software defined networks: a systematic and comprehensive review of the literature
  3. When big data meets software-defined networking: SDN for big data and big data for SDN
  4. How can edge computing benefit from software-defined networking: A survey, use cases, and future directions
  5. Using software defined networking to manage and control IEC 61850-based systems
  6. A literature review on software-defined networking (SDN) research topics, challenges and solutions
  7. Software-defined networking: A perspective from within a service provider environment
  8. Software defined networking and virtualization for broadband satellite networks
  9. A security and trust framework for virtualized networks and software‐defined networking
  10. Virtual routers as a service: the routeflow approach leveraging software-defined networks
  11. Rethinking end-to-end congestion control in software-defined networks
  12. Optimizing rule placement in software-defined networks for energy-aware routing
  13. Artificial intelligence enabled software‐defined networking: a comprehensive overview
  14. Enabling Practical Software-defined Networking Security Applications with OFX.
  15. Software-defined networking for smart grid communications: Applications, challenges and advantages
  16. A survey on software-defined networking in vehicular ad hoc networks: Challenges, applications and use cases
  17. PolicyCop: An autonomic QoS policy enforcement framework for software defined networks
  18. Revisiting routing control platforms with the eyes and muscles of software-defined networking
  19. Securing the internet of things in the age of machine learning and software-defined networking
  20. Optimal model for the controller placement problem in software defined networks

Important Research Topics