Introduction ns2

Post on 09-Jun-2015

1.102 views 6 download

Transcript of Introduction ns2

Quan Bui Tien CS Course 51

Center for Training of Talented Engineers Hanoi University of Technology

Hanoi, Vietnam

1. Overview

2. NS2-Architecture

3. NS2- main component

1. Simulaton-related Object

2. Network Object.

3. Packet-related Object.

4. Helper Object

4. NS2-wireless simulation

Ns2- Network Simulation version 2

Là một công cụ sử dụng để mô phỏng mạng trên nền hê

điều hành mã nguồn mở Linux.

Được phát triển từ những năm 1995 bởi nhóm DARPA

trong một dự án mang tên : VINT.

Phổ biến trong các nghiên cứu khoa học về mạng.

sim

tk8.0 otcl Tcl tcl8.0 ns-2 nam-1

tcl

ex test lib

...

...

tcl code

example

validation test

C++ code

tcl code core

NS2 simulation steps:

◦ Simulation design : scenario, perfomance result, type of expected result.

◦ Configure and running simulation: network configure, implementation.

◦ Evaluating the perfomance result : analyze result

Simulation Design Configure and

Running Evaluation

set ns [ new Simulator ]

set n0 [ $ns node]

set n1 [ $ns node]

$ns duplex-link $n0 $n1 5mbps 2ms Droptail

set tcp0 [ new Agent / TCP]

$ns attach-agent $n0 $tcp0

set ftp0 [ new Application / Traffic / FTP]

$ftp0 attach-agent $tcp0

set null0 [ new Agent / Null]

$ns attach-agent $n1 $null0

$ns connect $tcp0 $null0

$ns at 1.0 " $ftp0 start "

$ns at 4.0 " $ftp0 stop "

0 1

n

1

tcp

ftp

null

Basic architecture

NS2 sử dụng đồng thời 2 ngôn ngữ lập trình hướng đối

tượng Otcl và C++.

C++ : Định nghĩa các packet, đối tượng.

Otcl : Điều khiển quá trình mô phỏng, thực thi nó.

Event Scheduler NS

TclCL

OTcl

Tcl

Netw

ork

Co

mp

on

en

ts

C++

Mô phỏng giao thức chi tiết yêu cầu ngôn ngữ lập

trình hệ thống

◦ Thao tác trên byte, xử lý gói, thực thi thuật toán

◦ Tốc độ thời gian thực là quan trọng nhất

Thực hiện bất kỳ việc gì mà cần phải xử lý tứng

packet của một luồng.

Thay đổi hành vi của lớp C++ đang tồn tại theo

những hướng đã không được lường trước.

Mô phỏng những thông số hay cấu hình thay đổi

◦ Tham dò nhanh một số tình huống

◦ Thời gian tương tác (thay đổi mô hình hay chạy lại) là quan

trọng

Cấu hình, thiết lập hay những gì chỉ làm một lần.

Thực hiện những cái ta muốn bằng cách thao tác trên

các đối tượng C++ đang tồn tại.

1. Simulaton-related Object

2. Network Object.

3. Packet-related Object.

4. Helper Object.

Các đối tượng này được sử dụng để điều khiển trong

suốt quá trình mô phỏng.

Thực chất của việc điều khiển này là lập lịch và thực

thi các event ( sự kiện ). NS2 sử dụng cơ chế : Discrete-

Event Simulation.

$ns at 0.5 “$ftp start”

$ns at 4.5 “$ftp stop”

$ns run

time_, uid_, next_, handler_

head_ ->

handler_ -> handle()

time_, uid_, next_, handler_ insert

4 đối tượng điển hình của nhóm các đối tượng điều

khiển này là :

◦ Simulator : set ns [new Simulator]

◦ Event :

◦ Handler :

◦ Scheduler:

Node

Mobile node

Connector

Link

Packet

Là đối tượng cơ bản, là cách

biểu diễn các đối tượng mạng

như host, router… trong quá

trình mô phỏng.

Node giữ 2 vai trò quan trọng

trong NS2:

◦ Router

◦ Host

Node architecture

n0 n1

Addr

Classifier

Port

Classifier

classifier_

dmux_

entry_

0

1

Addr

Classifier

Port

Classifier

classifier_

dmux_

entry_

1

0

Được định nghĩa trong ns2/common/node {.h,.cc}.

Mọi node đều định nghĩa:

◦ Address hoặc id (address_, id_)

◦ Danh sách node láng giềng. ( neghbor_list_).

◦ Danh sách các agent (agent_).

◦ Kiểu node (nodetype_).

◦ Module định tuyến.

Thực thi các thao tác, nhận,

gửi, chuyển tiếp các gói tin.

Là lớp cơ sở cho các lớp

quan trọng liên quan đến

links, delaylinks, agent,

trace…

enqT_ queue_ deqT_

drophead_ drpT_

link_ ttl_

n1

entry_

head_

Các giao thức trong Ns2 đều được thể hiện dưới các

Agents

Các agent kết hợp với các thành phần khác để tạo thành

một đối tượng node mạng hoàn chỉnh.

Các giao thức ứng dụng : http (httpAgent), telnet

(telnetAgent)…

Các giao thức chuyển vận: tcp (TCPAgent),

udp(UDPAgent)…

Các giao thức định tuyến : GPSR, LEACH..

Các hàm quan trọng :

◦ recv()

◦ send()

◦ command()

Mobile node.

Different simulation node and real node.

Kế thừa từ class NODE.

Consist :

◦ Link Layer (LL)

◦ ARP module connected to LL

◦ Interface priority queue (IFq)

◦ MAC layer (MAC)

◦ Network Interface (netIF)

Node config