SlideShare a Scribd company logo
1 of 36
Download to read offline
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

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

                        tcl code                       C++ code
                                     tcl         ...
         example
                   ex         test         lib         ...
                   validation test           tcl code core
   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
   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 "
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




                                         Components
                                           Network
                         OTcl

                        Tcl

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


                    Port                             Port
                  Classifier                       Classifier
           Addr                             Addr
         Classifier                       Classifier
                  0      dmux_                    1       dmux_
entry_            1              entry_           0
          classifier_                      classifier_
   Đượ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…
n1
                                                    entry_
head_

        enqT_   queue_      deqT_    link_   ttl_




                drophead_    drpT_
   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
Introduction ns2

More Related Content

What's hot

Virtual cluster thesis
Virtual   cluster thesisVirtual   cluster thesis
Virtual cluster thesisSentifi
 
Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)Linh Nguyen
 
Threads - Lập trình hệ thống IT4786
Threads - Lập trình hệ thống IT4786Threads - Lập trình hệ thống IT4786
Threads - Lập trình hệ thống IT4786Đông Nguyễn Văn
 
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchHướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchLevis Nickaster
 

What's hot (6)

Virtual cluster thesis
Virtual   cluster thesisVirtual   cluster thesis
Virtual cluster thesis
 
Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)Bai tap lap trinh mang(1)
Bai tap lap trinh mang(1)
 
Threads - Lập trình hệ thống IT4786
Threads - Lập trình hệ thống IT4786Threads - Lập trình hệ thống IT4786
Threads - Lập trình hệ thống IT4786
 
Tổng hợp nè
Tổng hợp nèTổng hợp nè
Tổng hợp nè
 
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịchHướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
Hướng dẫn deobfuscate DotnetPatcher 3.1 - Bài dịch
 
Lt socket
Lt socketLt socket
Lt socket
 

Similar to Introduction ns2

Snm ptoantap diep_thanhnguyen_-chuong3
Snm ptoantap diep_thanhnguyen_-chuong3Snm ptoantap diep_thanhnguyen_-chuong3
Snm ptoantap diep_thanhnguyen_-chuong3anhhaibi
 
Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Son Giap
 
Bảo mật dữ liệu
Bảo mật dữ liệuBảo mật dữ liệu
Bảo mật dữ liệuSon Nguyen
 
Security Bootcamp 2013 penetration testing (basic)
Security Bootcamp 2013   penetration testing (basic)Security Bootcamp 2013   penetration testing (basic)
Security Bootcamp 2013 penetration testing (basic)Security Bootcamp
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfssuserd01a5c
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1htpsccbb159
 
Vhdl Slides
Vhdl SlidesVhdl Slides
Vhdl Slideshoadktd
 
OpenWIPS-ng report Vietnamese
OpenWIPS-ng report VietnameseOpenWIPS-ng report Vietnamese
OpenWIPS-ng report VietnameseHoàng Tuấn Lê
 
Slides Lập trình mạng
Slides Lập trình mạngSlides Lập trình mạng
Slides Lập trình mạngasakebigone
 
Snm ptoantap diep_thanhnguyen_-chuong2
Snm ptoantap diep_thanhnguyen_-chuong2Snm ptoantap diep_thanhnguyen_-chuong2
Snm ptoantap diep_thanhnguyen_-chuong2anhhaibi
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfssuserd01a5c
 
Mo phong bang Matlab-Simulinhk_P1.ppt
Mo phong bang Matlab-Simulinhk_P1.pptMo phong bang Matlab-Simulinhk_P1.ppt
Mo phong bang Matlab-Simulinhk_P1.pptHaTrungKien2
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.netHung Pham
 

Similar to Introduction ns2 (20)

Snm ptoantap diep_thanhnguyen_-chuong3
Snm ptoantap diep_thanhnguyen_-chuong3Snm ptoantap diep_thanhnguyen_-chuong3
Snm ptoantap diep_thanhnguyen_-chuong3
 
Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879Linux thietlaphethongmangubunt-45879
Linux thietlaphethongmangubunt-45879
 
Bảo mật dữ liệu
Bảo mật dữ liệuBảo mật dữ liệu
Bảo mật dữ liệu
 
Vhdl
VhdlVhdl
Vhdl
 
Security Bootcamp 2013 penetration testing (basic)
Security Bootcamp 2013   penetration testing (basic)Security Bootcamp 2013   penetration testing (basic)
Security Bootcamp 2013 penetration testing (basic)
 
OOP_02_Java can ban.pdf
OOP_02_Java can ban.pdfOOP_02_Java can ban.pdf
OOP_02_Java can ban.pdf
 
Dsd05 01-rpca
Dsd05 01-rpcaDsd05 01-rpca
Dsd05 01-rpca
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
01 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_101 ngon ngu_c#_phan_1
01 ngon ngu_c#_phan_1
 
Cain & abel
Cain & abelCain & abel
Cain & abel
 
Vhdl Slides
Vhdl SlidesVhdl Slides
Vhdl Slides
 
OpenWIPS-ng report Vietnamese
OpenWIPS-ng report VietnameseOpenWIPS-ng report Vietnamese
OpenWIPS-ng report Vietnamese
 
Slides Lập trình mạng
Slides Lập trình mạngSlides Lập trình mạng
Slides Lập trình mạng
 
Tìm hiểu về NodeJs
Tìm hiểu về NodeJsTìm hiểu về NodeJs
Tìm hiểu về NodeJs
 
Report
ReportReport
Report
 
Phan 1 sv
Phan 1   svPhan 1   sv
Phan 1 sv
 
Snm ptoantap diep_thanhnguyen_-chuong2
Snm ptoantap diep_thanhnguyen_-chuong2Snm ptoantap diep_thanhnguyen_-chuong2
Snm ptoantap diep_thanhnguyen_-chuong2
 
OOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdfOOP_01_Tong Quan LTHDT.pdf
OOP_01_Tong Quan LTHDT.pdf
 
Mo phong bang Matlab-Simulinhk_P1.ppt
Mo phong bang Matlab-Simulinhk_P1.pptMo phong bang Matlab-Simulinhk_P1.ppt
Mo phong bang Matlab-Simulinhk_P1.ppt
 
Giáo trình vb.net
Giáo trình vb.netGiáo trình vb.net
Giáo trình vb.net
 

Introduction ns2

  • 1. Quan Bui Tien CS Course 51 Center for Training of Talented Engineers Hanoi University of Technology Hanoi, Vietnam
  • 2. 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
  • 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 "
  • 7.
  • 8.
  • 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.
  • 13.
  • 14.
  • 15. 1. Simulaton-related Object 2. Network Object. 3. Packet-related Object. 4. Helper Object.
  • 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
  • 21. Node architecture n0 n1 Port Port Classifier Classifier Addr Addr Classifier Classifier 0 dmux_ 1 dmux_ entry_ 1 entry_ 0 classifier_ classifier_
  • 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…
  • 25.
  • 26.
  • 27. n1 entry_ head_ enqT_ queue_ deqT_ link_ ttl_ drophead_ drpT_
  • 28.
  • 29.
  • 30.
  • 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)