Shortest Path Routing in Ns2

Shortest Path Routing in Ns2 also refers to the process of finding paths through a network also that have a minimum of distance or other cost metric.

What is shortest-path-routing?

  • In general it could also a function of distance, bandwidth, average traffic, communication cost, mean queue length, and also measure delay, router processing speed, etc.
  • Routing of data packets on the Internet is also an example involving millions of routers in a complex, worldwide, also in multilevel network. Optimum routing also on the Internet has a major impact on performance and cost.

Different ways to Identify shortest path-routing-in ns-2.

  • Transmission and also propagation delays.
  • Queuing delays.
  • Minimum number of hops.

Key Algorithm used in Shortest-Path-routing in Ns-2

Distance vector routing
Link State routing

Architecture-of-Shortest-Path-Routing-algorithm

Architecture-of-Shortest-Path-Routing-algorithm

Sample code for Shortest Path Routing in Ns2.

void  DSDV_Agent::tracepkt (Packet * p, double now, int me, const char *type)
{
  char buf[1024];

  unsigned char *walk = p->accessdata ();

  int ct = *(walk++);
  int seq, dst, met;

  snprintf (buf, 1024, "V%s %.5f _%d_ [%d]:", type, now, me, ct);
  while (ct--)
    {
      dst = *(walk++);
      dst = dst << 8 | *(walk++);
      dst = dst << 8 | *(walk++);
      dst = dst << 8 | *(walk++);
      met = *(walk++);
      seq = *(walk++);
      seq = seq << 8 | *(walk++);
      seq = seq << 8 | *(walk++);
      seq = seq << 8 | *(walk++);
      snprintf (buf, 1024, "%s (%d,%d,%d)", buf, dst, met, seq);
    }
  // Now do trigger handling.
  //trace("VTU %.5f %d", now, me);
  if (verbose_)
    trace ("%s", buf);
}

// Prints out an rtable element.
void
DSDV_Agent::output_rte(const char *prefix, rtable_ent * prte, DSDV_Agent * a)
{
  a->trace("DFU: deimplemented");
  printf("DFU: deimplemented");

  prte = 0;
  prefix = 0;
#if 0
  printf ("%s%d %d %d %d %f %f %f %f 0x%08x\n",
	  prefix, prte->dst, prte->hop, prte->metric, prte->seqnum,
	  prte->udtime, prte->new_seqnum_at, prte->wst, prte->changed_at,
	  (unsigned int) prte->timeout_event);
  a->trace ("VTE %.5f %d %d %d %d %f %f %f %f 0x%08x",
          Scheduler::instance ().clock (), prte->dst, prte->hop, prte->metric,
	  prte->seqnum, prte->udtime, prte->new_seqnum_at, prte->wst, prte->changed_at,
	    prte->timeout_event);
#endif
}


NS2 Member Accounts | |
© 2005 - 2024 Vanet Projects

© 2005 - 2024 Matlab Projects