Saturday, 21 September 2013

NS 2

STARTING Network Simulator in Ubuntu
We can start ns with the command ‘ns YouFile.tcl’. where YouFile.tcl’ is the name of a Tcl script file which defines the simulation scenario (i.e. the topology and the events).Open you Terminal and type:
1
ns YouFile.tcl
nsscreenshot
████████████████████████████████████████████████████████████████████
STARTING NAM
You can either start nam with the command ‘nam YouFile.tcl’ where ‘YouFile.tcl’ is the name of a nam trace file that was generated by ns, or you can execute it directly out of the Tcl simulation script for the simulation which you want to visualize.Open you Terminal and Type:
1
nam YouFile.tcl
namescreenshot
Here is brief features of Network Animator
nam1
Here in this small post, i have only talk about Basics of ns,nam and Network animator :)
Hi :) as i have already mentinoned a small intoduction of Network simulator-2 here. Now finally i decided my self to write more about it. So today i am going to write about “From whear to Download and How to Install network Simulator-2 on any Linux Distribution(Ubuntu/Fedora).
We can build “Network-Simulator-2 either from the the various packages like Tcl/Tk, otcl,ns,nam,xgraph etc or we can go through downloading an ‘all-in-one’ package. well i suggest you to start with the all-in-one package, Beacuse it is easy to install for any newbi like me. I comes to know about disadvantage of the all-in-one distribution from it’s offical tutorial is the size, since it contains some components that we don’t need anymore after you compiled ns and nam. And remember one thing ns-allinone package work’s only in *NIX/LINUX system :) .
We can Download Network Simulator-2 from the Following Source (ns-allinone Package ie. Download ns-allinone-2.35.tar.gz (59.5 MB) )
████████████████████████████████████████████████████████████████████
After Downloading ns-allinone-2.35.tar.gz file start installing it in you Linux(Ubuntu/Fedora). I am going to First install in Fedora F17.
Installation Process For Installing Network Simulator-2(NS-2) in Fedora F17.
STEP-1
Get inside into root account,Then in home directory,and start installing Dependency for NetworkSimulator-2 in Fedora F17.
1
2
3
4
5
6
7
8
9
su
cd
yum install autoconf
yum install automake
yum install gcc-c++
yum install libX11-devel
yum install xorg-x11-proto-devel
yum install libXt-devel
yum install libXmu-devel
STEP-2
Open you Terminal (Hit Ctrl+Alt+T). get inside root, and it’s home directory.Download ns-allineone-2.35.tar.gz and then untar it.
1.su
2.cd
3.wget http://nchc.dl.sourceforge.net/project/nsnam/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz
4.tar -xzvf ns-allinone-2.35.tar.gz

STEP-3

After untaring the above ns-allinone-2.35.tar.gz Package, a newly directory(Folder) is created.Now delete that ns-allinone-2.35.tar.gz as there is now no need of it. Get inside ns-allinone-2.35 (Directory/folder). It containes around 18 sub-directory and 3 files.

1.bin, 2.include, 3.nam-1.15, 4.README, 5.tclcl, 6.zlib-1.2.3, 7.cweb, 8.install, 8.ns-2.35, 9.sgb, 10.tclcl-1.20, 11.dei80211mr-1.1.4, 12.INSTALL.WIN32, 13.otcl, 14.share, 15.tk8.5.10, 16.gt-itm 17.lib, 18.otcl-1.14, 19.tcl8.5.10, 20. xgraph-12.2. Now install it.
1
2
3
cd ns-allinone-2.35/
ls
./install

STEP-4

While installation of ns-allinone in Fedora F17, We will encounter the following error. This error tells that at line number 137 in the following file(ns-2.35/linkstate/ls.h) has mistake.And to fix this mistake i have to place ‘This->erase’

installationerror
So open that file with you favorite editor like vi,nano,gedit. i have used vi
1
vi ns-allinone-2.35/ns-2.35/linkstate/ls.h
Go to Line number 137 Hit “i”
change the following line to “void eraseAll() { erase(baseMap::begin(), baseMap::end()); }”
to this line
“void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }” After that again install
1
./install

STEP-5

After giving ./install a PATH will appear on your terminals with some IMPORTANT NOTICE regading editing inside .bash_profile something like this

PathINformation
So move into you home directory /home/you-name/ as a root user , and see the hiden file(.bash_profile) by using “ls -a” command. once you find it,just edit the PATH,according to the given instruction. Type ns in terminal if you can ” %” symbole means NetworkSimulator-2 is successfully installed in Fedora F17
Installation of NetworkSimulator-2 on Ubuntu12.04
Before starting installation Note You MUST INSTALL THIS dependency before installing Ns-2 in ubuntu 12.04
1
sudo apt-get install build-essential autoconf automake libxmu-dev
STEP-1
Open you Terminal (Ctrl+Alt+t) update you package lists from the repositories by typing the following command:
1
sudo apt-get update
STEP-2
Download ns-allinone-2.35.tar.gz package from sourceforge by typing the following command in terminal:
1. wget http://nchc.dl.sourceforge.net/project/nsnam/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz
STEP-3
Untar the ns-allinone-2.35.tar.gz Package, then a newly directory(Folder) is created. Now delete that ns-allinone-2.35.tar.gz, as there is now no need of it. Get inside ns-allinone-2.35 (Directory/folder). It containes around 18 sub-directory and 3 files.
1.bin, 2.include, 3.nam-1.15, 4.README, 5.tclcl, 6.zlib-1.2.3, 7.cweb, 8.install, 8.ns-2.35, 9.sgb, 10.tclcl-1.20, 11.dei80211mr-1.1.4, 12.INSTALL.WIN32, 13.otcl, 14.share, 15.tk8.5.10, 16.gt-itm 17.lib, 18.otcl-1.14, 19.tcl8.5.10, 20. xgraph-12.2. Now install it.
1
2
3
4
5
tar -xzvf ns-allinone-2.35.tar.gz
ls
cd ns-allinone-2.35/
ls
./install
STEP-4
After giving ./install a PATH will appear on your terminals with some IMPORTANT NOTICE regading editing. So edite inside .bashrc something like this
pattth
1
2
3
4
cd ~
 ls -a
 sudo gedit .bashrc
 source .bashrc
Or there is another great and easy way to install Network Simulator-2 in ubuntu is Download direct from Repositories.
sudo apt-get install ns2
sudo apt-get install nam
sudo apt-get install xgraph
Hy I am back once again from Long time !. I was hel busy in my college stuff. Today i am gona talk about My Minor Project called Network Simulator-2, i always thank’s to Prof. Naryan shau sir, for giving me a such a great project.:). and i am always thinking how shud i merge this project with any IBM tools, so that i can take part in The great mind challenge 2012 , but anyway let us Concentrate here.
Before proceeding we need to know what is Network simulator-2 is ?
A network simulator version-2 is widely known as NS2 is simply Open source an event driven simulation tool that has proved useful in studying the dynamic nature of a communication network.It is used in a simulation of wired as well as wireless network function and protocols, Example (Routing algorithms,TCP/UDP) cab be done using ns2. NS2 provides user with a way of specifying such network protocols and simulating their corresponding behaviours.Let me give you an Live example,
I am going to demostrate a video in which i have stimulated a UDP packet from node 0 to node 1.
1
Lol packets are moving like Bullet is't  hahah..
So here is Question? How i did this :p. it’s really simple i made a small script in TCL language, which is basically design to stimulate UDP packet’s from node 0 to node 1 via one Link. Let me explain you..but Before check Below
Fundamental’s for writing tcl script for Network simulator-2
I have devided this codes into 6 parts with each explanation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
set ns [new Simulator]
set nf [open out.nam w]
$ns namtrace-all $nf
proc finish {} {
        global ns nf
        $ns flush-trace
        close $nf
        exec nam out.nam &
        exit 0
}
$ns at 3.0 "finish"
set n0 [$ns node]
set n1 [$ns node]
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
$ns run
1. we need to create a simulator object something like this.
1
set ns [new Simulator]
2.Now we need to open a file for writing that is going to be used for the nam trace data.First line open a file ‘out.nam’ for writing and give it to file handle ‘nf’
1
set nf [open out.nam w]
In this code we are telling simulator object that we created above to write all simulation data that is going to be relevant for nam into this file
1
$ns namtrace-all $nf
3.This is to add a ‘finish’ procedure that closes the trace file and start nam
1
2
3
4
5
6
7
proc finish {} {
        global ns nf
        $ns flush-trace
        close $nf
        exec nam out.nam &
        exit 0
}
4.This one tell simulator object to execute the ‘finish’ procedure after 3.0 seconds of simulation time
1
$ns at 3.0 "finish"
5. This code tells the simulator object to connects the nodes n0 and n1 with duplex link with a bandwidth 1 Megabit,a delay of 10ms Drop tail (A simple queue management algorithm used by internet routers to decides when to drop packets :) )
1
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
6.This is a last line finally starts the simulation
1
$ns run
Now save the above script with .tcl extansion, and Open a terminal type
1
ns filename.tcl
You will se something like this
NOW to send a data on two nodes via one link, we need to do certaine things
1.Create a UDP agent.
2.Create a CBR traffic source.
3.Create NULL agent which act as a traffic sink
4.Connect the two agent with each other.
5.Fixe the time when to send and stop a data.
1.Create a UDP agent and attach it to node n0
1
2
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
2.Create a CBR traffic source and attach it to udp0
1
2
3
4
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetsize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
3.The next lines creates a null agent which acts as traffic sink and attach it to node n1
1
2
set null0 [new Agent/null]
$ns attach-agent $n1 $null0
4. Now we are going to connect two agents with each other
1
$ns connect $udp0 $null0
5 NOw to fix a time by telling CBR agent when to send data and when to stop sending a data by following code
1
2
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
So here is a complete code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#Create a simulator object
set ns [new Simulator]
#Open the nam trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
        global ns nf
        $ns flush-trace
    #Close the trace file
        close $nf
    #Execute nam on the trace file
        exec nam out.nam &
        exit 0
}
#Create two nodes
set n0 [$ns node]
set n1 [$ns node]
#Create a duplex link between the nodes
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
#Create a UDP agent and attach it to node n0
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
# Create a CBR traffic source and attach it to udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.05
$cbr0 attach-agent $udp0
#Create a Null agent (a traffic sink) and attach it to node n1
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
#Connect the traffic source with the traffic sink
$ns connect $udp0 $null0 
#Schedule events for the CBR agent
$ns at 0.5 "$cbr0 start"
$ns at 4.5 "$cbr0 stop"
#Call the finish procedure after 5 seconds of simulation time
$ns at 5.0 "finish"
#Run the simulation
$ns run
Now save it with some name with .tcl extension,and again Open a terminal Type
1
ns filename.tcl
Now chuck it ;) YOu are able to create and run UDP packets between two nodes via one link ;) wow congrates heheh…bbye
Refer Cyberz Tab for updates


Networking in Virtual Box █████
Networking in Virtual Box is extremly funn and powerful. Today in this articles we are studying about How to perform networking in VirtualBox.
According to official website of Oracle we can configure around 8 virtual NIC’s(Network interface Controllers),but on GUI mode you will find only 4 to configure.
VirtualBox can virtualize the following six types of networking hardware(Adapter Type):
1.  AMD PCNet PCI II (Am79C970A)
2.  AMD PCNet FAST III (Am79C973) <===(the default)
3. Intel PRO/1000 MT Desktop (82540EM)
4.  Intel PRO/1000 T Server (82543GC)
5.  Intel PRO/1000 MT Server (82545EM)
6.  Paravirtualized network adapter (virtio-net)
The PCNet FAST III is the default because it is supported by nearly all operating systems out of the box, as well as the GNU GRUB boot manager
=>There are around roughly four type of modes through which NIC operates with respect to your host physical networking.
1.NAT(Network Address Translation)
2.Bridged networking
3.Internal networking
4.Host-only networking
let us discuss each one of them :)
 ██████  1.  NAT(Network Address Translation)
nat
It is a default mode of your VirtualMachine. In this mode every Guest Operating System(1,2,3) assigned same IP address (10.0.0.7) because they thinks they are on their own isolated network. And when they send their traffic via the gateway (10.0.0.1) VirtualBox rewrites the packets to make them appear as though they originated from the Host, rather than the Guest (running inside the Host).The outside world will never be able to send or receive packets with Guest machine directly. Logically it looks like above in the picture.
You can configure NAT setting by clicking on Virtualmachine “setting” ->”Network”->” Check Mark onEnable Network adapter”->”Attach to NAT” for example here in below picture
2=> NAT limitation.
 1.ICMP protocol limitations (You can’t ping or tracerouting)
 2.You can’t configure Client efficiently.
3.Receiving of UDP broadcasts is not reliable.
4.Forwarding host ports less then 1024 impossible
██████ 2.Bridged networking
bridgeWhen you connected with Bridged networking with your virtualmachine then it will act like a physical machine in your network.In this mode every Guest Operating system(1,2,3) assigned IP address(192.168.56.2),(192.168.56.3),(192.168.56.4) which is equivalent to host Operating system IP(192.168.56.1).It can access any services on the network such as external DHCP services,name lookup services, and routing iformation just like your Host operating system does. Logically it looks like above in the picture.
A virtual NIC’s is bridged to a physical NIC’s on you host like this by clicking on Virtual Machine “setting” ->”Network”->” Check Mark on Enable Network adapter”->”Attach to “Bridged adapter”  and in Name give “eth0″ or what ever your card name is, right now i am connected with ethernet card for example here in below picture
bridgesetting
Bridged network limitation
Currently, VirtualBox supports only IPv4 over wireless.(On Linux Host)
██████ 3. Internal Networking
internalnetworking
It is similar to your bridged network but in this mode Guest operating system are communicated internally. As you can see in this picture All Guest operating system (1,2,3) are internally connected with each others(The whole network is under vboxnet0). when you configure one or more Guest Operating system to sit on internal network stays within the host and is only visible to Virtual Machine or virtual network. You can configure all  Guest operating system via Host Operating System(Linux) Terminal via following commands. This will assigne the IP range to each individual Guest Operating system.
1
sudo <a class="zem_slink" title="VirtualBox" href="http://www.virtualbox.org" target="_blank" rel="homepage">VBoxManage</a> dhcpserver add --netname intnet --ip 0.0.0.0 --netmask 255.255.255.0 --lowerip 0.0.0.100 --upperip 0.0.0.199
Note: If you do not specify a network name, the network card will be attached to the network intnetby default.
You can configure Ineternal networking setting by clicking on Virtualmachine “setting” ->”Network”->” Check Mark on Enable Network adapter”->”Attach to “Internal Network” and in Name “intnet”
internal-networking
██████ 4.Host-only networking
host-only-networkingWhen you are connected with Host-only networking. Then let me tell you,It is a hybrid of Bridged networking + Internal networking. In this mode, the Guest machine can talk to each other and also with the Host machine. It will look like, all machine including Host and Guest Machines , are connected to a physical network .which is a dedicated network device, called vboxnet0.But you will not find “Vboxnet” as by default it is empty.
To Create vboxnet0 for host only adapter you need to type the following command in your host operating system terminal.
1
VBoxManage hostonlyif create
Then after You can configure Host only networking setting by clicking on Virtualmachine “setting” ->”Network”->” Check Mark on Enable Network adapter”->”Attach to “Host-onlyl Network” and in Name “vboxnet0″ <= By default  you will see. :)
host-only