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
- 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.
- Set Up NS2
- Install NS2:
- We should set up and confirm the NS2 functionality to utilize an example script:
ns example.tcl
- Tools for Analysis:
- NAM (Network Animator) is designed for visualization.
- Trace Analysis Tools such as AWK which is helps to examine the performance parameters.
- 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.
- 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
- Run the Simulation
- We must store the script like peer_to_peer_topology.tcl.
- Execute the tcl script using NS2:
ns peer_to_peer_topology.tcl
- Go to the NAM file for visualization:
nam peer_to_peer_topology.nam
- 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.
- Expand the Simulation
- Simulate Node Failures:
- Launch the node failures and then examine the influence over the network:
$ns at 6.0 “$ns link-fail $n1 $n2”
- Add More Peers:
- We need to maximize the volume of nodes for monitoring the scalability.
- Vary Traffic Patterns:
- Add TCP traffic or introduce new connections dynamically:
set tcp [new Agent/TCP]
$ns attach-agent $n2 $tcp
- Simulate Multicast Communication:
- Set up multicast traffic to experiment the effectiveness of group interaction.
- 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.