This document provides instructions for installing Network Simulator 2 (NS2) on a Linux environment. It involves downloading NS2, installing required libraries using apt-get, untarring the downloaded file, running the install script, and adding environment variables to the .bashrc file to set paths for NS2, OTCL, Tcl, and libraries. Setting these paths allows NS2 and its components to be properly configured and run on the Linux system.
Elgamal signature for content distribution with network codingijwmn
Network coding is a slightly new forwarding technique which receives various applications in traditional
computer networks, wireless sensor networks and peer-to-peer systems. However, network coding is
inherently vulnerable to pollution attacks by malicious nodes in the network. If any fake node in the
network spreads polluted packets, the pollution of packets will spread quickly since the output of (even an)
honest node is corrupted if at least one of the incoming packets is corrupted. There have been adapted a
few ordinary signature schemes to network coding that allows nodes to check the validity of a packet
without decoding. In this paper, we propose a scheme uses ElGamal signature in network coding. Our
scheme makes use of the linearity property of the packets in a coded system, and allows nodes to check the
integrity of the packets received easily.
An Effective Privacy-Preserving Data Coding in Peer-To-Peer NetworkIJCNCJournal
Coding Opportunistically (COPE) is a simple but very effective data coding mechanism in the wireless network.
However, COPE leaves risks for attackers easily getting the private information saved in the packets,
when they move through the network to their destination nodes. Hence, a lightweight cryptographic approach,
namely SCOPE, was proposed to consolidate COPE against the honest-but-curious and malicious
attacks. Honest-but-curious attack serves adversaries who accurately obey the protocol but try to learn as
much private information as possible for their curiosity. Additionally, this kind of attack is not destructive
consequently. However, it may leave the backdoor for the more dangerous attacks carrying catastrophes
to the system. Malicious attack tries to learn not only the private information but also modifies the packet
on harmful purposes. To cope with this issue, in this work, a lightweight cryptographic approach improves
COPE, namely SCOPE, that is defensive to the both attacks. The private information in the COPE packet
are encrypted by Elliptic Curve Cryptography (ECC), and an additional information is inserted into SCOPE
packets served for the authentication process using the lightweight hash Elliptic Curve Digital Signature Algorithm
(ECDSA). We then prove our new protocol is still guaranteed to be a secure method of data coding,
and to be light to effectively operate in the peer-to-peer wireless network.
Reliability Improvement in Logic Circuit Stochastic ComputationWaqas Tariq
Defects and faults arise from physical imperfections and noise susceptibility of the analog circuit components used to create digital circuits resulting in computational errors. A probabilistic computational model is needed to quantify and analyze the effect of noisy signals on computational accuracy in digital circuits. This model computes the reliability of digital circuits meaning that the inputs and outputs and their implemented logic function need to be calculated probabilistically. The purpose of this paper is to present a new architecture for designing noise-tolerant digital circuits. The approach we propose is to use a class of single-input, single-output circuits called Reliability Enhancement Network Chain (RENC). A RENC is a concatenation of n simple logic circuits called Reliability Enhancement Network (REN). Each REN can increase the reliability of a digital circuit to a higher level. Reliability of the circuit can approach any desirable level when a RENC composed of a sufficient number of RENs is employed. Moreover, the proposed approach is applicable to the design of any logic circuit implemented with any logic technology.
Link Capacity Estimation in Wireless Software Defined NetworksFarzaneh Pakzad
Farzaneh Pakzad, Marius Portmanny and Jared Hayward
School of ITEE, The University of Queensland, Brisbane, Australia
Email: farzaneh.pakzad@uq.net.au, marius@ieee.org, jared.hayward@uqconnect.edu.au
25th International Telecommunication Networks and Applications Conference
November 18-20, 2015 UNSW, Sydney, Australia
DOI: 10.1109/ATNAC.2015.7366814
SDN is a new approach to manage networks with a centralised, global view and control of the network, and a more fine grained and flexible approach to routing and forwarding of
data packets. This has shown to achieve significantly increased network efficiency in a range of wired networks. SDN also has a great potential for wireless networks. One of the unique challenges of applying the SDN approach to wireless networks, in contrast to wired networks, is the dynamic nature of wireless links and the uncertainty about their capacity. In order to be able to do optimal routing and traffic engineering with SDN in a wireless network, it is critical to know the capacity of the available wireless links. This paper presents a link capacity estimation mechanism that can be implemented on any OpenFlow SDN controller. For this, we adapted the well-known technique of packet pair/train probing, and developed a method that allows the correction of estimation errors induced by cross traffic. We have implemented a prototype for the Ryu SDN controller, and our emulation-based experimental results show a promising accuracy of our proposed approach.
Elgamal signature for content distribution with network codingijwmn
Network coding is a slightly new forwarding technique which receives various applications in traditional
computer networks, wireless sensor networks and peer-to-peer systems. However, network coding is
inherently vulnerable to pollution attacks by malicious nodes in the network. If any fake node in the
network spreads polluted packets, the pollution of packets will spread quickly since the output of (even an)
honest node is corrupted if at least one of the incoming packets is corrupted. There have been adapted a
few ordinary signature schemes to network coding that allows nodes to check the validity of a packet
without decoding. In this paper, we propose a scheme uses ElGamal signature in network coding. Our
scheme makes use of the linearity property of the packets in a coded system, and allows nodes to check the
integrity of the packets received easily.
An Effective Privacy-Preserving Data Coding in Peer-To-Peer NetworkIJCNCJournal
Coding Opportunistically (COPE) is a simple but very effective data coding mechanism in the wireless network.
However, COPE leaves risks for attackers easily getting the private information saved in the packets,
when they move through the network to their destination nodes. Hence, a lightweight cryptographic approach,
namely SCOPE, was proposed to consolidate COPE against the honest-but-curious and malicious
attacks. Honest-but-curious attack serves adversaries who accurately obey the protocol but try to learn as
much private information as possible for their curiosity. Additionally, this kind of attack is not destructive
consequently. However, it may leave the backdoor for the more dangerous attacks carrying catastrophes
to the system. Malicious attack tries to learn not only the private information but also modifies the packet
on harmful purposes. To cope with this issue, in this work, a lightweight cryptographic approach improves
COPE, namely SCOPE, that is defensive to the both attacks. The private information in the COPE packet
are encrypted by Elliptic Curve Cryptography (ECC), and an additional information is inserted into SCOPE
packets served for the authentication process using the lightweight hash Elliptic Curve Digital Signature Algorithm
(ECDSA). We then prove our new protocol is still guaranteed to be a secure method of data coding,
and to be light to effectively operate in the peer-to-peer wireless network.
Reliability Improvement in Logic Circuit Stochastic ComputationWaqas Tariq
Defects and faults arise from physical imperfections and noise susceptibility of the analog circuit components used to create digital circuits resulting in computational errors. A probabilistic computational model is needed to quantify and analyze the effect of noisy signals on computational accuracy in digital circuits. This model computes the reliability of digital circuits meaning that the inputs and outputs and their implemented logic function need to be calculated probabilistically. The purpose of this paper is to present a new architecture for designing noise-tolerant digital circuits. The approach we propose is to use a class of single-input, single-output circuits called Reliability Enhancement Network Chain (RENC). A RENC is a concatenation of n simple logic circuits called Reliability Enhancement Network (REN). Each REN can increase the reliability of a digital circuit to a higher level. Reliability of the circuit can approach any desirable level when a RENC composed of a sufficient number of RENs is employed. Moreover, the proposed approach is applicable to the design of any logic circuit implemented with any logic technology.
Link Capacity Estimation in Wireless Software Defined NetworksFarzaneh Pakzad
Farzaneh Pakzad, Marius Portmanny and Jared Hayward
School of ITEE, The University of Queensland, Brisbane, Australia
Email: farzaneh.pakzad@uq.net.au, marius@ieee.org, jared.hayward@uqconnect.edu.au
25th International Telecommunication Networks and Applications Conference
November 18-20, 2015 UNSW, Sydney, Australia
DOI: 10.1109/ATNAC.2015.7366814
SDN is a new approach to manage networks with a centralised, global view and control of the network, and a more fine grained and flexible approach to routing and forwarding of
data packets. This has shown to achieve significantly increased network efficiency in a range of wired networks. SDN also has a great potential for wireless networks. One of the unique challenges of applying the SDN approach to wireless networks, in contrast to wired networks, is the dynamic nature of wireless links and the uncertainty about their capacity. In order to be able to do optimal routing and traffic engineering with SDN in a wireless network, it is critical to know the capacity of the available wireless links. This paper presents a link capacity estimation mechanism that can be implemented on any OpenFlow SDN controller. For this, we adapted the well-known technique of packet pair/train probing, and developed a method that allows the correction of estimation errors induced by cross traffic. We have implemented a prototype for the Ryu SDN controller, and our emulation-based experimental results show a promising accuracy of our proposed approach.
Performance Analysis of Encryption Algorithm for Network Security on Parallel...ijsrd.com
Nowadays the typical desktop computer processors have four or more independent CPU core, which are called as multi-core processors to execute instructions. So parallel programming language come into play to execute instructions concurrently for multi core architecture using openMP. Users prefer cryptographic algorithms to encrypt and decrypt data in order to send it securely over an unsafe environment like the internet. This paper describes the implementation and test results of Caesar cipher and RSA cryptographic algorithms in parallelization are done using OpenMP API 3.1 Standard and performance Analysis. According to our test results, the parallel design approach for security algorithm exhibits improved performance over the sequential approach in terms of execution of time
UNIT II COMMUNICATION IN DISTRIBUTED SYSTEM 10
System Model – Inter process Communication – the API for internet protocols – External data representation and Multicast communication. Network virtualization: Overlay networks. Case study: MPI Remote Method Invocation And Objects: Remote Invocation – Introduction – Request-reply protocols – Remote procedure call – Remote method invocation. Case study: Java RMI – Group communication – Publish-subscribe systems – Message queues – Shared memory approaches – Distributed objects – Case study: Enterprise Java Beans -from objects to components.
PUT my all effort to make quantum cryptography easily understandable by the help of basics n videos.Its enough to give you better knowledge about quantum cryptography. Its really interesting topic ;).
LITTLE DRAGON TWO: AN EFFICIENT MULTIVARIATE PUBLIC KEY CRYPTOSYSTEMIJNSA Journal
In 1998 [8], Patarin proposed an efficient cryptosystem called Little Dragon which was a variant a variant of Matsumoto Imai cryptosystem C*. However Patarin latter found that Little Dragon cryptosystem is not secure [8], [3]. In this paper we propose a cryptosystem Little Dragon Two which is as efficient as Little Dragon cryptosystem but secure against all the known attacks. Like Little Dragon cryptosystem the public key of Little Dragon Two is mixed type that is quadratic in plaintext and cipher text variables. So the public key size of Little Dragon Two is equal to Little Dragon Cryptosystem. Our public key algorithm is bijective and can be used for both encryption and signatures.
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural Networkstheijes
To improve the accuracy of learning result, in practice multiple parties may collaborate through conducting joint Backpropagation neural network learning on the union of their respective data sets. During this process no party wants to disclose her/his data to others. Existing schemes supporting this kind of collaborative learning are either limited in the way of data partition or just consider two parties. There lacks a solution that allows two or more parties, each with an arbitrarily portioned data set, to collaboratively conduct the learning. this paper solves this open problem by utilizing the power of cloud computing. In our proposed scheme, each party encrypts his/her private data locally and uploads the ciphertexts into the cloud. The cloud then executes most of the operations pertaining to the learning algorithms over ciphertexts without knowing the original private data. To support flexible operations over ciphertexts, we adopt and tailor the BGN ‘doubly homomorphic’ encryption algorithm for the multi-party setting..
Performance Analysis of Encryption Algorithm for Network Security on Parallel...ijsrd.com
Nowadays the typical desktop computer processors have four or more independent CPU core, which are called as multi-core processors to execute instructions. So parallel programming language come into play to execute instructions concurrently for multi core architecture using openMP. Users prefer cryptographic algorithms to encrypt and decrypt data in order to send it securely over an unsafe environment like the internet. This paper describes the implementation and test results of Caesar cipher and RSA cryptographic algorithms in parallelization are done using OpenMP API 3.1 Standard and performance Analysis. According to our test results, the parallel design approach for security algorithm exhibits improved performance over the sequential approach in terms of execution of time
UNIT II COMMUNICATION IN DISTRIBUTED SYSTEM 10
System Model – Inter process Communication – the API for internet protocols – External data representation and Multicast communication. Network virtualization: Overlay networks. Case study: MPI Remote Method Invocation And Objects: Remote Invocation – Introduction – Request-reply protocols – Remote procedure call – Remote method invocation. Case study: Java RMI – Group communication – Publish-subscribe systems – Message queues – Shared memory approaches – Distributed objects – Case study: Enterprise Java Beans -from objects to components.
PUT my all effort to make quantum cryptography easily understandable by the help of basics n videos.Its enough to give you better knowledge about quantum cryptography. Its really interesting topic ;).
LITTLE DRAGON TWO: AN EFFICIENT MULTIVARIATE PUBLIC KEY CRYPTOSYSTEMIJNSA Journal
In 1998 [8], Patarin proposed an efficient cryptosystem called Little Dragon which was a variant a variant of Matsumoto Imai cryptosystem C*. However Patarin latter found that Little Dragon cryptosystem is not secure [8], [3]. In this paper we propose a cryptosystem Little Dragon Two which is as efficient as Little Dragon cryptosystem but secure against all the known attacks. Like Little Dragon cryptosystem the public key of Little Dragon Two is mixed type that is quadratic in plaintext and cipher text variables. So the public key size of Little Dragon Two is equal to Little Dragon Cryptosystem. Our public key algorithm is bijective and can be used for both encryption and signatures.
Securing Privacy of User’s Data on Cloud Using Back Propagation Neural Networkstheijes
To improve the accuracy of learning result, in practice multiple parties may collaborate through conducting joint Backpropagation neural network learning on the union of their respective data sets. During this process no party wants to disclose her/his data to others. Existing schemes supporting this kind of collaborative learning are either limited in the way of data partition or just consider two parties. There lacks a solution that allows two or more parties, each with an arbitrarily portioned data set, to collaboratively conduct the learning. this paper solves this open problem by utilizing the power of cloud computing. In our proposed scheme, each party encrypts his/her private data locally and uploads the ciphertexts into the cloud. The cloud then executes most of the operations pertaining to the learning algorithms over ciphertexts without knowing the original private data. To support flexible operations over ciphertexts, we adopt and tailor the BGN ‘doubly homomorphic’ encryption algorithm for the multi-party setting..
On 23 June the UK public will be given what could be a once in a generation opportunity to have its say on the UK’s relationship with Europe. Whatever the result, it will have far-reaching economic and political consequences. In our latest version of LCP Vista we have explored how this could impact pension schemes.
Of course, whilst Brexit is naturally dominating the news, pension schemes need to carry on thinking about the best long-term strategies to meet their liabilities. So in this edition of LCP Vista we take a look at the latest investment ideas to help them do so.
Fremmy.com Cursos Online - A Partir de R$19,00 c/ Certificado
Estude em Casa e a Qualquer Hora!
Curta nossa pagina no facebook:https://www.facebook.com/Fremmy-cursos-online-1834520260114365/?pnref=story
Experimental simulation and real world study on wi fi ad-hoc mode for differe...Nazmul Hossain Rakib
The Ad-Hoc mode for wireless communication is not used frequently. But the demand for Wi-Fi communication is continuously increasing as use of Smart-phones and Laptops has enormously popular recent years. Through Ad-Hoc mode users can communicate point to point with mobility feature without using any central BSS. Wireless Ad-Hoc mode uses electromagnetic wave and so this technology has losses and limitations caused by free space propagation media as well as attenuation for interferences.
As the enormous use of internet increases day by day so as security concern is also raise day by day over
the internet. In this paper we discuss the network security and its related threats and also study the types of
protocols and few issues related to protocols in computer networks. We also simulate the design of 5 node
wired network scenario, its packet drop rate analysis through TCP protocol using NS2 as a simulator.
Analyzed the performance of 5-node network when the packet is drop down by graphical method also
called as Xgraph when rate parameter is in mb and also analyzed the performance of same network by
changing the value of rate parameter at same time so no packets would drop down at same time and also
analyzed the performance by Xgraph method.
The goal of the project “An optic’s life” is, to predict the time when an optical transceiver will reach its real end-of-life-time based on the actual setup in the datacenter / colocation.
Minimizing mobiles communication time using modified binary exponential backo...IJCNCJournal
The domain of wireless Local Area Networks (WLANs) is growing speedily as a consequence of
developments in digital communications technology. The early adopters of this technology have mainly
been vertical application that places a premium on the mobility offered by such systems. Examples of these
types of applications consist of stocking control in depot environments, point of sale terminals, and rental
car check-in. Furthermore to the mobility that becomes possible with wireless LANs; these systems have
also been used in environments where cable installation is expensive or impractical. Such environments
include manufacturing floors, trading floors on stock exchanges, conventions and trade shows, and historic
buildings. With the increasing propagation of wireless LANs comes the need for standardization so as to
allow interoperability for an increasingly mobile workforce. Despite all the advantages and facilities that
Wi-FI offers, there is still the delay problem that is due to many reasons that are introduced in details in
our case study which also presents the solutions and simulation that can reduce this delay for better
performance of the wireless networks
The French Revolution, which began in 1789, was a period of radical social and political upheaval in France. It marked the decline of absolute monarchies, the rise of secular and democratic republics, and the eventual rise of Napoleon Bonaparte. This revolutionary period is crucial in understanding the transition from feudalism to modernity in Europe.
For more information, visit-www.vavaclasses.com
How to Split Bills in the Odoo 17 POS ModuleCeline George
Bills have a main role in point of sale procedure. It will help to track sales, handling payments and giving receipts to customers. Bill splitting also has an important role in POS. For example, If some friends come together for dinner and if they want to divide the bill then it is possible by POS bill splitting. This slide will show how to split bills in odoo 17 POS.
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdfTechSoup
In this webinar you will learn how your organization can access TechSoup's wide variety of product discount and donation programs. From hardware to software, we'll give you a tour of the tools available to help your nonprofit with productivity, collaboration, financial management, donor tracking, security, and more.
Basic phrases for greeting and assisting costumers
Net2
1. M. S. RAMAIAH INSTITUTE OF TECHNOLOGY
(AUTONOMOUS INSTITUTE, AFFILIATED TO VTU)
A Presentation Report on
“NETWORK SIMULATOR-2”
Submitted in Partial fulfillment of
5th
Semester B.E
In
Information Science and Engineering
For the subject
Data communication[IS511]
Submitted by
Deekshapoornashri (1MS13IS141)
Greeshma R J (1MS13IS142)
Shakunthala B V (1MS14IS412)
Shanta (1MS14IS413)
2. M. S. RAMAIAH INSTITUTE OF TECHNOLOGY
DEPARTMENT OF INFORMATION SCIENCE AND
ENGINEERING
BANGALORE – 560 054
C E R T I F I C A T E
This is to certify that the “Presentation on NETWORK SIMULATOR-2”
has been successfully completed by:
Deekshapoornashri 1MS13IS141
Greeshma R J 1MS13IS142
Shakunthala B V 1MS14IS412
Shanta 1MS14IS413
In partial fulfillment of 5th Semester B.E (Information Science
&Engg) for the subject “DATA COMMUNICATION(IS511)”
during the period 2015 - 2016, as prescribed by Department of
Information Science & Engineering, MSRIT.
Signature of Staff Incharge
Mr. Suresh kumar
Asst. Professor,
Dept. of ISE, MSRIT
3. ACKNOWLEDGEMENTS
Any achievement, be it scholastic or otherwise does not depend solely on the individual efforts but
on the
guidance, encouragement and cooperation of intellectuals, elders and friends. A number of
personalities, in their own capacities have helped us in carrying out this project work. We would like
to take this
opportunity to thank them all.
We deeply express our sincere gratitude to our guide Prof. Mr.Sureshkumar
Assistant Professor, Department of ISE, M.S.R.I.T, Bengaluru, for his able guidance, regular
source of encouragement and assistance throughout this project.
We would like to thank Dr. VIJAYKUMAR B P, Head of Department, Information Science &
Engineering, M.S.R.I.T, Bengaluru, for his valuable suggestions and expert advice.
Most importantly, we would like to thank Dr. N.V.R NAIDU Principal, M.S.R.I.T, Bengaluru, for
his
moral support towards completing our project work.
We thank our Parents, and all the Faculty members of Department of Information Science &
Engineering
For their constant support and encouragement.
Last, but not the least, we would like to thank our peers and friends who provided us with valuable
suggestions to improve our project.
4. CONTENTS:
Introduction
Background of Network Simulation-2
Instruction procedurefor linux
Components of NS-2
Congestion
Code
Output screen shot
5. 1. INTRODUCTION
Network Simulator version 2 (Ns2). Ns is a discrete event simulator that is used by
networking research to simulate wired, wireless and satellite networks.
NS started as a variant of the REAL network simulator in 1989 and has since been supported by
the VINT project and others. Ns allows for the simulation of various protocols, applications,
routing, queue types etc. A graphical front end has been developed for use with Ns known as
network animator (nam). Alternatively trace files can be created for analysis, which can be
displayed using Xgraph, Microsoft Excel and many more
ns (from network simulator) is a name for series of discrete event network simulators,
specifically ns-1, ns-2 and ns-3. All of them are discrete-event network simulator, primarily used
in research and teaching. ns-3 is free software, publicly available under the GNU GPLv2 license
for research, development, and use.
The goal of the ns-3 project is to create an open simulation environment for networking research
that will be preferred inside the research community.
It should be aligned with the simulation needs of modern networking research.
It should encourage community contribution, peer review, and validation of the software.
ns-1:
The first version of ns, known as ns-1, was developed at Lawrence Berkeley National
Laboratory (LBNL) in the 1995-97 timeframe by Steve McCanne, Sally Floyd, Kevin Fall, and
other contributors. This was known as the LBNL Network Simulator, and derived from an earlier
simulator known as REAL by S. Keshav. The core of the simulator was written in C++,
with Tcl-based scripting of simulation scenarios. Long-running contributions have also come
from Sun Microsystems, the UC Berkeley Daedelus, and Carnegie Mellon Monarch projects.
ns-2:
In 1996-97, ns version 2 (ns-2) was initiated based on a refactoring by Steve McCanne. Use of
Tcl was replaced by MIT's Object Tcl (OTcl), an object-oriented dialect of Tcl. The core of ns-2
is also written in C++, but the C++ simulation objects are linked to shadow objects in OTcl and
variables can be linked between both language realms. Simulation scripts are written in the OTcl
language, an extension of the Tcl scripting language.
Presently, ns-2 consists of over 300,000 lines of source code, and there is probably a comparable
amount of contributed code that is not integrated directly into the main distribution It runs
on GNU/Linux, FreeBSD, Solaris, Mac OS X and Windows versions that support Cygwin. It is
licensed for use under version 2 of the GNU General Public License.
ns-3:
A team led by Tom Henderson (University of Washington), George Riley (Georgia Institute of
Technology), Sally Floyd, and Sumit Roy (University of Washington), applied for and received
funding from the U.S. National Science Foundation (NSF) to build a replacement for ns-2, called
6. ns-3. This team collaborated with the Planete project of INRIA at Sophia Antipolis, with
Mathieu Lacage as the software lead, and formed a new open source project joined by other
developers worldwide.
In the process of developing ns-3, it was decided to completely abandon backward-compatibility
with ns-2. The new simulator would be written from scratch, using the C++ programming
language. Development of ns-3 began in July 2006. A framework for generating Python bindings
(pybindgen) and use of the Waf build system were contributed by Gustavo Carneiro.
The first release, ns-3.1 was made in June 2008, and afterwards the project continued making
quarterly software releases, and more recently has moved to three releases per year. ns-3 made
its eighteenth release (ns-3.18) in the third quarter of 2013.
Current status of the three versions is:
ns-1 is no longer developed nor maintained,
ns-2 build of 2009 is not actively maintainer (and is not being accepted for journal
publications)
ns-3 is actively developed (but not compatible for work done on ns-2)
Network Simulator 2:
One of the most popular simulator among networking researchers-Open source, free
Discrete event, Packet level simulator-Events like ‘received an ack packet’, ‘enqueued a
data packet’ Network protocol stack written in C++
Tcl (Tool Command Language) used for specifying scenarios and events and takes care
of the below
o Simulation scenario configurations, Periodic or triggered action
o Manipulating existing C++ objects,fast to write and change
o Simulates both wired and wireless networks.
o Ns-the simulator itself, Nam, the network animator-Visualize ns (or other) output
Nam editor: GUI interface to generate ns scripts
Pre-processing:
Traffic and topology generators
Post-processing:
Simple trace analysis, often in Awk, Perl, or Tcl, You can also use grep (under linux),
or C/java
7.
8. 2. Background for ns2
2.1. Node types
Nodes in Ns are the hardware entities (hosts) within a simulation topology. Each
simulation requires an instance of the simulator class. Nodes are defined in a standalone class in
Otcl. Two basic node types exist unicast and multicast, which contain components that are
TclObjects, which give them the correct functionality for routing in a particular simulation.
The node can be configured to customise it for example to create a mobile node in a
wireless topology. Unicast is the default in Ns. Nodes contain a node entry object and classifiers
but to get started the two main classifiers defined for a node that are of concern here are an
address classifier and a port classifier which ensure incoming packets are sent to the correct
agent or outgoing link. This gives us our first two key words “Agent” and “Link” which allows
us to look at a basic node. In the diagram below there are two nodes, which have a link. The link
can be either simplex or duplex.
You will notice that each node has an agent attached; this is the connection/ protocol,
which could be TCP. On top of this agent sits an application, which puts traffic onto our network
such as FTP. An agent is normally software based.
Fig-1. Node Construction
An agent comes in two flavours, a Source agent and a sink agent. The source agent is the
generator of packet data and the sink node is the destination of the packet data. Lets call our
nodes node1 on the left and node2 on the right.
If TCP was added to node1 making it a source agent and we needed to send data to node2
a TCPsink agent would have to be attached to node2. Once the two agents are attached an
explicit declaration is required to connect the two nodes. Alternatively UDP could have been
used on node1 and a null agent sink on node2.
So a node has agents attached and applications attached to the agent only certain
applications should be attached to certain agents for example UDP and CBR we will discuss
CBR in more detail later. A node can have one or more links. A node can be a source or sink
node or even both depending on the topology.
9. 2.2. Network protocols
IP -- Internet Protocol:
A layer 3 Protocol.Comes in two versions IPV4, IPV6. This is a data-oriented protocol
that communicates data across a network that is used by both source and host.
TCP -- Transmission Control Protocol
IETF RFC 793 defines TCP. TCP is a connection-oriented protocol. A highly reliable
protocol that guarantees delivery. That is normally associated with IP in the TCP/IP model.
UDP -- User Datagram Protocol
IETF RFC 768 defines the UDP transport protocol. UDP does not guarantee delivery of a
message.
HTTP -- Hyper Text Transfer Protocol
Is a request response protocol used on the World Wide Web (WWW). Maintained by the
W3C org. Defined in RFC2068.
POP3 Post Office Protocol version 3
Used to retrieve emails from a server for a local client over TCP/IP. Various RFC’s exist
for POP3
SNMP -- Simple Network Management Protocol
Used to monitor network-attached devices for conditions.
SMTP -- Simple Mail Transfer Protocol
Used for e-mail transmission across the Internet.
SSH -- Secure Shell
Is an application and a protocol. Used for executing commands on a remote computer.
IMAP -- Internet Message Access Protocol
Used for retrieving e-mails from a remote server. It leaves a copy on the server as opposed to
deleting.
DHCP -- Dynamic Host Control Protocol
Dynamically Allocates IP addresses to clients on a LAN.
BGP -- Border Gateway Protocol
Routing Protocol on the Internet. Used by ISP’s
10. IGRP -- Interior Gateway Routing Protocol
IGRP is a distance vector routing protocol designed by Cisco. Used by routers to
exchange routing data.
RIP -- Routing Information protocol
Allows routers to adapt dynamically to changing network connections
ARP -- Address Resolution Protocol
Is a method of finding a hosts Ethernet MAC address from its IP address
MARS -- Multicast Address Resolution Server
Multicasting is where a source sends a packet simultaneously to multiple destinations.
2.3. Typical applications
Two common applications that are used in Ns, which most will have heard of are FTP
and Telnet. When we use these applications from a home or business Pc / workstation, we are in
fact using the client or traffic source part of the application. All forms of users from various
locations use FTP widely and this client software can be by different vendors. To transfer a file-
using FTP we put traffic on the network, but in order for us to complete this we need to connect
to a FTP server (FTP daemon) or the sink node.
Telnet works with the same type of principle in that it uses TCP as the agent with a client
application and traffic is placed on the on the network for example to gain a remote login to a
server (sink node). Other examples of typical applications are e-mail using SMTP all senders are
using a client (agent) which then transfers your e-mail by putting traffic on the network to
connect via a e-mail server (sink node).
This sink node may if required then become an agent to pass on the data to another sink
node, before the person you sent the e-mail to, client application requests the e-mail you sent
from the sink node. HTTP is another example using a web browser as a client, which puts traffic
on the network to connect to a web server (sink node). The more you think about it the more
applications you could add to the list.
2.4. Constant bit rate (CBR) data transfer
CBR reserves a constant amount of bandwidth during the connection set up even when
idle. The CBR service was conceived to support applications such as voice and video, which
require jitter (small time variations).
The source may send at a negotiated or lower rate at any time and for any duration. The
connection in Ns would normally be set up with a UDP agent and the traffic source would be
CBR. In the diagram below node0 and 1 are both using UDP and CBR, which are sending data
via node2 to the null agent sink node3.There is bandwidth congestion at node2 which means
11. packets of data are being dropped for example using a drop tail queue. This results in
node3 not receiving all the data.
Nam snap shot
Fig-2 Drop tail queue
In CBR when packets are lost they are not re transmitted as receiving packets late in a
voice or video stream is of no use. The human eye and mind will normally fill in any small gaps.
This is one reason why CBR may run over UDP as there is no need to receive an
acknowledgement. For streams of data that require some form of order, TCP should be used.
2.5. Traffic generator function
So far we have covered node types, agents, applications and that we attach or link the
objects in a simulation. An overview was given of CBR, which is a traffic source and that
packets of data were sent across the network. Let us now look at how the traffic is put on the
network with a typical traffic generator function. First off we create our simulation and set up the
topology this will be discussed later. In order to put traffic on a network we need to attach an
agent to a node and attach the application to the agent and link the source and sink nodes.
Set up a UDP connection with a variable name of udp and attach the UDP agent (variable
name $udp) to node1 (variable name $n1).
setudp [new Agent/UDP]
$ns attach-agent $n1 $udp
Set up a null agent sink node with a variable name of null. Attach the null agent (variable
name $null) to node3 (variable name $n3). Then connect the traffic source node (node1)
to our sink node (node3).
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
12. 3: Installation Procedure for Network Simulator 2(NS2) for Linux
Environment.
Step : 1 Download NS-23.5 from http://www.isi.edu/nsnam/ns/
Step : 2 Go to terminal and install the necessary updates using the command “
sudo apt-get update
Step : 3 Then install the ns2 required libraries using the command
sudo apt-get install build-essential autoconfautomakelibxmu-dev
Step : 4 Untar the downloaded ns-allinone-xxx.tar.gz file using the command
tarzxvf ns-allinone-2.35.tar.gz
Step : 5 Execute the commands one by one as given below
Step : 6 <Path of the ns file to be copied>cd ns-allinone-2.35
Step : 7 < Path of the ns file to be copied/ns-allinone-2.35>./install
Step : 8
Now that NS2 is installed, there are some environment variables that need
to be added to your profile. This can be done by editing the .bashrc file. Be sure to
change “/path/to” to the path of where you have extracted NS2.
Open the file using: gedit ~/.bashrc and the following at the end of the file:
# LD_LIBRARY_PATH
OTCLLIB=/path/to/ns-allinone-2.35/otcl-1.14
NS2=/path/to/ns-allinone-2.35/lib
USR_LocalLIB=/usr/local/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCLLIB:$NS2:$USR_Local
LIB
# TCL_LIBRARY
TCLIB=/path/to/ns-allinone-2.35/tcl8.5.10/library
USRLIB=/usr/lib
export TCL_LIBRARY=$TCLIB:$USRLIB
# PATH
XGRAPH=/path/to/ns-allinone-2.35/xgraph-12.2/:/path/to/ns-allinone-
2.35/bin:/path/to/ns-allinone-2.35/tcl8.5.10/unix:/path/to/ns-allinone-
2.35/tk8.5.10/unix
NS=/path/to/ns-allinone-2.35/ns-2.35/
NAM=/path/to/ns-allinone-2.35/nam-1.15/
export PATH=$PATH:$XGRAPH:$NS:$NAM
13. Step : 9
You need to validate NS2 to check if everything is ok but beware that it will take
lots of time:
< Path of the ns file to be copied/ns-allinone-2.35/>cd ns-2.35
< Path of the ns file to be copied/ns-allinone-2.35/ns-2.35>./validate
This will take some time to validate the ns2 installation.
Step : 10
Now if you want to start NS2 directly without going into the directory every time,
it is useful to create a symbolic link from a terminal:
ln -s /path/to/ns-allinpne-2.35/ns-2.35/ns /usr/bin/ns
you can now run ns from a terminal window by executing :ns if you received the “%”
sign, it means that NS is running.
14. 4. components of ns2
4.1. The structure of ns, including how to add a C++ patch (briefly)
Ns uses two languages C++ to implement protocols and Object Oriented Tcl (OTcl) to
write simulation scripts. Ns is an OTcl script interpreter that has a simulation event scheduler and
network libraries. So we write an Otcl script, which initiates an event scheduler. In the script we
define the topology of the network using objects and functions from the libraries.
Traffic is added to the network and told when to commence and when to end. This is
handled by the event scheduler, as is the termination of the simulation. The results from the
interpreter can then be analysed or graphically displayed using nam. Without getting to
complicated data path implementations are written and compiled by C++ in order to save
processing time.Once compiled these objects become available to the OTcl interpreter via an
OTcl linkage. The linkage creates a matching OTcl object and makes available to it functions
and variables that are also available to the linked C++ object. A class hierarchy in C++ (also
called the compiled hierarchy), and a similar class hierarchy within the OTcl interpreter (also
called the interpreted hierarchy) are also maintained between the linkage.
Fig-5 Linkage [NIL01]
Fig-6 Architecture [NIL01]
15. If we look at the structure of Ns we develop and execute in Tcl using object libraries
contained in OTcl. The event scheduler and most network components are developed in C++ to
give us the Ns simulation. The Tclcl is the Tcl/C++ interface between OTcl and C++.
In order to enhance the functionality of Ns extensions are added. These extensions are
modifications to the C++ or OTcl source code. Alternatively these may be completely new
agents or traffic sources etc. As an example the event scheduler and network component object
classes are located in the Ns-2 directory. In the Ns-2 directory are UDP.h and UDP.cc, which are
the C++ files used to implement the UDP agent (this location may vary with different versions of
Ns).
Similarly the tcl/lib directory contains the OTcl source code for node, links etc. To patch
Ns to work with a new or modified agent means the creation of C++ code, which will involve the
creation of a class and possibly a header file. A linkage has to be set up within the C++ class to
ensure the OTcl can use instances of the C++ class. Dependent on what is being written, a header
file may have to be registered in the packet.h and ns-packet.tcl.Methods may have to be added to
existing classes. Once these modifications are made the makefile will have to be modified to add
yourclass.o to the object file list. Then run make clean and make depend before recompiling
using make. This will patch the system to use your new or modified class.Sometimes a patch
may be released to modify or update the software this normally comes with the extension. patch.
To add this simply ensure you are in the correct working directory and type:
patch p0 <patchname.patch
4.2. The role of the Tk/Tcl and OTcl command language
Tcl is a command line tool Tk is a graphical interface for Tcl. Tcl is used because of the
fast iteration time it takes to modify a simulation model and re run the script file. Tcl/Tk uses a
simple interface so users do not have to learn any complex languages such as C++.
OTclas already discussed is built upon or encapsulates features of Tcl and as OTcl is
object oriented it is interfaced with C++ through the use of Tclcl. OTcl is the front-end to the
simulator as it is interpreted rather than compiled, the benefits for Ns is development speed
rather than it’s slower execution speed. So we could say OTcl is used for control as it allows us
to design our simulations by sharing member functions. OTcl is used for triggered actions. It also
manipulates the existing objects in C++.
16. Simulate the network topology with the congestion between the nodes.
#Create Simualator
set ns [new Simulator]
#Use colors to differentiate the traffics
$ns color 1 Blue
$ns color 2 Red
#Open trace and NAM trace file
setntrace [open prog6.tr w]
$ns trace-all $ntrace
setnamfile [open prog6.nam w]
$ns namtrace-all $namfile
#Finish Procedure
proc Finish {} {
global ns ntracenamfile
#Dump all trace data and close the files
$ns flush-trace
close $ntrace
close $namfile
#Execute the NAM animation file
execnam prog6.nam &
#Calculate the number of packets dropped due to collision
puts "The number of packet drops due to collision is"
execgrep "^d" prog6.tr | cut -d " " -f 4 | grep -c "3" &
exit 0
}
#Create 6 nodes
for {set i 0} {$i < 6} {incr i} {
set n($i) [$ns node]
}
#Create duplex links between the nodes
$ns duplex-link $n(0) $n(2) 2Mb 10ms DropTail
$ns duplex-link $n(1) $n(2) 2Mb 10ms DropTail
$ns duplex-link $n(2) $n(3) 0.2Mb 100ms DropTail
#Nodes n(3), n(4) and n(5) are considered in a LAN
set lan0 [$ns newLan "$n(3) $n(4) $n(5)" 0.5Mb 40ms LL Queue/DropTail MAC/802_3
Channel]
17. #Orientation to the nodes
$ns duplex-link-op $n(0) $n(2) orient right-down
$ns duplex-link-op $n(1) $n(2) orient right-up
$ns duplex-link-op $n(2) $n(3) orient right
#Set up queue between n(2) and n(3) and monitor the queue
$ns queue-limit $n(2) $n(3) 20
$ns simplex-link-op $n(2) $n(3) queuePos 0.5
#Setup TCP connection between n(0) and n(4)
set tcp0 [new Agent/TCP/Newreno]
$ns attach-agent $n(0) $tcp0
set sink0 [new Agent/TCPSink/DelAck]
$ns attach-agent $n(4) $sink0
$ns connect $tcp0 $sink0
$tcp0 set fid_ 1
$tcp0 set window_ 8000
$tcp0 set packetSize_ 552
#Apply FTP application over TCP
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ftp0 set type_ FTP
#Setup another TCP connection between n(5) and n(1)
set tcp1 [new Agent/TCP/Newreno]
$ns attach-agent $n(5) $tcp1
set sink1 [new Agent/TCPSink/DelAck]
$ns attach-agent $n(1) $sink1
$ns connect $tcp1 $sink1
$tcp1 set fid_ 2
$tcp1 set window_ 8000
$tcp1 set packetSize_ 552
#Apply FTP application over TCP
set ftp1 [new Application/FTP]
$ftp1 attach-agent $tcp1
$ftp1 set type_ FTP
#Schedule the events
$ns at 0.1 "$ftp0 start"
$ns at 0.2 "$ftp1 start"
$ns at 24.8 "$ftp0 stop"
$ns at 24.9 "$ftp1 stop"
$ns at 25.0 "Finish"
18. #Run the simulation
$ns run
Output:
Network topology as below:
The throughput of FTP is
73196.227642276426 bytes per second
The throughput of CBR is
37347.26688102894 bytes per second