How to Start Peer to Peer Topology Projects Using NS2

To start a Peer-to-Peer (P2P) Topology project using NS2 (Network Simulator 2), it encompasses to replicate a network in which nodes are directly interact with one another devoid of depending on a central server. P2P networks are often leveraged within applications such as file sharing, decentralized systems, and IoT. We can follow these steps for configuring and replicating a P2P Topology project in NS2:

Steps to Start Peer to Peer Topology Projects in NS2

  1. Understand Peer-to-Peer Topology
  • Peer-to-Peer Topology:
    • Nodes directly interact to distribute the resources and data between themselves.
    • It has no central authority or server.
  • Applications:
    • Decentralized systems like blockchain.
    • IoT networks.
    • File sharing systems such as BitTorrent.
  • Advantages:
    • Distributed load.
    • Scalability and resilience.
  1. Set Up NS2
  1. Install NS2:
    • We should set up and confirm the NS2 functionality to utilize an example script:

ns example.tcl

  1. Tools for Analysis:
    • NAM (Network Animator) is designed for visualization.
    • Trace Analysis Tools such as AWK which is helps to examine the performance parameters.
  1. Plan the P2P Topology
  • Topology Design:
    • Every node is peers that are able to transmit and obtain the information.
    • Every single node launches the connections including numerous peers.
  • Traffic Pattern:
    • Data exchange among arbitrarily chosen peers.
  1. Write the Simulation Script

Step 4.1: Create the TCL Script

We need to store the script like peer_to_peer_topology.tcl in NS2.

Step 4.2: Initialize the Simulator

Configure the simulator and tracing the file:

set ns [new Simulator]

set tracefile [open trace.tr w]

$ns trace-all $tracefile

set namfile [open peer_to_peer_topology.nam w]

$ns namtrace-all $namfile

Step 4.3: Create Nodes

We will need to make peer nodes:

# Create peer nodes

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

set n5 [$ns node]

Step 4.4: Configure Links

Associate the peers within a random or mesh-like topology:

# Links between peers

$ns duplex-link $n1 $n2 1Mb 10ms DropTail

$ns duplex-link $n1 $n3 1Mb 10ms DropTail

$ns duplex-link $n2 $n4 1Mb 10ms DropTail

$ns duplex-link $n3 $n5 1Mb 10ms DropTail

$ns duplex-link $n4 $n5 1Mb 10ms DropTail

$ns duplex-link $n2 $n5 1Mb 10ms DropTail

Step 4.5: Configure Traffic

Configure flows of traffic among the peers:

# Traffic from n1 to n4

set udp1 [new Agent/UDP]

$ns attach-agent $n1 $udp1

set null1 [new Agent/Null]

$ns attach-agent $n4 $null1

$ns connect $udp1 $null1

set cbr1 [new Application/Traffic/CBR]

$cbr1 attach-agent $udp1

$cbr1 set packetSize_ 512

$cbr1 set rate_ 100kb

$ns at 1.0 “$cbr1 start”

# Traffic from n3 to n5

set udp2 [new Agent/UDP]

$ns attach-agent $n3 $udp2

set null2 [new Agent/Null]

$ns attach-agent $n5 $null2

$ns connect $udp2 $null2

set cbr2 [new Application/Traffic/CBR]

$cbr2 attach-agent $udp2

$cbr2 set packetSize_ 512

$cbr2 set rate_ 100kb

$ns at 2.0 “$cbr2 start”

Step 4.6: Add Routing Protocol

Manage peer connections to utilise dynamic routing protocols:

$ns rtproto DV

Step 4.7: Finalize the Script

Integrate the simulation end conditions to end the script:

$ns at 10.0 “finish”

proc finish {} {

global ns tracefile namfile

$ns flush-trace

close $tracefile

close $namfile

exec nam peer_to_peer_topology.nam &

exit 0

}

$ns run

  1. Run the Simulation
  1. We must store the script like peer_to_peer_topology.tcl.
  2. Execute the tcl script using NS2:

ns peer_to_peer_topology.tcl

  1. Go to the NAM file for visualization:

nam peer_to_peer_topology.nam

  1. Analyze Results
  • Trace File Analysis:
    • Examine the performance parameters such as throughput, latency, and packet delivery ratio with the support of trace.tr.
    • Example AWK script for throughput:

awk ‘{if ($1 == “r” && $4 == “udp”) sum += $8} END {print “Throughput: “, sum}’

  • Key Metrics:
    • Throughput: Estimate the data transmit the effectiveness.
    • Latency: Measure the average delay.
    • Packet Delivery Ratio (PDR): Find the data delivery’s reliability.
  1. Expand the Simulation
  1. Simulate Node Failures:
    • Launch the node failures and then examine the influence over the network:

$ns at 6.0 “$ns link-fail $n1 $n2”

  1. Add More Peers:
    • We need to maximize the volume of nodes for monitoring the scalability.
  2. Vary Traffic Patterns:
    • Add TCP traffic or introduce new connections dynamically:

set tcp [new Agent/TCP]

$ns attach-agent $n2 $tcp

  1. Simulate Multicast Communication:
    • Set up multicast traffic to experiment the effectiveness of group interaction.
  1. Document the Project
  • Objective: Define the project’s goals which are replicating a P2P topology.
  • Setup: Specify nodes, links, and traffic sets up.
  • Results: It offers performance indicators such as throughput, latency, and PDR.
  • Conclusions: Sum up results and possible enhancements.

We had presented the Peer to Peer Topology projects simulation in a clear and step-by-step format that are effectively executed using NS2 simulator, with further elaboration to be added in another guide.