Hi All, Our website moved to a new URL. Please bookmark the new link: https://ns2bloggers.blogspot.com/

Wednesday, 21 December 2016

SOFTWARE DEFINED NETWORKS (SDN) SIMULATION IN NS2

Hi,
  Today we are going to have a look on software defined network simulation. Before that I will explain what a software defined network means?

Software-defined networking (SDN) is an approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality. SDN is meant to address the fact that the static architecture of traditional networks doesn't support the dynamic, scalable computing and storage needs of more modern computing environments such as data centers. This is done by decoupling or disassociating the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward traffic to the selected destination (the data plane).
SDN was commonly associated with the OpenFlow protocol (for remote communication with network plane elements for the purpose of determining the path of network packets across network switches) since the latter's emergence in 2011. Since 2012, however, many companies have moved away from OpenFlow, and have embraced different techniques. These include Cisco Systems' Open Network Environment and Nicira's network virtualization platform.
SD-WAN applies similar technology to a wide area network (WAN).


Features of SDN:
  • It’s an open standards-based.
  • Pro-grammatically configured.
  • Directly programmable.
  • Centrally managed .
  • Agile.
Types of tiers in SDN architecture:
  • Application tier.
  • Control plane tier.
  • Infrastructure or Data-plane tier.
Benefits of SDN:
  • Deliver agility and flexibility.
  • Reduce capEx.
  • Enable innovation.
  • Reduce OpEx.
Sample Codes:


SDN::SDN(nsaddr_t id) : Agent(PT_SDN),btimer(this), htimer(this), ntimer(this),   rtimer(this), lrtimer(this), rqueue() {
                   
  index = id;
  seqno = 2;
  bid = 1;
   LIST_INIT(&nbhead);
  LIST_INIT(&bihead);
   logtarget = 0;
  ifqueue = 0;
  xpos=0.0;
  ypos=0.0;
  zpos=0.0;
  MobileNode *iNode;
 }
  
void
BroadcastTimer::handle(Event*) {
   agent->id_purge();
  Scheduler::instance().schedule(this, &intr, BCAST_ID_SAVE);
 }

void
HelloTimer::handle(Event*) {
    agent->sendHello();
   double interval = MinHelloInterval + 
                 ((MaxHelloInterval - MinHelloInterval) * Random::uniform());
   assert(interval >= 0);
   Scheduler::instance().schedule(this, &intr, interval);
}
  
void
NeighborTimer::handle(Event*) {
  agent->nb_purge();
  Scheduler::instance().schedule(this, &intr, HELLO_INTERVAL);
}
  
void
RouteCacheTimer::handle(Event*) {
  agent->rt_purge();
  Scheduler::instance().schedule(this, &intr, FREQUENCY);
 }

For sample video, Click here

5 comments :

  1. Can you please tell me how to execute SDN w.r.t fault tolerance using NS2

    ReplyDelete
  2. Awesome blog! I would like to say thank you to the author of this blog for taking more time and effort to share your knowledge about this topic I agree that your more knowledge about this field. Please keep up a good work and i'm looking forward for mor update soon. Please see my site below.
    C3ISW
    C2-Sim

    ReplyDelete
  3. I recently came across your blog and have been reading along. I thought I would leave my first comment. I don’t know what to say except that I have enjoyed reading. Nice blog, I will keep visiting this blog very often.

    ReplyDelete
  4. Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!THANKS!!!!!! bookmetoday.com

    ReplyDelete