36
Quan Bui Tien CS Course 51 Center for Training of Talented Engineers Hanoi University of Technology Hanoi, Vietnam

Introduction ns2

Embed Size (px)

Citation preview

Page 1: Introduction ns2

Quan Bui Tien CS Course 51

Center for Training of Talented Engineers Hanoi University of Technology

Hanoi, Vietnam

Page 2: Introduction ns2

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

Page 3: Introduction ns2

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.

Page 4: Introduction ns2

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

Page 5: Introduction ns2

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

Page 6: Introduction ns2

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

Page 7: Introduction ns2
Page 8: Introduction ns2
Page 9: Introduction ns2

Basic architecture

Page 10: Introduction ns2

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++

Page 11: Introduction ns2

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.

Page 12: Introduction ns2

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.

Page 13: Introduction ns2
Page 14: Introduction ns2
Page 15: Introduction ns2

1. Simulaton-related Object

2. Network Object.

3. Packet-related Object.

4. Helper Object.

Page 16: Introduction ns2

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.

Page 17: Introduction ns2

$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

Page 18: Introduction ns2

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:

Page 19: Introduction ns2

Node

Mobile node

Connector

Link

Packet

Page 20: Introduction ns2

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

Page 21: Introduction ns2

Node architecture

n0 n1

Addr

Classifier

Port

Classifier

classifier_

dmux_

entry_

0

1

Addr

Classifier

Port

Classifier

classifier_

dmux_

entry_

1

0

Page 22: Introduction ns2

Đượ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.

Page 23: Introduction ns2
Page 24: Introduction ns2

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…

Page 25: Introduction ns2
Page 26: Introduction ns2
Page 27: Introduction ns2

enqT_ queue_ deqT_

drophead_ drpT_

link_ ttl_

n1

entry_

head_

Page 28: Introduction ns2
Page 29: Introduction ns2
Page 30: Introduction ns2
Page 31: Introduction ns2

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..

Page 32: Introduction ns2

Các hàm quan trọng :

◦ recv()

◦ send()

◦ command()

Page 33: Introduction ns2

Mobile node.

Different simulation node and real node.

Page 34: Introduction ns2

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)

Page 35: Introduction ns2

Node config

Page 36: Introduction ns2