The Basic Concept NSG2

21
The basic concept NSG2 To generate the script file using NSG2 very simple in design NSG2 users when it is hoped that the most natural and most intuitive way to generate ns2 script file, so as far as possible "WYSIWYG" approach to the design, that is Most users see on the screen directly to the location of Node, as well as other relevant information (coordinates, users can connect so ...), the script is generated, the demand for their own self to make appropriate changes After the script file archive (. tcl) then referred to the implementation of ns2 can, so use very simple, if you can grasp the key points, you can easily operate NSG2. The following will address the basic concepts of several NSG2 a simple description, in NSG2, the most convenient place is to have wireless network in the Node coordinates to the author's experience, writing the script file ns2 wireless network must provide The coordinates of each Node (including x, y, z), is to produce large and regular Node, will write the script file become very cumbersome, and this is the original author wanted to write a tool to assist their users Causes the script file generated to NSG2 to generate the coordinates of Node is a fairly easy task. When using NSG2 mainly divided into five modes, which are mostly in accordance with ns2 several objects to the main design, the relationship between the objects can refer to Figure 3. To switch between each mode, just press the button to switch the top of the screen, NSG2 contains the following five modes: modes: 1. Hand mode 2. Node mode 3. Link mode () 4. Agent mode 5. Application mode

Transcript of The Basic Concept NSG2

Page 1: The Basic Concept NSG2

The basic concept NSG2To generate the script file using NSG2 very simple in design NSG2 users when it is hoped that the most natural and most intuitive way to generate ns2 script file, so as far as possible "WYSIWYG" approach to the design, that is Most users see on the screen directly to the location of Node, as well as other relevant information (coordinates, users can connect so ...), the script is generated, the demand for their own self to make appropriate changes After the script file archive (. tcl) then referred to the implementation of ns2 can, so use very simple, if you can grasp the key points, you can easily operate NSG2.The following will address the basic concepts of several NSG2 a simple description, in NSG2, the most convenient place is to have wireless network in the Node coordinates to the author's experience, writing the script file ns2 wireless network must provide The coordinates of each Node (including x, y, z), is to produce large and regular Node, will write the script file become very cumbersome, and this is the original author wanted to write a tool to assist their users Causes the script file generated to NSG2 to generate the coordinates of Node is a fairly easy task.When using NSG2 mainly divided into five modes, which are mostly in accordance with ns2 several objects to the main design, the relationship between the objects can refer to Figure 3. To switch between each mode, just press the button to switch the top of the screen, NSG2 contains the following five modes:

modes:

1. Hand mode

2. Node mode

3. Link mode(只適用於有線網路劇本)

4. Agent mode

5. Application mode

Node Node

Agent Agent

Application Application

LinkComplex, Duplex

CBR, FTP ...

TCP, UDP ...

Page 2: The Basic Concept NSG2

圖 3. NSG2

In Hand mode mode features the most simple, mainly to allow the user to adjust the

range to watch. When building a large script maycontain a large number of Node, the

screen may not fit all of theobjects, when the Hand mode can be used to adjust the

scope toview, use the mouse just hold the left button, then drag the Be

Node modeIn Node mode mode, the user can configure Node position, if it is wired network script, then the coordinates of Node is not very important, mainly to set the relative position of fills, but the NSG will set according to the relevant location of Node To configure the position of the NAM in the Node.When the script in the design of wireless networks, Node coordinates to become very important because the coordinates of each Node will affect the transmission range, signal strength and Routing protocol, etc. So when the script in the build wireless networks, NSG2 will Bottom of the screen shows the coordinates of the information as a reference. And the NSG would assume that the transmission of wireless network Node distance 250m (the actual simulation of the effective transmission distance is set according to the wireless network parameters to determine), so when the two Node within the transmission distance of 250m when, NSG2 will Draw a connection between the two, the user can click Node and drag the mouse to adjust the position to be placed in the Node. In addition, under the Node mode also provides a way to generate multiple Node, which includes: Chain vertical and horizontal, Grid (n × n) and Random, users simply set the distance between Node and Node, Can easily produce large and regular network topologies.

Link mode only applies to the wired network script does not need the wireless network settings available in Link mode to set the link between Node and Node, such as Simplex-link or Duplex-link, and set the relevant parameters (Transmission rate, the type of queue, etc.). When you first set the property, and then use the mouse to select the two Node to link to, set up, they could use the link right to modify or delete the link parameters.

In Agent mode, the user can set on the Node to be attached to the protocol (in ns2

called the Agent), the main support current NSG2 TCP (including a variety of

deformation) and the UDP protocol, the set method is very simple, as long as you want

Page 3: The Basic Concept NSG2

Additional Node click the left mouse button, and then click the location to be placed to

Agent, Agent attached which focuses on a Node and not its location, just to set the

location of the display screen fills location so the user can easily be placed in clearly

identifiable location.

In addition to setting in Agent mode belongs Node Agent, but also can set the

transmitter and receiver side information, select the two to use as long as the Agent can

be matched, in general, in the ns2 TCP Agent must correspond to the TCP- Sink Agent,

and the UDP Agent is mapped to the Null Agent, which TCP Agent and the UDP Agent

is the sender, and TCP-Sink Agent and Null Agent is a TCP Agent, respectively, and

UDP Agent of the receiver. In setting the transmitter and receiver pair should pay

attention to the problem, for example, pairing up two TCP Agent, or a TCP Agent and a

UDP Agent paired up is meaningless.

When setting the Agent, the right can also be used to modify the parameters to modify

or delete Agent Agent, some details of the parameters can not be directly produced

Agent settings, you must first establish a good Agent, and then use the right-click pop-

up menu to set, for example, TCP's congestion window and packet size, and other

related settings.

Application mode

In the Application mode model can be used to set the top under the application, such as

CBR with FTP, setting as long as the Agent to attach, click the left mouse button, and

then click Application to be placed in the position to the same The focus of the

Application Agent not attached in its position, so long as the clear position of the set

easily identifiable location.

Agent time and setting, as well as set the Application, you can use right to modify or

delete the parameters of Application Application, some of the parameters in the

production Application details can not be set directly, we must first establish a good

Application, re-use right The pop-up menu to set, for example, the Transmission rate

and the CBR packet size and other related settings.

Parameters

In addition to these five modes, in addition to the function parameter, the script in the

wired network, the parameter set contains the simulation time and Trace file name

Page 4: The Basic Concept NSG2

(including the NAM's Trace files), but when the script in a wireless network , the other

more than a wireless network (Wireless) and channel characteristics (Channel) of the

relevant settings. Comparison is worth mentioning that the relevant characteristics of

the channel settings, NSG2 802.11b provides a set of analog reference value, but in

case of default is not enabled, if the user wants to enable these settings, then select the

picture box to the left, of course, the needs of the simulation can set a new value.

When everything is set finished, press the button to generate TCL TCL script file, the

user can own this time in the script file to make some adjustments, adjustments can

save the file after completion and use ns2 to do it.

Finally, there are several points to note:

1. When setting parameters, if the necessary parameters, the user must provide, or

NSG warning message will pop up; if non-essential parameters, you can enter -1, -1 if

the parameter is set to generate TCL script file so when the NSG This parameter is

ignored. In addition, NSG not to check the correctness of parameters, such as entering

a queue size of -50 then the NSG will be "honest," writes the value to which the script

file.

2. When the deleted object, the object belongs to one and is related objects will be

deleted, such as deleting a Node, then all connected to the Node's Link and all the

Agent attached to the Node will be deleted, and when the Agent is deleted , all attached

to the Application of the Agent and was also a deleted.

3. If the set Agent, do not set the sender (or receiver), then generate TCL script file

when the Agent will be ignored, because even if the Agent's configuration files were

added to the simulation scenario there will be no effect.

Wired network with the NSG to generate the script

Then I will introduce a simple example of how to create a wired network NSG in the

script file, the simulation environment shown in Figure 4.

Page 5: The Basic Concept NSG2

1. N0 and n4 is between a protocol UDP CBR connection (marked as cbr0).

2. N1 and n5 as between a protocol UDP CBR connection (marked as cbr1).

3. N0-n2, n1-n2, n3-n4, n3-n5 bandwidth of between 2Mbps, the delay time is set

to 10ms.

4. N2-n3 between the bandwidth is set to 1Mbps, delay time is set to 20ms.

5. all the links are all Duplex-link, queue management mechanisms are based on

the DropTail, and queue length (Queue limit) are set to 10 packets length.

Set in the application areas:

1. Cbr0 packet size is set to 1500bytes, and to the transmission speed of 1Mbps

to send data, the simulation start time of 1 seconds to send data, in the end of 4

seconds to send.

2. Cbr1 packet size is also set to 1500bytes, and to the transmission speed of

1Mbps to send data and the simulation time is 2 seconds starts sending data, in

the first 3 seconds when the end of the transfer.

3. the whole simulation time is set to 5 seconds.

Note: Due to the UDP protocol ns2 default packet size is 1000bytes, that is, the

time when the UDP packet size is larger than 1000bytes packet will be cut into

smaller pieces to send (Segmentation), so the setting needs an UDP packet size

is 1500bytes applications in order to avoid the top of the UDP packet is cut.

In this experiment, you can find two cbr connection will be through the n2-n3 this

link and this link with a bandwidth of 1Mbps, but cbr0 transmission speed of

Page 6: The Basic Concept NSG2

1Mbps, it makes all the n2-n3 bandwidth Percentage of packets to be cbr0 full,

so when cbr1 began after the transfer, will find n2-n3 traffic congestion began to

change over time, the queue when n3 is filled, it will begin to have some packets

Discarded in n3, this phenomenon has continued to cbr1 after the end of

transmission.

Practice

Step1: Add the script of a wired network, users can Scenario → New wired

scenario to create (or by pressing Ctrl W), is established as shown in Figure 5, in

the case of default, will switch to the NSG Node mode (Node button becomes

gray), which means that users can start to establish Node.

2.

Step2: create the script needed start Node, use the mouse to click directly to the location you want to display to create a Node Node, in this example to establish the relative position of the six Node as shown in Figure 6, bottom right by adjusting the screen Bar shows the proportion of different

Page 7: The Basic Concept NSG2

Figure 6: setting the relative positions of six nodeStep3: Set the link between Node, the first switch to the Link mode (press the Link button or shortcut keys Ctrl +3), and then order the following parameters will be set up.1. Link-type: duplex-link2. Queue type: DropTail3. Capacity: 2Mbps4. Propagation delay: 10ms5. Queue size: 10Step4: Click the mouse manner n0-n2, n1-n2, n3-n4 and n3-n5 link between the established, then the Capacity is set to 1Mbps, Propagation delay is set to 20ms, and then create n2 -n3 between the links, as shown in Figure 7 after the establishment of a good, if there are parameters to establish the process did not set up, you can also right click on the link to be modified.

Page 8: The Basic Concept NSG2

Figure 7: set up the link between the six nodeStep5: Then switch to the Agent mode (press the Agent button or shortcut keys Ctrl +4) to the protocol settings. First, select the Agent type to UDP and set the packet size (Packet size) is 1500 bytes, and n0 and n1 with the establishment of an Agent, then select the Agent type is NULL, and n4, n5, on the establishment of a NULL Agent. After the establishment of a good Agent Agent will continue to set the connection between the way its set to establish a connection with the mouse to select the two Agent, respectively, in this (udp0, null2) and (udp1, null3) between Establish a connection, shown in Figure 8 after being established.

Page 9: The Basic Concept NSG2

Figure 8: AgentsStep6: Switch to the Application mode (press the Application button or shortcut keys Ctrl +5) to the upper application settings, set the Application type CBR and set the start time (Start time) 1 second, end time (Stop time) 4 seconds, the packet size is 1500bytes, transmission speed of 1Mbps, then n0 on the establishment of a CBR Application, then the start time (Start time) for 2 seconds, end time (Stop time) is 3 seconds, and further on in the n1 The establishment of a CBR Application, as shown in Figure

Page 10: The Basic Concept NSG2

Figure 9: Creating ApplicationStep7: Finally, set the simulation parameters (you can press the Parameters button or shortcut keys Ctrl +6), in this case, because the script is to build a wired network, so only some of the parameters to the simulation time (Simulation time ) Is set to 5.0, and specify the file name to generate Trace, as shown in Figure 10.

Figure 10: Set simulation parametersStep8: When everything has finished press the TCL set button (quick key Ctrl +7) to generate script files

Page 11: The Basic Concept NSG2

To generate the script file, and each will produce the script file is created in a separate window, the user at this time can also be modified to do according to their needs, as shown in Figure 11.

圖 11. 產生劇本檔

Step9:按下 Save按鈕(快速鍵 Alt+S)將產生出來的 TCL檔儲存起來之後,便可交由

ns2開始進行模擬,產生出來的劇本檔如下 。

# This script is created by NSG2 beta1

# <http://wushoupong.googlepages.com/nsg>

#===================================

# Simulation parameters setup

Page 12: The Basic Concept NSG2

#===================================

set val(stop) 5.0 ;# time of simulation end

#===================================

# Initialization

#===================================

#Create a ns simulator

set ns [new Simulator]

#Open the NS trace file

set tracefile [open out.tr w]

$ns trace-all $tracefile

#Open the NAM trace file

set namfile [open out.nam w]

$ns namtrace-all $namfile

#===================================

# Nodes Definition

#===================================

#Create 6 nodes

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

set n5 [$ns node]

Page 13: The Basic Concept NSG2

#===================================

# Links Definition

#===================================

#Createlinks between nodes

$ns duplex-link $n0 $n2 2.0Mb 10ms DropTail

$ns queue-limit $n0 $n2 10

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

$ns queue-limit $n2 $n1 10

$ns duplex-link $n4 $n3 2.0Mb 10ms DropTail

$ns queue-limit $n4 $n3 10

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

$ns queue-limit $n3 $n5 10

$ns duplex-link $n2 $n3 1.0Mb 20ms DropTail

$ns queue-limit $n2 $n3 10

#Give node position (for NAM)

$ns duplex-link-op $n0 $n2 orient right-down

$ns duplex-link-op $n2 $n1 orient left-down

$ns duplex-link-op $n4 $n3 orient left-down

$ns duplex-link-op $n3 $n5 orient right-down

$ns duplex-link-op $n2 $n3 orient right

#===================================

# Agents Definition

#===================================

#Setup a UDP connection

set udp0 [new Agent/UDP]

Page 14: The Basic Concept NSG2

$ns attach-agent $n0 $udp0

set null2 [new Agent/Null]

$ns attach-agent $n4 $null2

$ns connect $udp0 $null2

$udp0 set packetSize_ 1500

#Setup a UDP connection

set udp1 [new Agent/UDP]

$ns attach-agent $n1 $udp1

set null3 [new Agent/Null]

$ns attach-agent $n5 $null3

$ns connect $udp1 $null3

$udp1 set packetSize_ 1500

#===================================

# Applications Definition

#===================================

#Setup a CBR Application over UDP connection

set cbr0 [new Application/Traffic/CBR]

$cbr0 attach-agent $udp0

$cbr0 set packetSize_ 1500

$cbr0 set rate_ 1.0Mb

$cbr0 set random_ null

$ns at 1.0 "$cbr0 start"

$ns at 4.0 "$cbr0 stop"

#Setup a CBR Application over UDP connection

set cbr1 [new Application/Traffic/CBR]

Page 15: The Basic Concept NSG2

$cbr1 attach-agent $udp1

$cbr1 set packetSize_ 1500

$cbr1 set rate_ 1.0Mb

$cbr1 set random_ null

$ns at 2.0 "$cbr1 start"

$ns at 3.0 "$cbr1 stop"

#===================================

# Termination

#===================================

#Define a 'finish' procedure

proc finish {} {

global ns tracefile namfile

$ns flush-trace

close $tracefile

close $namfile

exec nam out.nam &

exit 0

}

$ns at $val(stop) "$ns nam-end-wireless $val(stop)"

$ns at $val(stop) "finish"

$ns at $val(stop) "puts \"done\" ; $ns halt"

$ns run

NSG arising out of the script file will automatically start NAM to render the simulation process, if the NAM do not want to start setting the parameters in the NSG when the NAM File option is set to -1, the NSG will not command the start NAM Which is written to the script file. Figure 12 for the NAM start screen, can be seen in the simulation time of 2.1 seconds, n2 due to the influx of too many packets while the packet is discarded phenomenon occurs.

Page 16: The Basic Concept NSG2

Following the interception of a Trace file part of the contents, the contents of the Trace files can also be observed that the phenomenon of the packet is discarded (d on behalf of drop).

前略

r 2.12 3 5 cbr 1500 ------- 0 1.0 5.0 2 88

r 2.12 0 2 cbr 1500 ------- 0 0.0 4.0 92 101

+ 2.12 2 3 cbr 1500 ------- 0 0.0 4.0 92 101

d 2.12 2 3 cbr 1500 ------- 0 0.0 4.0 92 101

- 2.12 2 3 cbr 1500 ------- 0 1.0 5.0 4 92

r 2.124 1 2 cbr 1500 ------- 0 1.0 5.0 9 102

+ 2.124 2 3 cbr 1500 ------- 0 1.0 5.0 9 102

r 2.128 2 3 cbr 1500 ------- 0 1.0 5.0 3 90

+ 2.128 3 5 cbr 1500 ------- 0 1.0 5.0 3 90

- 2.128 3 5 cbr 1500 ------- 0 1.0 5.0 3 90

+ 2.128 0 2 cbr 1500 ------- 0 0.0 4.0 94 105

- 2.128 0 2 cbr 1500 ------- 0 0.0 4.0 94 105

+ 2.132 1 2 cbr 1500 ------- 0 1.0 5.0 11 106

- 2.132 1 2 cbr 1500 ------- 0 1.0 5.0 11 106

r 2.132 3 4 cbr 1500 ------- 0 0.0 4.0 86 89

Page 17: The Basic Concept NSG2

r 2.132 0 2 cbr 1500 ------- 0 0.0 4.0 93 103

+ 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 93 103

d 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 93 103

- 2.132 2 3 cbr 1500 ------- 0 0.0 4.0 88 93

r 2.136 1 2 cbr 1500 ------- 0 1.0 5.0 10 104

+ 2.136 2 3 cbr 1500 ------- 0 1.0 5.0 10 104