3. 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.
4. sim
tcl8.0 tk8.0 otcl Tcl ns-2 nam-1
tcl code C++ code
tcl ...
example
ex test lib ...
validation test tcl code core
5. NS2 simulation steps:
Configure and
Simulation Design Evaluation
Running
◦ Simulation design : scenario, perfomance result, type of expected
result.
◦ Configure and running simulation: network configure,
implementation.
◦ Evaluating the perfomance result : analyze result
6. 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 ftp
set null0 [ new Agent / Null] tcp null
$ns attach-agent $n1 $null0
0 1
$ns connect $tcp0 $null0 n
1
$ns at 1.0 " $ftp0 start "
$ns at 4.0 " $ftp0 stop "
10. 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
Components
Network
OTcl
Tcl
C++
11. 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.
12. 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.
16. 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.
17. time_, uid_, next_, handler_
head_ ->
handler_ -> handle()
insert time_, uid_, next_, handler_
$ns at 0.5 “$ftp start”
$ns at 4.5 “$ftp stop”
$ns run
18. 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:
19. Node
Mobile node
Connector
Link
Packet
20. 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
22. Đượ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.
23.
24. 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…
31. 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..
32. Các hàm quan trọng :
◦ recv()
◦ send()
◦ command()
33. Mobile node.
Different simulation node and real node.
34. 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)