Ns3 Projects for B.E/B.Tech M.E/M.Tech PhD Scholars.  Phone-Number:9790238391   E-mail: ns3simulation@gmail.com

How To Implement Content Centric Network In NS3

Content-Centric Network (CCN) in ns-3 are proceeded by ndnSIM module, which covers the ns-3 to support Named data Networking (NDN) mainly in implementation of CCN. Here are the procedures and a thorough example to support setup a CCN simulation in ns-3 environment using the ndnSIM..We work on all types of  CCN simulation.

Step-by-Step Guide to Implement Content-Centric Network (CCN) in ns-3

  1. Set Up Your Development Environment
  • Install ns-3: Follow the official ns-3 installation guide.
  • Install ndnSIM: Follow the ndnSIM installation guide.
  1. Create a Basic CCN Simulation Script

Below is the samples script to set up a CCN environment using the ndnSIM.

#include “ns3/core-module.h”

#include “ns3/network-module.h”

#include “ns3/internet-module.h”

#include “ns3/point-to-point-module.h”

#include “ns3/ndnSIM-module.h”

using namespace ns3;

using namespace ndn;

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

  // Setting default parameters for PointToPoint links and CBR traffic

  Config::SetDefault(“ns3::PointToPointNetDevice::DataRate”, StringValue(“1Mbps”));

  Config::SetDefault(“ns3::PointToPointChannel::Delay”, StringValue(“10ms”));

  Config::SetDefault(“ns3::DropTailQueue::MaxPackets”, StringValue(“20”));

  // Read optional command-line parameters (e.g., enable visualizer with ./waf –run=<> –visualize

  CommandLine cmd;

  cmd.Parse(argc, argv);

  // Creating nodes

  NodeContainer nodes;

  nodes.Create(3);

  // Connecting nodes using two links

  PointToPointHelper p2p;

  p2p.Install(nodes.Get(0), nodes.Get(1));

  p2p.Install(nodes.Get(1), nodes.Get(2));

  // Install NDN stack on all nodes

  ndn::StackHelper ndnHelper;

  ndnHelper.InstallAll();

  // Installing applications

  // Consumer

  ndn::AppHelper consumerHelper(“ns3::ndn::ConsumerCbr”);

  consumerHelper.SetPrefix(“/prefix”);

  consumerHelper.SetAttribute(“Frequency”, StringValue(“10”)); // 10 interests per second

  consumerHelper.Install(nodes.Get(0)); // first node

 

  // Producer

  ndn::AppHelper producerHelper(“ns3::ndn::Producer”);

  producerHelper.SetPrefix(“/prefix”);

  producerHelper.SetAttribute(“PayloadSize”, StringValue(“1024”));

  producerHelper.Install(nodes.Get(2)); // last node

  // Add /prefix origins to ndn::GlobalRouter

  ndn::GlobalRoutingHelper ndnGlobalRoutingHelper;

  ndnGlobalRoutingHelper.InstallAll();

  ndnGlobalRoutingHelper.AddOrigins(“/prefix”, nodes.Get(2));

  // Calculate and install FIBs

  ndn::GlobalRoutingHelper::CalculateRoutes();

  // Running simulation

  Simulator::Stop(Seconds(20.0));

  Simulator::Run();

  Simulator::Destroy();

  return 0;

}

Explanation of the Script

Here is the explanation for the Ad Hoc network process script

  1. Include Necessary Headers:
    • #include “ns3/core-module.h”
    • #include “ns3/network-module.h”
    • #include “ns3/internet-module.h”
    • #include “ns3/point-to-point-module.h”
    • #include “ns3/ndnSIM-module.h”
  2. Set Up Default Configuration:
    • Configure point-to-point link parameters such as data rate and delay.
  3. Create and Connect Nodes:
    • Create three nodes using NodeContainer.
    • Use PointToPointHelper to connect these nodes.
  4. Install NDN Stack:
    • Use ndn::StackHelper to install the NDN stack on all nodes.
  5. Install Applications:
    • Install a consumer application on the first node using ndn::AppHelper.
    • Set the consumer to request content with a specified prefix (/prefix) at a frequency of 10 interests per second.
    • Install a producer application on the last node, set to respond to requests for the same prefix (/prefix).
  6. Set Up Routing:
    • Use ndn::GlobalRoutingHelper to add routing information.
    • Add origins for the content prefix to the producer node.
    • Calculate and install the forwarding information base (FIB) entries.
  7. Run the Simulation:
    • Set the simulation stop time using Simulator::Stop.
    • Run the simulation with Simulator::Run.
    • Clean up with Simulator::Destroy.

Further Enhancements

Here we provide the future improvements for content centric network

  1. Content Caching:
    • Implement caching strategies on intermediate nodes to cache content and reduce retrieval times.
  1. Multiple Consumers and Producers:
    • Extend the network to include multiple consumers and producers with various content prefixes.
  2. Dynamic Routing:
    • Implement dynamic routing protocols and strategies for content retrieval.
  3. Performance Analysis:
    • Collect and analyze performance metrics such as content retrieval time, cache hit/miss ratio, and network load.
  4. Advanced Topologies:
    • Experiment with more complex network topologies and varying link parameters.

Finally, here we discussed about how to implement and process the content centric network in ns-3 environment and also we see the future improvements clearly. We also provide support for all kinds of network project .