huong dan mo phong

64
MỤC LỤC LỜI CẢM ƠN................................................. 3 LỜI MỞ ĐẦU................................................. 4 Chương 1. GIỚI THIỆU MẠNG MANET............................5 1.1 Khái niệm mạng Manet.................................5 1.2 Phân loại mạng Manet.................................6 1.2.1 Phân loại mạng Manet theo cách thức định tuyến. . .6 1.2.1.1......................................Single-hop 6 1.2.1.2.....................................Multi – hop 7 1.2.2 Phân loại Manet theo chức năng của Node..........7 1.2.2.1.............................Mạng Manet đẳng cấp 7 1.2.2.2.............................Mạng Manet phân cấp 7 1.2.2.3..............................Mạng Manet kết hợp 8 1.3 Nhận xét.............................................9 Chương 2. MÔ PHỎNG MẠNG DÙNG NS2..........................10 2.1 Công cụ mô phỏng NS2................................10 2.1.1 Tổng quan về NS2................................10 2.1.2 Kiến trúc của NS2...............................10 2.1.3 Đặc điểm của NS-2...............................14 2.1.4 Các thành phần cấu hình mạng trong NS-2.........14 2.1.4.1...................................Lớp Simulator 14 2.1.4.2...............................Cấu hình cho Node 15 2.1.4.3............................Các Agent trong NS-2 16 2.1.5 Giới thiệu phần mềm Nam dùng kết hợp với NS-2. . .17 2.2 Sử dụng OTCL SCRIPT để viết các kịch bản mô phỏng mạng trong NS-2...............................................20 2.2.1 Tổng quan về OTCL SCRIPT........................20 2.2.2 Khởi tạo Node...................................27 2.2.3 Khởi tạo link...................................28 2.2.4 Khởi tạo Network Agents.........................29 2.2.5 Các loại Traffic................................29 2.2.6 Các dịch vụ cơ bản trong Internet...............29 2.3 Sử dụng TraceGraph để phân tích kết quả mô phỏng....30 1

Upload: hoang-hoai-niem

Post on 27-Oct-2015

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Huong Dan Mo Phong

MỤC LỤC

LỜI CẢM ƠN........................................................................................................................3LỜI MỞ ĐẦU........................................................................................................................4Chương 1. GIỚI THIỆU MẠNG MANET......................................................................5

1.1 Khái niệm mạng Manet..........................................................................................51.2 Phân loại mạng Manet............................................................................................6

1.2.1 Phân loại mạng Manet theo cách thức định tuyến.........................................61.2.1.1 Single-hop..................................................................................................61.2.1.2 Multi – hop.................................................................................................7

1.2.2 Phân loại Manet theo chức năng của Node....................................................71.2.2.1 Mạng Manet đẳng cấp................................................................................71.2.2.2 Mạng Manet phân cấp................................................................................71.2.2.3 Mạng Manet kết hợp..................................................................................8

1.3 Nhận xét.................................................................................................................9Chương 2. MÔ PHỎNG MẠNG DÙNG NS2...............................................................10

2.1 Công cụ mô phỏng NS2.......................................................................................102.1.1 Tổng quan về NS2........................................................................................102.1.2 Kiến trúc của NS2........................................................................................102.1.3 Đặc điểm của NS-2......................................................................................142.1.4 Các thành phần cấu hình mạng trong NS-2.................................................14

2.1.4.1 Lớp Simulator..........................................................................................142.1.4.2 Cấu hình cho Node...................................................................................152.1.4.3 Các Agent trong NS-2..............................................................................16

2.1.5 Giới thiệu phần mềm Nam dùng kết hợp với NS-2.....................................172.2 Sử dụng OTCL SCRIPT để viết các kịch bản mô phỏng mạng trong NS-2........20

2.2.1 Tổng quan về OTCL SCRIPT......................................................................202.2.2 Khởi tạo Node..............................................................................................272.2.3 Khởi tạo link.................................................................................................282.2.4 Khởi tạo Network Agents............................................................................292.2.5 Các loại Traffic............................................................................................292.2.6 Các dịch vụ cơ bản trong Internet................................................................29

2.3 Sử dụng TraceGraph để phân tích kết quả mô phỏng..........................................30Chương 3. MÔ PHỎNG MẠNG MANET SỬ DỤNG NS2.........................................36

3.1 Kịch bản mô phỏng Manet sử dụng NS-2............................................................363.2 Phân tích kết quả chạy mô phỏng........................................................................36

PHỤ LỤC. Cài đặt NS2 trong Windows.............................................................................41KẾT LUẬN..........................................................................................................................51TÀI LIỆU THAM KHẢO....................................................................................................52

1

Page 2: Huong Dan Mo Phong

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Biểu đồ mạng Manet..........................................................................................6Hình 1.2 Định tuyến Single-hop.......................................................................................6Hình 1.3 Định tuyến Multi – hop......................................................................................7Hình 1.4 Mô hình mạng phân cấp.....................................................................................8Hình 1.5 Mô hình mạng Aggregate...................................................................................8Hình 2.1 Mô hình đơn giản của NS................................................................................10Hình 2.2 Luồng các sự kiện cho file Tcl chạy trong Nam..............................................12Hình 2.3 Kiến trúc của NS-2...........................................................................................12Hình 2.4 TclCL hoạt động như liên kết giữa A và B......................................................13Hình 2.5 Giao diện đồ hoạ Nam......................................................................................15Hình 2.6 Cửa sổ Nam......................................................................................................16Hình 2.7 Cửa sổ minh họa Nam......................................................................................17Hình 2.8 Topology mạng đơn giản và kịch bản mô phỏng.............................................18Hình 2.9 Minh họa NAM cho kịch bản OTcl.................................................................22Hình 2.10 Node unicast và node multicast....................................................................25Hình 2.11 Biểu diễn link giữa 2 node...........................................................................25Hình 2.12 Giao diện đồ hoạ người dùng TraceGraph...................................................31Hình 2.13 Chèn đối tượng trace....................................................................................31Hình 3.1 Mô hình mạng MANET trong NAM...............................................................33Hình 3.2 Kết quả phân tích file.tr....................................................................................37

2

Page 3: Huong Dan Mo Phong

LỜI CẢM ƠN

Em xin chân thành cảm ơn Khoa Công nghệ Thông tin trường Đại học Sư Phạm Hà Nội đã tạo điều kiện thuận lợi để em được học tập và tham gia làm khoá luận tốt nghiệp.

Em xin gửi lời cảm ơn chân thành tới thầy giáo Phạm Tuấn Minh đã tận tình hướng dẫn em hoàn thành khoá luận.

Mặc dù đã cố gắng và nỗ lực song báo cáo chắc không tránh khỏi những thiếu sót rất mong sự góp ý của thầy cô và các bạn.

Hà Nội, ngày 16/4/2008Sinh viên: Ngô Thị Thu Hà

3

Page 4: Huong Dan Mo Phong

LỜI MỞ ĐẦU

Ngày nay, mạng máy tính đang ngày càng phát triển không ngừng và kèm theo đó là tính phức tạp. Các dự án nghiên cứu, xây dựng và phát triển các môi trường giả lập mạng chỉ mới đề cập và quan tâm đúng mức trong thời gian gần đây. Sử dụng công cụ mô phỏng mạng giúp chúng ta đánh giá được các thông số về hiệu năng, chất lượng dịch vụ của các mô hình mạng mới cũng như đánh giá được các thuật toán trong mạng máy tính mà không phải tốn nhiều chi phí. Điều này có ý nghĩa trong việc nghiên cứu các thuật toán hay các mô hình mạng được ứng dụng trên thực tế. Mục đích của đề tài “Mô phỏng mạng Manet” là tìm hiểu mô hình mạng Manet và tìm hiểu về công cụ mô phỏng mạng NS-2 và bước đầu mô phỏng mạng Manet sử dụng công cụ mô phỏng NS-2.

4

Page 5: Huong Dan Mo Phong

Chương 1. GIỚI THIỆU MẠNG MANET

1.1 Khái niệm mạng ManetKhái niệm

Manet ( Mobile Ad-hoc Network) - Mạng không dây di động. Theo định nghĩa của Tổ chức Internet Engineering Task Force (IETF)- Mạng Manet là một vùng tự trị ( Autômmous System) của các router (đó chính là các node) được kết nối với nhau bằng liên kết không dây, các node có thể di chuyển một cách tự do nên kiến trúc của mạng thay đổi liên tục mà không thể dự đoán trước.

Đặc điểm

Mạng Manet có các đặc điểm chính sau: Mạng Manet là tập hợp các mobile node trong một mạng có tính chất tạm

thời không có sự quản lý của các nhà quản trị. Mô hình này gồm hai hay

nhiều wireless mobile kết nối với nhau theo mô hình mạng ngang hàng

(peer – to – peer) các node có vai trò như nhau, có thể kết nối vời nhau và

không cần đến cơ sở hạ tầng của các mạng trước đó. Các node trong mạng

này còn đóng vai trò như là các router có khả năng tìm kiếm, duy trì và định

tuyến các gói dữ liệu cho các node nằm trong vùng phát sóng của nó.

Mạng Mobilet Ad-hoc Network là một mạng tạm thời

Không có central server (Máy phục vụ trung tâm)

5

Page 6: Huong Dan Mo Phong

Hình 1.1 Biểu đồ mạng Manet

1.2 Phân loại mạng Manet

1.2.1 Phân loại mạng Manet theo cách thức định tuyếnTheo tiêu chí phân loại là cách thức định tuyến, mạng Manet được chia thành

hai kiểu là Single-hop và multi-hop.

1.2.1.1 Single-hopĐây là loại mô hình mạng Ad-hoc đơn giản nhất. Ở đó tất cả các node đều

nằm trong cùng một vùng phủ sóng (các node có thể kết nối trực tiếp với các node khác mà không cần phải qua node trung gian). Một số đặc điểm của mạng Manet kiểu single-hop là:

Hình 1.2 Định tuyến Single-hop

Wired internet

HA FA

M1

M2

M3

M4

Ad hoc network

6

Page 7: Huong Dan Mo Phong

1.2.1.2 Multi – hopMulti-hop là mở rộng vùng của Single - hop Network. Một số đặc điểm của

mạng Manet kiểu multi-hop: Đây là mô hình phổ biến nhất trong mạng Manet, mô hình này khác với mô

hình trước là các node có thể kết nối với các node khác trong mạng mà có

thể không cần phải kết nối trực tiếp với nhau ( Các node có thể định tuyến

đến các node khác thông qua các node trung gian trong mạng)

Hình 1.3 Định tuyến Multi – hop

1.2.2 Phân loại Manet theo chức năng của NodeTiêu chí phân loại theo chức năng của Node, mạng Manet được chia thành hai

loại là mạng Manet đẳng cấp và mạng Manet phân cấp.

1.2.2.1 Mạng Manet đẳng cấpTrong kiến trúc mạng Manet đẳng cấp (Flat) này tất cả các node có vai trò

ngang hàng với nhau (peer-to-peer) và các node cũng đóng vai trò như các router dùng để định tuyến các gói dữ liệu truyền trên mạng.

1.2.2.2 Mạng Manet phân cấpMạng Manet phân cấp (Hierarchical) là mô hình mạng được sử dụng phổ biến

nhất trong mạng Manet. Mạng chia làm các vùng (domain), trong mỗi vùng bao gồm một hoặc nhiều nhóm (cluster) với mỗi nhóm bao gồm nhiều node. Trong mạng Manet phân câp node được chia thành 2 loại:

Master node: Là node quản trị một nhóm và có nhiệm vụ chuyển dữ liệu

của các node trong nhóm đến các node trong các nhóm khác và ngược lại.

7

Page 8: Huong Dan Mo Phong

Normal node: Là các node nằm trong cùng một nhóm chỉ có thể kết nối

với các node trong cùng một nhóm. Nếu node trong nhóm đó muốn kết nối

với các node trong các nhóm khác phải thông qua master node trong nhóm

đó

Hình 1.4 Mô hình mạng phân cấp

1.2.2.3 Mạng Manet kết hợpTrong kiến trúc mạng Manet kết hợp (Aggregate), mạng phân thành các khu

vực (zone) và các node được chia vào trong mỗi khu vực. Mỗi node bao gồm hai mức topo (topology) là topo mức thấp (node level) và topo mức cao (zone level). Ngoài ra, mỗi node còn đặc trưng bởi hai số ID là node ID và zone ID.

Trong một khu vực có thể áp dụng kiến trúc đẳng cấp hoặc kiến trúc phân cấp

Hình 1.5 Mô hình mạng Aggregate

8

Page 9: Huong Dan Mo Phong

1.3 Nhận xétNgày nay khoa học kỹ thuật và công nghệ phát triển mạnh mẽ. Những thiết

bị di động như laptop, PDA…xuất hiện phổ biến trong thị trường. Bên cạnh đó mạng có dây không thể đáp ứng hết tất cả các công dụng của những thiết bị tiên tiến, hiện đại, tiện nghi trên.Vì thế mạng không dây đã ra đời giúp cho các thiết bị di động được sử dụng một cách hiệu quả, thuận tiện hơn vì những đặc tính nổi bật của mạng không dây.

Ưu điểm:

Hệ thống mạng có khả năng cơ động cao, các thiết bị có thể di

chuyển một cách tuỳ ý mà vẫn có thể truy cập mạng và có thể trao đổi

dữ liệu với nhau.

Không phải lắp đặt dây cáp

Nhược điểm

Khả năng nhiễu sóng radio cao

9

Page 10: Huong Dan Mo Phong

Chương 2.MÔ PHỎNG MẠNG DÙNG NS2

2.1 Công cụ mô phỏng NS2

2.1.1 Tổng quan về NS2NS2- Network Simulator Version 2: là phần mền mô phỏng mạng điều khiển

sự kiện riêng rẽ hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++ và Otcl. Được sử dụng rất phổ biến trong các nghiên cứu khoa học về mạng ( rất hữu ích cho việc mô phỏng mạng diện rộng WAN và mạng local LAN.

Mục đích của NS-2 là tạo ra một môi trường giả lập cho việc nghiên cứu, kiểm tra, thiết kế các giao thức, các kiến trúc mới, so sánh các giao thức và tạo ra các mô hình mạng phức tạp.

Phiên bản thứ nhất của NS được phát triển vào năm 1995 và phiên bản thứ hai ra đời năm 1996. NS-2 là phần mền mã nguồn mở có thể chạy được trong môi trường Linux và Window (Lưu ý khi cài đặt NS-2 trong môi trường Window thì chúng ta phải cài thêm phần mền cywin để giả môi trường Linux).

2.1.2 Kiến trúc của NS2

NS thực thi các giao thức mạng như giao thức điều khiển truyền tải (TCP) và thức gói thường dùng (UDP), các dịch vụ nguồn lưu lượng như giao thức truyền tập tin (FTP), tốc độ bit cố định (CBR) và tốc độ bit thay đổi (VBR).

Các kỹ thuật quản lý hàng đợi như Vào trước Ra trước (Drop Tail), Dò sớm ngẫu nhiên (RED) và CBQ, các thuật toán định tuyến như Dijkstra…NS cũng thực thi multicasting và vài giao thức lớp Điều khiển truy cập đường truyền (MAC) đối

với mô phỏng LAN.

Hình 2.6 Mô hình đơn giản của NS

10

Page 11: Huong Dan Mo Phong

Otcl Kịch bản OTcl

Simulation Program Chương trình Mô phỏng

OTcl Bộ biên dịch Tcl mở rộng hướng đối

tượng

NS Simulation Library Thư viện mô phỏng NS

Event Scheduler Objects Các đối tượng Bộ lập lịch sự kiện

Network Component Objects: Các đối tượng Thành phần mạng

Network Setup Helping Modules: Các modun Trợ giúp Thiết lập mạng

Plumbling Modules Các modun Plumbling

Simulation Results Các kết quả Mô phỏng

Analysis Phân tích

NAM Network Animator Minh họa Mạng NAM

NS-2 bao gồm: Các đối tượng Bộ lập lịch sự kiện

Các đối tượng Thành phần mạng

Các modun trợ giúp thiết lập mạng (modun Plumbing)

Để sử dụng NS-2, user lập trình bằng ngôn ngữ kịch bản OTcl. User có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tượng mới trong OTcl. Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc.

Kịch bản OTcl có thể thực hiện những việc sau: Khởi tạo Bộ lập lịch sự kiện

Thiết lập Mô hình mạng dùng các đối tượng Thành phần mạng

Báo cho nguồn traffic khi nào bắt đầu truyền và ngưng truyền packet trong

Bộ lập lịch sự kiện.

Bộ lập lịch sự kiện trong NS2 thực hiện những việc sau: Tổ chức bộ định thời mô phỏng

Hủy các sự kiện trong hàng đợi sự kiện

Triệu gọi các Thành phần mạng trong mô phỏng

11

Page 12: Huong Dan Mo Phong

Phụ thuộc vào mục đích của User đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể được lưu trữ như file trace.

File name trace ( file.nam) được dùng cho công cụ Minh họa mạng Nam

File Trace (file.tr) được dùng cho công cụ Lần vết và Giám sát Mô phỏng

XGRAPH hay TRACEGRAPH

Hình 2.7 Luồng các sự kiện cho file Tcl chạy trong Nam

Trong mô phỏng mạng dùng NS2 ta sử dụng: NAM Visual Simulation: Mô phỏng ảo NAM

Tracing and Monitoring Simulation: Mô phỏng lần vết và Giám sát

Tcl

OTclOTcl

TclCLTclCL

ns-2

Event Scheduler

Network Components

Event Scheduler

Network Components

C/C++

Hình 2.8 Kiến trúc của NS-2

Hình trên biểu diễn kiến trúc của NS-2. User có thể tưởng tượng mình đang đứng ở góc trái dưới, thiết kế và chạy các mô phỏng trong Tcl. Tcl dùng các đối tượng mô phỏng trong OTcl. Các đối tượng Bộ lập lịch sự kiện và các đối tượng thành phần mạng thực thi bằng C++ và sẵn có cho OTcl qua một liên kết OTcl. Liên kết OTcl này được thực thi dùng TclCL. Tất cả đã làm nên NS, bộ biên dịch Tcl mở rộng hướng đối tượng và các thư viện mô phỏng mạng.

NS sử dụng hai ngôn ngữ lập trình: Ngôn ngữ kịch bản OTcl và ngôn ngữ

lập trình hệ thống C++.

NS là tầng biên dịch Tcl để chạy các kịch bản Tcl

12

Page 13: Huong Dan Mo Phong

Hình 2.9 TclCL hoạt động như liên kết giữa A và B

TclCL là ngôn ngữ được sử dụng để cung cấp liên kết giữa C++ và OTcl. Các kịch bản Tcl/OTcl được viết để thiết lập và cấu hình topology của mạng. TclCL cung cấp liên kết giữa phân cấp lớp, khởi tạo đối tượng, nối kết biến và gửi lệnh.

NS phải sử dụng đến 2 ngôn ngữ vì Bộ mô phỏng cần thực hiện hai việc khác nhau:

Việc 1: Các mô phỏng cho các giao thức yêu cầu một ngôn ngữ lập trình hệ

thống có thể tính toán hiệu quả các byte, các tiêu đề packet và các thuật

toán thực thi đang chạy trên một tập dữ liệu lớn. Với tác vụ này, run-time

speed (tốc độ thời gian chạy thực) là quan trọng trong khi turn – around

time ( thời gian thay đổi) thì ít quan trọng hơn. Turn- around time bao gồm

thời gian chạy mô phỏng, thời gian tìm lỗi, thời gian sửa lỗi, thời gian biên

dịch lại và thời gian chạy lại.

Việc 2: Khi nghiên cứu mạng thì rất cần quan tâm đến các tham số và cấu

hình có thay đổi nhưng không đáng kể, hay quan tâm đến các scenario

( tình huống) cần khám phá thật nhanh chóng. Trong tác vụ này thì iteration

time ( thời gian lặp lại, tức là thời gian thay đổi mô hình và chạy lại) là

quan trọng hơn. Vì cấu hình chỉ chạy một lần lúc bắt đầu mô phỏng nên

run-time trong tác vụ này rõ ràng kém quan trọng hơn.

Vì thế mà dùng C++ để: Mô phỏng giao thức chi tiết theo 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, 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.

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

13

Page 14: Huong Dan Mo Phong

Cấu hình, thiết lập những gì chỉ làm 1 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

2.1.3 Đặc điểm của NS-2 NS-2 thực thi những tính năng sau: Các kỹ thuật quản lý hàng đợi Router như DropTail, RED, CBQ

Multicasting

Mô phỏng mạng không dây

Hành vi nguồn traffic –www, CBR, VBR

Các agent truyền tải - UDP, TCP

Định tuyến

Luồng Packet

Mô hình mạng

Các ứng dụng – Telnet, FTP, Ping

Các Packet tracing trên tất cả các link và trên các link xác định

Lợi ích của NS-2: Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại

Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng

Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể thực

thi được trong thực tế.

Khả năng mô phỏng nhiều loại mạng khác nhau

2.1.4 Các thành phần cấu hình mạng trong NS-2

2.1.4.1 Lớp SimulatorLà lớp quan trọng cung cấp các thủ tục, giao tiếp để tạo, quản lý topology và

lưư giữ các tham số cấu hình của các thành phần trong topology. Thông thường, các kịch bản giả lập thường bắt đầu bằng việc tạo một thể nghiệm của lớp Simulator để điều khiển và thực hiện giả lập, sau đó gọi các phương thức để tạo các node, topo và cấu hình cho các node, các liên kết, ứng dụng….

Khởi tạo đối tượng Simulator như sau:

set ten_doi_tuong [new Simulator] Các phương thức khác:

14

Page 15: Huong Dan Mo Phong

Lớp Simulator còn cung cấp thêm một số phương thức cho việc cài đặt các thông số cho việc giả lập.

Các phương thức này bao gồm 3 loại Các phương thức tạo, quản lý node, topo và các liên kết

Các phương thức thực hiện việc ghi nhận kết quả của quá trình

giả lập.

Các phương thức trợ giúp tương tác với bộ lập lịch

Simulator instproc now: trả về thời gian hiện tại.Simulator instproc at args: thực thi sự kiện ở thời điểm cụ thể.Simulator instproc cancel args: hủy bỏ việc thực thi sự kiện.Simulator instproc run args: bắt đầu khởi động bộ lập lịch.Simulator instproc halt: dừng bộ lập lịch.Simulator instproc flush-trace: flush all trace object write buffers.Simulator instproc create-trace type files src dst: tạo đối tượng trace.Simulator instproc create_packetformat: thiết lập định dạng gói dữ liệu.

2.1.4.2 Cấu hình cho Node Để tạo một Node trong Tcl ta dùng cú pháp:

set ns_ [new Simulator]$ns nodeMột node trong NS bao gồm các thành phần sau:

Địa chỉ hoặc số ID, giá trị này khởi tạo bằng 0 và tuần tự tăng

một đơn vị khi có một node mới được tạo ra.

Danh sách các node láng giềng của nó.

Danh sách các Agent

Loại node

Module định tuyến của Node

Cấu hình cho Mobilenode

set topo [new Topography]$ns_ node-config -addressingType hierarchical \-adhocRouting AODV \-llType LL \-macType MAC/802_11 \-ifqType Queue/DropTail/PriQueue \

15

Page 16: Huong Dan Mo Phong

-ifqLen 50 \-antType Antenna/OmniAntenna \-propType Propagation/TwoRayGround \-phyType Phy/WirelessPhy \-topologyInstance $topo \-channel Channel/WirelessChannel \-agentTrace ON \-routerTrace ON \-macTrace OFF \-movementTrace OFF

2.1.4.3 Các Agent trong NS-2Agent hay có thể gọi là giao thức ở tầng mạng hoặc ở tầng vận tải dùng để xử

lý các gói tin khi node nhận được. Lớp Agent được cài đặt một phần trong Otcl và một phần trong C++. Trong Otcl là file ns-agent.tcl trong C++ là file agent.cc và agent.h

UDP Agent

UDP Agent được cài đặt bên node gửi dữ liệu và cũng có thể cài đặt bên node nhận. Agent này là Agent không hướng kết nối, tức là không có cơ chế để phát hiện gói tin bị mất khi truyền và truyền lại gói tin khi mất. Nó chỉ thích hợp cho những ứng dụng không đòi hỏi độ chính xác cao, và chấp nhận chịu sự mất mát dữ liệu.

Cú pháp thông thường dùng để thiết lập UDP trong NS-2 Tạo một thể nghiệm của đối tượng UDP Agent

set udp0[New Agent /UDP] Kết nối Agent UDP cho Node

$ns_ attach-agent <node> <agent> Cài đặt ứng dụng cho Agent

$traffic-gen attach-agent <agent> TCP Agent

Trong NS-2 TCP Agent được chia thành 2 loại: Agent một chiều: Là những Agent chỉ đóng một trong hai vai

trò hoặc là bên gửi hoặc là bên nhận

Agent hai chiều: Là những Agent đóng cả hai vai trò vừa là bên

nhận, vừa là bên gửi. Hiện nay Agent này đang được phát triển

Các Agent một chiều ở bên gửi đã cài đặt trong NS Agent/TCP

16

Page 17: Huong Dan Mo Phong

Agent/TCP/Reno

Agent/TCP/Newreno

Agent/TCP/Sack1

Agent/TCP/Vagas

Agent/TCP/Fack

Các TCP Agent một chiều ở bên nhận Agent/TCP/Sink

Agent/TCP/Sink/DelAc

Agent/TCPSink/Sack1

Agent/TCPSink/Sack1/DelAck

TCP Agent hai chiều Agent/TCP/FullTcp

2.1.4.4 Ứng dụng trong NS-2Trong NS-2 có hai loại ứng dụng:

2.1.5 Giới thiệu phần mềm Nam dùng kết hợp với NS-2Các tính năng của Nam Cung cấp trình diễn ảo cho mạng đã được tạo

Có thể thi hành trực tiếp từ kịch bản Tcl

Nam có giao diện đồ họa bắt mắt của CD player với các điểu khiển bao

gồm play, stop, fast forward, rw, pause …

Biểu diễn thông tin như số packet trên từng link

Cung cấp giao diện rê và thả cho việc tạo ra các topoloty

17

Page 18: Huong Dan Mo Phong

Hình 2.10 Giao diện đồ hoạ Nam

Các chức năng của Nam trong giao diện đồ họa người dùng Cửa sổ Nam Console: Sau khi khởi động Nam, cửa sổ Nam console xuất

hiện. Trong cửa sổ Nam Console có hai menu chính‘File’và ‘Help’.

Trong menu File có:

New: Tạo mới một topology ns dùng chương trình soạn thảo

Nam

Open: Mở các file trace đã tồn tại (mở cửa sổ minh họa Nam)

WinList: Mở cửa sổ liệt kê tên của tất cả các file trace đang mở

Quit: Thoát khỏi Nam

Trong menu Help: Các trợ giúp đơn giản, xem phiên bản,

thông tin về bản quyền.

Cửa sổ minh họa Nam: Khi một file trace được tải vào Nam (File/Open) thì

cửa sổ minh họa Nam xuất hiện. Giao diện chính có Menu File, Views,

Analysis

18

Page 19: Huong Dan Mo Phong

Hình 2.11 Cửa sổ Nam

19

Page 20: Huong Dan Mo Phong

Hình 2.12 Cửa sổ minh họa Nam

2.2 Sử dụng OTCL SCRIPT để viết các kịch bản mô phỏng mạng trong NS-2

2.2.1 Tổng quan về OTCL SCRIPTNS là trình biên dịch OTcl với các thư viện đối tượng mô phỏng mạng. Ví dụ

sau giúp chúng ta tiếp cận với Otcl. Chạy ví dụ này bằng cách gõ lệnh “ns ns-simple.tcl”.

20

Page 21: Huong Dan Mo Phong

Hình 2.13 Topology mạng đơn giản và kịch bản mô phỏng

Mạng trên gồm 4 node (n0, n1, n2, n3). Duplex-link (liên kết truyền dữ liệu hai chiều diễn ra đồng thời) giữa node n0 và n2, n1 và n2 có bandwith= 2Mbps, delay=10ms. Duplex-link giữa n2 và n3 có bandwidth=1.7Mbps, và delay=20ms. Các node dùng hàng đợi DropTail, maxsize=10.

Agent “tcp” gắn với n0 và agent “sink” gắn với n3. Agent “tcp” có thể tạo packet với maxsize=1 Kbyte. Agent tcp “sink” tạo và gửi packet dạng ACK cho sender (sender là agent gửi packet đi) và giải phóng packet nhận được. Agent “udp” gắn với n1 sẽ kết nối với agent “null” gắn với n3. Agent “null” chỉ giải phóng packet đã nhận được. Bộ khởi tạo lưu lượng “ftp” và “cbr” tương ứng được gắn vào agent “tcp” và “udp”. “cbr” được cấu hình để tạo ra packet 1 Kbyte tại tốc độ 1 Mbps. “cbr” được thiết lập cho start bắt đầu tại thời điểm 0.1 giây và kết thúc tại thời điểm 4.5 giây, “ ftp” bắt đầu lúc 1.0 giây và kết thúc lúc 4.0 giây.

#Create a simulator object

set ns [new Simulator]

#Define different colors for data flows (for NAM)

$ns color 1 Blue

$ns color 2 Red

#Open the NAM trace file

set nf [open out.nam w]

21

Page 22: Huong Dan Mo Phong

$ns namtrace-all $nf

#Define a 'finish' procedure

proc finish {} {

global ns nf

$ns flush-trace

#Close the NAM trace file

close $nf

#Execute NAM on the trace file

exec nam out.nam &

exit 0

}

#Create four nodes

set n0 [$ns node]

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

#Create links between the nodes

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

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

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

#Set Queue Size of link (n2-n3) to 10

$ns queue-limit $n2 $n3 10

#Give node position (for NAM)

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

$ns duplex-link-op $n1 $n2 orient right-up

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

22

Page 23: Huong Dan Mo Phong

#Monitor the queue for link (n2-n3). (for NAM)

$ns duplex-link-op $n2 $n3 queuePos 0.5

#Setup a TCP connection

set tcp [new Agent/TCP]

$tcp set class_ 2

$ns attach-agent $n0 $tcp

set sink [new Agent/TCPSink]

$ns attach-agent $n3 $sink

$ns connect $tcp $sink

$tcp set fid_ 1

#Setup a FTP over TCP connection

set ftp [new Application/FTP]

$ftp attach-agent $tcp

$ftp set type_ FTP

#Setup a UDP connection

set udp [new Agent/UDP]

$ns attach-agent $n1 $udp

set null [new Agent/Null]

$ns attach-agent $n3 $null

$ns connect $udp $null

$udp set fid_ 2

#Setup a CBR over UDP connection

set cbr [new Application/Traffic/CBR]

$cbr attach-agent $udp

$cbr set type_ CBR

$cbr set packet_size_ 1000

$cbr set rate_ 1mb

23

Page 24: Huong Dan Mo Phong

$cbr set random_ false

#Schedule events for the CBR and FTP agents

$ns at 0.1 "$cbr start"

$ns at 1.0 "$ftp start"

$ns at 4.0 "$ftp stop"

$ns at 4.5 "$cbr stop"

#Detach tcp and sink agents (not really necessary)

$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"

#Call the finish procedure after 5 seconds of simulation time

$ns at 5.0 "finish"

#Print CBR packet size and interval

puts "CBR packet size = [$cbr set packet_size_]"

puts "CBR interval = [$cbr set interval_]"

#Run the simulation

$ns run

Kết quả của kịch bản trên

24

Page 25: Huong Dan Mo Phong

Hình 2.14 Minh họa NAM cho kịch bản OTcl

Đầu tiên là quá trình thiết lập mạng cơ bản. NS Script bắt đầu bằng việc tạo ra một instance cho đối tượng Simulator ( đối tượng mô phỏng).

set ns [new Simulator] :

Tạo instance của Simulator, gán vào biến ns. Dòng này sẽ thực hiện lệnh Khởi tạo định dạng packet

Tạo bộ lập lịch ( mặc định là Calender scheduler – Bộ lập lịch thời gian).

Đối tượng “ Simulator” có các hàm thành viên thực hiện những việc sau Tạo đối tượng ghép như các node và các link.

Connect (nối) các đối tượng thành phần mạng đã được tạo lại với nhau ( ví

dụ hàm attach-agent).

Gán giá trị cho các tham số cho các đối tượng thành phần mạng ( thường

là cho các đối tượng ghép).

Tạo các connection giữa các agent ( ví dụ tạo connection giữa “tcp” và

“sink”)

Xác định tuyến tùy chọn trình diễn Nam.

25

Page 26: Huong Dan Mo Phong

Hầu hết các hàm thành viên dùng cho mục đích thiết lập mô phỏng ( được đề cập đến như các hàm plumbing) và cho mục địch lập lịch. Tuy nhiên cũng có những hàm cho việc trình diễn bằng Nam. Các thực thi cho các hàm thành viên của đối tượng “Simulator” được định vị trong file “ns-2/tcl/lib.ns-lib.tcl”

$ns color fid color:

Gán màu các packet cho luồng có mã nhận dạng luồng fid. Hàm thành viên này của đối tượng Simulator được dùng cho việc trình diễn NAM, và không có tác dụng gì trên mô phỏng thực tế.

$ns namtrace-all file-descriptor:

Hàm thành viên này yêu cầu mô phỏng lưu lại các dấu vết mô phỏng vào trong định dạng đầu vào cho NAM. Đồng thời có thể cung cấp tên file mà trace ( dấu vết) sẽ được ghi vào bằng lệnh $ns flush-trace tương tự, hàm thành viên trace-all dùng lưu trace theo định tuyến dạng chung.

proc finish{}:

Hàm được gọi sau khi mô phỏng đã kết thúc. Trong hàm này các tiến trình post-simulation ( mô phỏng thông báo được xác định).

set n0 [$ns node]:

Hàm thành viên Node khởi tạo một node. Node trong NS là đối tượng ghép bao gồm address (địa chỉ) và port classifiers (bộ phân loại cổng). User có thể tạo node bằng cách tạo riêng đối tượng address và port classifier và nối chúng lại với nhau. Tuy nhiên các hàm thành viên của đối tượng Simulator đã thực hiện việc này rất đơn giản. Xem file “C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ ns-node.tcl” để viết Simulator tạo node như thế nào.

$ns duplex-link node1 node2 bandwidth delay queue-type:

Tạo 2 simplex link (liên kết đơn) với bandwidth và delay xác định tuyến, nối hai node xác định lại với nhau. Trong NS, hàng đợi đầu ra của node được thực thi như một phần của link, vì vậy user nên xác định luôn queue-type khi khởi tạo link. Giống như node, link là đối tượng ghép, user có thể tạo và nối các link với các node. Mã nguồn link được tìm trong file ““C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ ns-lib.tcl” và “C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ ns-link.tcl”

$ns queue-limit node1 node2 number:

Xác định giới hạn hàng đợi của hai simplex link kết nối node1 và node2 với nhau.

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

Dùng cho NamQuá trình tiếp theo là thiết lập các agent như FTP, CBR, connect các agent với

các node và connect các nguồn traffic với các agent. set tcp [new Agent/TCP]:

26

Page 27: Huong Dan Mo Phong

Lệnh tạo ra một agent TCP và đây cũng là cách để tạo ra bất kỳ agent hay nguồn traffic nào. Các agent và các nguồn traffic chứa trong các đối tượng cơ bản thực (không phải trong đối tượng kép), hầu như được thực thi trong C++ và được liên kết đến OTcl. Vì vậy, không có hàm thành viên nào của một đối tượng Simulator xác định là có thể tạo ra instance của các đối tượng này. Để tạo ra được Agent và nguồn lưu lượng thì user cần phải biết tên lớp của các đối tượng này ( Agent/TCP, Agent/TCPSink, Application/FTP …). Xem thêm trong file “C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ ns-default.tcl”. File này chứa các thiết lập giá trị tham số cấu hình mặc định cho các đối tượng mạng sẵn có.

$ns attach-agent node agent:

Hàm thành viên attach-agent gắn agent vào node. Hàm này sẽ gọi hàm thành viên attach của một node xác định tuyến, để gắn agent vào node đó. Vì vậy, user có thể làm tương tự, như $n0 attach $tcp chẳng hạn. Ngoài ra, một agent có thể dùng hàm attach của nó để gắn một nguồn traffic vào chính nó.

$ns connect agent1 agent2:

Hàm thiết lập liên kết luận lý giữa hai agent, bằng cách thiết lập địa chỉ đích đến mạng của nhau và cặp địa chỉ cổng.

Bây giờ giả sử rằng tất cả cấu hình mạng đã được thực hiện. Tiếp theo là ghi kịch bản mô phỏng. Đối tượng Simulator hiện có nhiều hàm thành viên lập lịch.

$ns at time “string”:

Hàm này yêu cầu scheduler (bộ lập lịch) lập lịch cho “string” thực thi vào thời gian time. Trong NS, thực tế thì nguồn traffic không truyền dữ liệu thật, nhưng nó lại thông báo cho agent phía dưới rằng nó có dữ liệu cần truyền. Khi đó agent sẽ tạo ra packet để truyền dữ liệu ấy đi.

Cuối cùng là chạy mô phỏng bằng lệnh $ns run.

2.2.2 Khởi tạo NodeTrong NS có hai loại node: Node unicast có một address classifier ( bộ phân loại địa chỉ) làm nhiệm vụ

định tuyến tuyến unicast và một port classifier ( bộ phân loại cổng).

Node multicast có thêm một classifier (bộ phân loại) làm nhiệm vụ phân

loại các packet multicast với các packet unicast

Trong NS, các node unicast là node mặc định. Để tạo node multicast user phải thông báo tường minh trong kịch bản OTcl đầu vào rằng tất cả các node sẽ được tạo ra là node multicast, ngay sau khi user tạo ra đối tượng lập lịch

27

Page 28: Huong Dan Mo Phong

Hình 2.15 Node unicast và node multicast

Đối tượng mô phỏng node được dùng để khởi tạo một node. Hai node được tạo với điều khiển n0,n1

set n0 [$ns node]

set n1 [$ns node]

Thiết lậ màu cho node bằng lệnh: $n0 color <colour>

2.2.3 Khởi tạo linkTạo link một chiều giữa 2 node bằng lệnh: $ns simplex-link $n0 $n1 <bandwidth> <delay> <queue_type>

Và link hai chiều giữa hai node bằng lệnh: $ns duplex-link $n0 $n1 <bandwidth> <delay> <queue_type>

Giá trị bandwidth và delay tương ứng có thể là 1Mb và 10ms. NS2 hỗ trợ nhiều giá trị queue_type như RED, Drop Tail…

Hình 2.16 Biểu diễn link giữa 2 node

28

Page 29: Huong Dan Mo Phong

2.2.4 Khởi tạo Network AgentsHai lớp Agent và Application sẽ tạo nên traffic trong NS-2. Mỗi node trong

mạng muốn gửi và nhận tracffic thì phải có Agent gắn vào nó. Trên đỉnh của Agent chạy Application

Có 2 loại Agent trong NS-2 là agent UDP và agent TCP: UDP:

set udp0 [new Agent/UDP]

set null [new Agent/Null]

$ns attach-agent $n0 $udp0

$ns attach-agent $n1 $null

$ns connect $udp0 $null

Đoạn mã trên tạo Agent UDP và gắn vào node n0 bằng thủ tục attach-agent. Tạo ra agent Null, hoạt động như một traffic sink và gắn vào node n1. Hai agent được nối lại bằng phương thức connect.

TCP:

set tcp [new Agent/TCP]

set tcp_sink [new Agent/TCPSink]

$ns attach-agent $n0 $tcp

$ns attach-agent $n1 $tcp_sink

$ns connect $tcp $tcp_sink

Đoạn mã trên tạo agent TCP và gắn vào node TCP dùng thủ tục attach-agent. Agent TCPSink hoạt động như một TCP sink và gắn vào tcp_sink. Hai agent nối với nhau bằng phương thức connect. Các loại TCP có sẵn trong NS-2 là: TCP, TCP/Reno, TCP/Vegas, TCP/Sack1, TCP/Fact, TCPSink.

2.2.5 Các loại TrafficCó 4 loại traffic application ( ứng dụng lưu lượng) có thể gắn vào agent UDP

để mô phỏng lưu lượng mạng: CBR, Exponential, Pareto, TrafficTrace.

2.2.6 Các dịch vụ cơ bản trong InternetHai application mô phỏng gửi traffic trên đỉnh đối tượng TCP

là :Application/FTP và Application/Telnet Giao thức truyền tin FTP:

set ftp [new Application/FTP]

$ftp attach-agent $tcp

29

Page 30: Huong Dan Mo Phong

$ns at <time> “$ftp start”

Các tham số: attach-agent: gắn Application/FTP vào một agent

start: khởi động Application/FTP truyền dữ liệu

stop: ngưng truyền dữ liệu

produre n: n là bộ đếm số packet được truyền

producemore n: n là giá trị số packet vừa mới tăng được truyền

send n: tương tư như produremore, nhưng gửi n byte thay vì n

packet

Telnet

set telnet [new Application/Telnet]

$telnet attach-agent $tcp

Các tham số cấu hình: interval_: thời gian đến nội (inter-arrival) trung bình của packet

được tạo bởi đối tượng Telnet

if (interval_==0) Số lần đến nội theo phân bố tcplib

if (interval_!=0) Số lần đến nội theo phân bố mũ, giá trị trung

bình được gán bằng giá trị interval_

2.3 Sử dụng TraceGraph để phân tích kết quả mô phỏng

Tracegraph chạy trong hệ điều hành Windows, Linux, Unix và yêu cầu hệ thống có cài đặt Matlab 6.0( Hoặc các phiên bản cao hơn).

Tracegraph hỗ trợ các định dạng file trace như sau: Wired ( có dây)

Satellite (vệ tinh)

Wireless (không dây)

Tracegraph phiên bản 2.02 có các tính năng sau: 238 đồ thị 2D (hai chiều)

12 đồ thị 3D ( ba chiều)

30

Page 31: Huong Dan Mo Phong

Các đồ thị và các thống kê về Delay (trì hoãn), jitter (độ rung pha),

processing times (số lần xử lý), Round Trip Times (số lần khứ hồi),

intermediate nodes (số node trung gian) throughput (thông lượng).

Các đồ thị và các thống kê cho toàn network, link và node

Tất cả các kết quả có thể được lưu vào fiel dạng text, các đồ thị có thể lưư

dưới dạng file tiff.

Thông tin của trục x, y, z: minimum ( giá trị nhỏ nhất), mean (giá trị trung

bình), maximum ( giá trị lớn nhất), standard deviation (độ lệch tiêu chuẩn)

và median ( số trung bình).

Nếu các đồ thị lưu trong file text thì trong file này có thể dựa vào thông tin

hai hay 3 cột để vẽ lại đồ thị.

Xử lý các file kịch bản để phân tích một cách tự động

Chức năng của Tracegraph trong giao diện đồ hoạ người dùng: Ứng dụng Tracegraph bao gồm 3 thành phần chính: Cửa sổ Tracegraph 2.02, cửa sổ Network Information ( thông tin mạng) và của sổ Graphs (đồ thị).

31

Page 32: Huong Dan Mo Phong

32

Page 33: Huong Dan Mo Phong

33

Page 34: Huong Dan Mo Phong

Hình 2.17 Giao diện đồ hoạ người dùng TraceGraph

Trong NS2, các hoạt động mạng được trace ( lưu dấu) trong các simplex link. Nếu mô phỏng được chỉ trực tiếp đến các hoạt động trace ( bằng lệnh $ns trace-all file hay $ns namtrace-all file) thì các link sẽ có các đối tượng trace được chèn thêm vào. User cũng có thể tạo đối tượng trace với loại xác định để lưu vết mạng từ nguồn đến đích bằng lệnh create-trace {type file src dst}.

Khi từng đối tượng được chèn thêm đối tượng trace (EnqT, DeqT, DrpT, RecvT) nhận packet, nó sẽ ghi vào file trace xác định mà không tiêu tốn thời gian mô phỏng. Và truyền packet đến đối tượng mạng kế tiếp.

Hình 2.18 Chèn đối tượng trace

34

Page 35: Huong Dan Mo Phong

Trace file có tất cả các thông tin để thực hiện minh hoạ - vừa trên sơ đồ biểu diễn mạng tĩnh vừa trên các sự kiện động như sự kiện packet arival( gói đến), packet departure ( gói xuất phát), packet drop (huỷ bỏ gói), và link failre ( hỏng liên kết)

Mã Otcl thực thi Tracing trong mô phỏng

set trace_file [open out.tr w]$ns trace-all $trace_file $ns flush-traceclose $trace_file

File trace chuẩn trong NS-2 và định dạng của file này như sau:

event: thao tác được thực hiện trong mô phỏng

time: thời gian xuất hiện sự kiện

from node: node 1 là node được trace

to node: node 2 là node được trace

pkt type: loại packet

pkt size: kích cỡ packet

flags: cờ

fid: mã luồng

src addr: địa chỉ node nguồn

dst addr: địa chỉ node đích

seq num: số trình tự

pkt id: mã packet duy nhất

35

Page 36: Huong Dan Mo Phong

Chương 3.MÔ PHỎNG MẠNG MANET SỬ DỤNG NS2

3.1 Kịch bản mô phỏng Manet sử dụng NS-2

Hình 3.19 Mô hình mạng MANET trong NAM

3.2 Phân tích kết quả chạy mô phỏng Cấu hình cho MobileNode

set val(chan) Channel/WirelessChannel ;# loại kênh truyềnset val(prop) Propagation/TwoRayGround;#cách thức truyền dữ liệu qua mạngset val(netif) Phy/WirelessPhy ;# network interface typeset val(mac) Mac/802_11 ;# loại địa chỉ macset val(ifq) Queue/DropTail/PriQueue ;# interface queue typeset val(ll) LL ;# loại link layerset val(ant) Antenna/OmniAntenna ;# antenna modelset val(ifqlen) 50 ;# max packet in ifqset val(nn) 3 ;# number of mobilenodesset val(rp) AODV ;# routing protocol

36

Page 37: Huong Dan Mo Phong

set val(x) 500 ;# X dimension of topographyset val(y) 400 ;# Y dimension of topography set val(stop) 150 ;# time of simulation end Các node được khởi tạo tại những vị trí sau:

# Provide initial location of mobilenodes$node_(0) set X_ 5.0$node_(0) set Y_ 5.0$node_(0) set Z_ 0.0

$node_(1) set X_ 490.0$node_(1) set Y_ 285.0$node_(1) set Z_ 0.0

$node_(2) set X_ 150.0$node_(2) set Y_ 240.0$node_(2) set Z_ 0.0# Generation of movements$ns at 10.0 "$node_(0) setdest 250.0 250.0 3.0"$ns at 15.0 "$node_(1) setdest 45.0 285.0 5.0"$ns at 110.0 "$node_(0) setdest 480.0 300.0 5.0" Các MobileNode được thiết kế để chuyển động ba chiều ( X,Y,Z ). Tuy

nhiên,trong công cụ giả lập này, thì chiều Z không được sử dụng ( Z=0 ), nên các MobileNode chỉ chuyển động theo hai chiều X, Y

Phát sinh chuyển động giữa node 0 và node 1

$ns at 10.0 "$node_(0) setdest 250.0 250.0 3.0"$ns at 15.0 "$node_(1) setdest 45.0 285.0 5.0"$ns at 110.0 "$node_(0) setdest 480.0 300.0 5.0" Tại thời điểm “10.0” giây, node 0 sẽ bắt đầu di chuyển từ vị trí khởi tạo

(5.0,5.0,0.0) đến vị trí có tọa độ (250.0 , 250.0 ,0.0) với vận tốc 3.0Tại thời điểm “15.0” giây, node 1 sẽ bắt đầu di chuyển từ vị trí khởi tạo

(490.0, 285.0, 0.0) đến vị trí có tọa độ (45.0 , 285.0 , 0.0) với vận tốc 5.0Tại thời điểm “110.0” giây, node 0 sẽ bắt đầu di chuyển từ vị trí khởi tạo

(5.0,5.0,0.0) đến vị trí có tọa độ (480.0 , 300.0 ,0.0) với vận tốc 5.0 Thiết lập kết nối TCP giữa node 0 và node1

set ns [new Simulator]…set tcp [new Agent/TCP/Newreno]:#Khởi tạo agent TCP bên node gởi dữ liệu$tcp set class_ 2

37

Page 38: Huong Dan Mo Phong

set sink [new Agent/TCPSink] ;# Khởi tạo agent TCPSink bên node nhận$ns attach-agent $node_(0) $tcp #Thiết lập agent TCP cho node n0$ns attach-agent $node_(1) $sink:#Thiết lập agent TCPSink cho node n1$ns connect $tcp $sink ;# Xác lập một kết nối TCP cho hai agentset ftp [new Application/FTP] ;# Tạo môt ứng dụng FTP$ftp attach-agent $tcp ;# Cài đặt ứng dụng FTP cho node n0$ns at 10.0 "$ftp start“ # Thực thi ứng dụng FTP tại thời điểm giây thứ 10Các thông tin về node ta sẽ biết khi sử dụng công cụ lần vết và giám sát mô

phỏng TraceGraph.

38

Page 39: Huong Dan Mo Phong

39

Page 40: Huong Dan Mo Phong

Hình 3.20 Kết quả phân tích file.tr

40

Page 41: Huong Dan Mo Phong

PHỤ LỤC. Cài đặt NS2 trong Windows

NS-2(Network Simulation version 2) là phần mền chuyên dùng để mô phỏng các giao thức mạng. Rất nhiều đề tài tốt nghiệp chuyên ngành CNTT sử dụng NS-2 để demo. Chúng ta có thể cài NS-2 trên Linux hoặc Windown. Trên Linux thì chỉ việc giải nén rồi gõ ./install để cài. NS-2 cũng có thể cài trên Windows bằng cách sử dụng Cygwin để giả lập môi trường Linux. Sau đây là hướng dẫn cụ thể.

Download zip file of ns2.29 (allinone) từ: http://www.isi.edu/nsnam/dist/ns-allinone-2.29.2.tar.gzNs-allinone-2.29 bao gồm các gói sau: cweb

gt-itm

nam-1.11

ns-2.28

otcl-1.9

sgb

tcl8.4

tclcl-1.16

tk8.4

xgraph-1.1

zlib-1.1

install

install.win

readme install

Download cygwin setup.exe từ www.cygwin.com

41

Page 42: Huong Dan Mo Phong

42

Page 43: Huong Dan Mo Phong

43

Page 44: Huong Dan Mo Phong

44

Page 45: Huong Dan Mo Phong

Nhấn vào View, chỗ nào có Skip nhấp vào để cài những gói chưa được cài

45

Page 46: Huong Dan Mo Phong

Cài xong cygwin, bạn copy file ns-allinone-2.29.3.tar.gz trong thu mục ns-setup đã download vào thư mục C:/cygwin/usr/local và giải nén.

Tiếp theo click vào biểu tượng cygwin trên desktop để tiếp tục cài đặt ns-allinone-2.29.3

46

Page 47: Huong Dan Mo Phong

47

Page 48: Huong Dan Mo Phong

Việc cài đặt sẽ kết thúc khi màn hình xuất hiện như sau:

48

Page 49: Huong Dan Mo Phong

Bạn lưu ý phải đổi PATH trong Environment Variables thành: /usr/local/ns-allinone-2.29.3/ns-allinone-2.29/bin:/usr/local/ns-allinone-

2.29.3/ns-allinone-2.29/tcl8.4.11/unix:/usr/local/ns-allinone-2.29.3/ns-allinone-2.29/tk8.4.11/unix

49

Page 50: Huong Dan Mo Phong

Các ví dụ tham khảo ở trang http://www.isi.edu/nsnam/ns/tutorial/.

50

Page 51: Huong Dan Mo Phong

KẾT LUẬN

Nội dung báo cáo đã tập trung tìm hiểu về mạng Manet, công cụ mô phỏng mạng NS-2 và tìm hiểu mô phỏng mạng Manet trong NS-2. Tuy nhiên, phần mô phỏng mạng Manet trong NS-2 em vẫn tiếp tục tìm hiểu hoàn thiện.

51

Page 52: Huong Dan Mo Phong

TÀI LIỆU THAM KHẢO

[1] Alex Ali Hamidian (2003), A Study of Internet Connectivity for Mobile Ad Hoc Networks in NS 2, Lund University.

[2] Andres Lagar Cavilla (2004), MANET extensions to ns2, University of Toronto.[3] T. Huovila, P. Lassilay, J. Manner, and A. Penttinen (2006), State of the Art

Analysis of Wireless Mesh Technologies 2006, Helsinki University of Technology.[4] http://www.isi.edu/nsnam/ Địa chỉ Download các phần mền:

[5] http://cygwin.com/setup.exe

[6] http://nsnam.isi.edu/nsnam

[7] http://www.tracegraph.com/

52