NS3 MULTICAST PROJECTS is very useful also for streaming media. Multicasting is the networking technique of delivering the same packet simultaneously to a group of clients. Multicast means also that one or more than one sender is sending data to multiple recipients, but only sending a single copy.
Types of multicasting projects using NS3:
- IP multicasting.
- Mapping IP multicast also to Ethernet multicast.
- Hardware/Ethernet multicasting.
Techniques of NS3 MULTICAST PROJECTS :
- Link-state multicast protocol.
- Core based protocol.
- Flood and also prune routing protocol.
Multicast routing protocols are:
- Protocol independent multicast.
- Multicast Border Gateway .
- Hierarchical Distance Vector Multicast routing protocol (HDVMRP).
- PIM-DM.
- Also PIM-SM .
Merits of multicast routing:
- Computation at forwarding points simplifies support also for higher level functionality
- Quick deployment
- All multicast state also in end systems
- Used for streaming multimedia and also video conferencing applications
- A shared white board is also one of the applications of multicast routing.
Architecture of multicast routing (video streaming applications):
Sample code for ns3 multicast projects:
This is code for main function of multicast routing.
int main (int argc, char *argv[])
{
Config::SetDefault (“ns3::CsmaNetDevice::EncapsulationMode”, StringValue (“Dix”));
CommandLine cmd;
cmd.Parse (argc, argv);
NS_LOG_INFO (“Create nodes.”);
NodeContainer c;
c.Create (5);
NodeContainer c0 = NodeContainer (c.Get (0), c.Get (1), c.Get (2));
NodeContainer c1 = NodeContainer (c.Get (2), c.Get (3), c.Get (4));
NS_LOG_INFO (“Build Topology.”);
CsmaHelper csma;
csma.SetChannelAttribute (“DataRate”, DataRateValue (DataRate (5000000)));
csma.SetChannelAttribute (“Delay”, TimeValue (MilliSeconds (2)));
NetDeviceContainer nd0 = csma.Install (c0); // First LAN
NetDeviceContainer nd1 = csma.Install (c1); // Second LAN
NS_LOG_INFO (“Add IP Stack.”);
InternetStackHelper internet;
internet.Install (c);
NS_LOG_INFO (“Assign IP Addresses.”);
Ipv4AddressHelper ipv4Addr;
ipv4Addr.SetBase (“10.1.1.0”, “255.255.255.0”);
ipv4Addr.Assign (nd0);
ipv4Addr.SetBase (“10.1.2.0”, “255.255.255.0”);
ipv4Addr.Assign (nd1);
NS_LOG_INFO (“Configure multicasting.”);
Ipv4Address multicastSource (“10.1.1.1”);
Ipv4Address multicastGroup (“225.1.2.4”);
Ipv4StaticRoutingHelper multicast;
Ptr multicastRouter = c.Get (2); // The node in question
Ptr inputIf = nd0.Get (2); // The input NetDevice
NetDeviceContainer outputDevices; // A container of output NetDevices
outputDevices.Add (nd1.Get (0)); // (we only need one NetDevice here)
multicast.AddMulticastRoute (multicastRouter, multicastSource,
multicastGroup, inputIf, outputDevices);
Ptr sender = c.Get (0);
Ptr senderIf = nd0.Get (0);
multicast.SetDefaultMulticastRoute (sender, senderIf);
NS_LOG_INFO (“Create Applications.”);
uint16_t multicastPort = 9; // Discard port (RFC 863)
OnOffHelper onoff (“ns3::UdpSocketFactory”,
Address (InetSocketAddress (multicastGroup, multicastPort)));
onoff.SetConstantRate (DataRate (“255b/s”));
onoff.SetAttribute (“PacketSize”, UintegerValue (128));
ApplicationContainer srcC = onoff.Install (c0.Get (0));
srcC.Start (Seconds (1.));
srcC.Stop (Seconds (10.));
PacketSinkHelper sink (“ns3::UdpSocketFactory”,
InetSocketAddress (Ipv4Address::GetAny (), multicastPort));
ApplicationContainer sinkC = sink.Install (c1.Get (2)); // Node n4
sinkC.Start (Seconds (1.0));
sinkC.Stop (Seconds (10.0));
NS_LOG_INFO (“Configure Tracing.”);
AsciiTraceHelper ascii;
csma.EnableAsciiAll (ascii.CreateFileStream (“csma-multicast.tr”));
csma.EnablePcapAll (“csma-multicast”, false);
NS_LOG_INFO (“Run Simulation.”);
Simulator::Run ();
Simulator::Destroy ();
NS_LOG_INFO (“Done.”);
}
Current Work progress
NS3 Projects for MS Students
NS3 Projects for B.E,B.Tech students
NS3 Projects for M.E,M.Tech Students
NS3 Projects for PhD Scholars
We assist PhD Scholars in Publishing Papers in Reputed journals for NS3 Simulator Projects.