Đánh giá hiệu năng một số giao thức Proactive của công nghệ mạng Ad - Hoc

MỤC LỤC LỜI NÓI ĐẦU . 3 THUẬT NGỮ VIẾT TẮT . 6 CHƯƠNG I :TỔNG QUAN VỀ MẠNG AD-HOC 8 1.1. TổNG QUAN Về MạNG AD-HOC 8 1.2 ĐặC ĐIểM CủA MạNG AD-HOC .10 1.3 CÁC ứNG DụNG CủA MạNG AD-HOC .13 1.3.1 Ứng dụng trong quân đội .13 1.3.2 Các ứng dụng trong cuộc sống 14 1.4 VấN Đề AN NINH .16 CHƯƠNG II : HOẠT ĐỘNG CỦA CÁC GIAO THỨC PROACTIVE TRONG MẠNG AD-HOC 17 2.1 TổNG QUAN Về ĐịNH TUYếN 17 2.2 GIAO THứC ĐịNH TUYếN VECTOR KHOảNG CÁCH THEO YÊU CầU AODV .19 2.2.1 Tìm đường .19 2.2.2 Thiết lập đường đảo chiều 20 2.2.3 Thiết lập đường chuyển tiếp .20 2.2.4 Quản lý bảng định tuyến 21 2.2.5 Duy trì tuyến 22 2.2.6 Xử lý lỗi, hết hạn và xóa bỏ tuyến .23 2.2.7 Quản lý kết nối nội vùng 25 2.2.8 Sửa chữa nội vùng .26 2.3 CLUSTERHEAD GATEWAY ROUTING SWITCH (CGSR) .28 2.3.1 Tổng quan về giao thức CGSR .28 2.3.2 Kiến trúc của giao thức CGSR .28 2.4 GIAO THứC OLSR (OPTIMIZED LINK STATE ROUTING) 30 2.4.1 Khái quát giao thức OLSR .30 2.4.2 Chuyển tiếp đa điểm 31 2.4.3 Nguyên tắc trao đổi bản tin 33 2.4.4 Khả năng áp dụng .35 2.5 GIAO THứC ĐịNH TUYếN KHÔNG DÂY ( WRP ) 35 2.6 Định tuyến nguồn động (DSR) 36 2.7 GIAO THứC ĐịNH TUYếN TUầN Tự TạM THờI TORA 38 2.7.1 Chức năng giao thức .40 2.7.2 Tạo đường trong TORA .41 CHƯƠNG III: GIỚI THIỆU PHẦN MỀM NS2 VÀ ỨNG DỤNG XÂY DỰNG CÁC KỊCH BẢN MÔ PHỎNG GIAO THỨC MẠNG 43 3.1 TổNG QUAN .43 3.2 ĐạI CƯƠNG Về NS 44 3.2.1 Các chức năng của NS .44 3.2.2 Các thành phần của NS .45 3.2.3 Kiến trúc của NS .45 3.3 Sử DụNG PHầN MềM NS-2 Để MÔ PHỏNG MạNG 50 3.3.1 Cơ bản về Tcl 50 3.3.2 Cơ bản về OTcl .52 3.3.3 Các bước cơ bản của một kịch bản mô phỏng NS-2 53 3.3.4 Thực hiện mô phỏng mạng không dây trong NS 56 CHƯƠNG IV: MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU NĂNG CÁC GIAO THỨC ĐỊNH TUYẾN PROACTIVE TRONG AD-HOC 62 4.1 MộT Số Độ ĐO ĐÁNH GIÁ HIệU NĂNG. .62 4.1.1 Các độ đo định tính .62 4.1.2 Các độ đo định lượng 64 4.2 ĐÁNH GIÁ HIệU NĂNG DựA TRÊN CÁC THÔNG Số .66 4.3 ĐÁNH GIÁ HIệU NĂNG DựA TRÊN KếT QUả MÔ PHỏNG .70 4.3.1 Mô hình hóa các kịch bản mô phỏng . 70 4.3.2 Khảo sát và phân tích kết quả 71 4.3.2.1 Tỷ lệ chuyển tiếp gói tin 71 4.3.2.2 Khả năng truyền gói tin . 73 4.3.2.3 Độ tối ưu về đường đi . 73 KẾT LUẬN 75 TÀI LIỆU THAM KHẢO 77

pdf79 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3699 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đánh giá hiệu năng một số giao thức Proactive của công nghệ mạng Ad - Hoc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
u lượng – Quá trình xử lý :Phân tích file trace với các công cụ của UNIX hoặc GNU/LINUX như AWK,Perl,Tcl,minh họa bằng hình ảnh với Xgraph Các thành phần chính của NS-2 : + Tcl/TK8.x(thường là 8.3.5) :Có thể tham khảo tại địa chỉ + OTcl và Tclcl :Có thể tham khảo tại địa chỉ tclcl.sourceforge.net + NS-2 và NAM-1 Có thể tham khảo tại + Các tiện ích khác xem tại + Tcl-debug,GT-ITM,Xgraph v.v…. 3.2.3 Kiến trúc của NS NS là một phần mềm hướng đối tượng sử dụng hai ngôn ngữ C++ và OTcl.Phần dữ liệu và phần điều khiển được tách biệt + C++ cho phần dữ liệu :Xử lý mỗi gói tin ,thực thi nhanh chóng ,chi tiết hóa ,bổ sung đầy đủ cho việc điều khiển ,các thuật toán đối với bộ dữ liệu lớn + OTcl cho phần điều khiển : -Mô phỏng các cấu hình cho kịch bản -Thực thi nhanh chóng ,dễ dàng cấu hình lại 46 -Thao tác với các đối tượng C++ hiện tại -Viết mã nhanh chóng và thay đổi dễ dàng Hình 3.2 Đơn giản hoá cách nhìn của người sử dụng NS không những được viết bởi OTcl mà còn được viết bởi C++. Vì lý do hiệu quả NS phân ra sự thực thi đường dẫn dữ liệu từ những sự thực thi đường dẫn điều khiển. Để giảm bớt thời gian xử lý gói và sự kiện (không phải là thời gian mô phỏng )lịch biểu sự kiện và các đối tượng thành phần cơ bản của mạng trong phần dữ liệu được viết và biên dịch sử dụng C++.Những đối tượng đã được biên dịch này được làm sẵn cho trình biên dịch OTcl qua một lien kết OTcl để tạo ra một đối tượng OTcl thích hợp với mỗi đối tượng C++ và thực hiện các chức năng điều khiển ,các biến cấu hình được cung cấp bởi đối tượng C++ hoạt động như các hàm thành viên và các biến thành viên của đối tượng OTcl tương ứng. Hình 3.3 Tính đối ngẫu của C++ và OTcl Hình 3.3 cho thấy một ví dụ phân cấp đối tượng trong C++ và OTcl. Một điều cần lưu ý trong hình là các đối tượng C++ cho phép một sự kết nối OTcl 47 hình thành một sự phân cấp. Sự phân cấp đối tượng OTcl rất giống với sự phân cấp đối tượng C++ Hình 3.3 cho thấy kiến trúc chung của NS Hình 3.4 Kiến trúc chung của NS Trong hình này một người dung chung (không phải là người phát triển NS) có thể đứng ở góc đáy trái thiết kế và thực thi những sự mô phỏng trong Tcl sử dụng các đối tượng mô phỏng trong thư viện OTcl. Các lịch biểu sự kiện và hầu hết các thành phần của mạng được thực hiện trong C++ và đưa đến OTcl qua một lien kết OTcl được thực hiện bởi sự sử dụng Tclcl. Toàn bộ những cái tạo nên NS là trình biên dịch Tcl hướng đối tượng mở rộng và các thư viện mô phỏng mạng. Các thành phần của mạng Như đã nói nhiều đến trong phần trên. Mục này sẽ trình bày về các thành phần của NS ,hầu hết là các thành phần cấu thành mạng . Hình 3.5 Sự phân cấp lớp đối tượng OTcl 48 Hình 3.5 cho thấy một sự phân cấp lớp OTcl bộ phận của NS điều này sẽ giúp cho ta hiểu rõ các thành phần của mạng. Gốc của sự phân cấp là lớp TclObject là lớp gốc của tất cả các đối tượng thư viện OTcl (lịch biểu,các thành phần mạng,bộ định giờ và các đối tượng khác bao gồm cả NAM).Tương tự như lớp gốc OTcl NsObject là lớp gốc của tất cả các đối tượng thành phần mạng cơ bản điều khiển các gói tin mà có thể tạo ra các đối tượng cấu thành mạng cơ bản như là các nút và các liên kết. Các thành phần mạng cơ bản lại được chia ra thành hai lớp con gồm có Connector và Classifier dựa vào số đường dẫn dữ liệu đầu ra. Các đối tượng cơ bản cơ bản của mạng có thể có duy nhất một đường dẫn dữ liệu đầu ra đối với lớp Connector ,các đối tượng chuyển đổi có thể có nhiều đường dẫn dữ liẹu đầu ra đối với lớp Classifier + Nút và sự định tuyến : Một nút là một đối tượng hỗn hợp bao gồm toàn bộ đối tượng nút và các đối tượng phân loại như trong hình 3.6 Hình 3.6 Nút (Unicast và Multicast) Có hai loại nút trong NS. Một là nút Unicast có một bộ phân loại địa chỉ thực hiện việc định tuyến Unicast và một bộ phân loại cổng. Một nut Multicast bổ sung thêm một bộ phân loại để phân loại các gói tin Multicast từ các gói tin Unicast và bộ phân loại Multicast để thực hiện định tuyến Multicast. Trong NS các nút Unicast là các nút được mặc định. Để tạo ra các nút Multicast người dung phải khai báo rõ rang trong kịch bản OTcl đầu vào ngay sau khi tạo ra một đối tượng lịch biểu. Khi đó tất cả các nút sẽ được tạo ra là các nút Multicast. Sau 49 khi chỉ rõ kiểu nút người dùng cũng có thể lựa chọn một giao thức định tuyến đặc biệt khác hơn là sử dụng một giao thức định tuyến mặc định + Liên kết Một liên kết là một đối tượng cấu thành chính khác trong NS. Khi một người dung tạo ra một liên kết sử dụng một hàm thành viên duplex-link của đối tượng mô phỏng. Hai liên kết Simplex theo cả hai hướng được tạo ra : Hình 3.7 Liên kết Một điều cần lưu ý là một hàng đợi đầu ra của một nút được thực hiện thực sự như một phần của đối tượng liên kết duplex-link. Các gói tin được lấy ra từ một hang đợi được đưa tới đối tượng Delay đóng vai trò độ trễ của mối liên kết ,các gói tin bị thả tại hang đợi được gửi tới đối tượng NullAgent và được giải phóng ở đó. Cuối cùng đối tượng TTL tính toán các thông số time to live cho mỗi gói tin nhận được và cập nhật trường TTL của gói tin - Tracing: Trong NS các hoạt động của mạng được mô tả xung quanh các liên kết Simplex. Nếu sự mô phỏng được định hướng mô tả các hoạt động của mạng (Sử dụng $ns trace-allfile hoặc $ns namtrace –allfile )Các liên kết được tạo ra sau dòng lệnh này sẽ được chèn các đối tượng trace như trong hình 3.8 Hình 3.8 Chèn các đối tượng Trace 50 Người dùng cũng có thể tạo ra một đối tượng trace đặc biệt giữa nút nguồn và nút đích khi sử dụng câu lệnh creat-trace(type file src dst). Khi mỗi đối tượng trace được chèn (Ví dụ EnqT,DeqT,DrpT,và RecvT)nhận một gói tin nó ghi vào một file trace đặc biệt mà không tiêu thụ bất kì thời gian mô phỏng nào và gửi gói tin đó đến đối tượng mạng kế tiếp - Queue monitor (giám sát hàng đợi) Về cơ bản các đối tượng tracing được tạo ra để ghi lại thời gian chuyển đến của gói tin tại nơi mà chúng đã được định vị. Mặc dù một người dung có đủ thông tin từ trace ,anh ta có thể quan tâm đến những gì đang diễn ra bên trong một hang đợi đầu ra đặc biệt. Ví dụ một người dung quan tâm đến hành vi của hàng đợi RED có thể muốn đo kích thước động trung bình của hàng đợi và kích thước hiện thời của hang đợi RED(cần thiết cho sự giám sát hang đợi ).Việc giám sát hang đợi có thể đạt được nhờ sử dụng các đối tượng monitor queue và các đối tượng snoop queue như trong hình 3.9 Hình 3.9 Giám sát hàng đợi Khi một gói tin được chuyển đến một đối tượng snoop queue thong báo cho đối tượng queue monitor sử dụng thong tin này để theo dõi hang đợi. Lưu ý rằng đối tượng snoop queue có thể được sử dụng song song với các đối tượng tracing mặc dù nó không được chỉ ra trong hình 3.9 3.3 Sử dụng phần mềm NS-2 để mô phỏng mạng 3.3.1 Cơ bản về Tcl Để sử dụng được kịch bản Tcl tại dấu nhắc của dòng lệnh ta gõ “tclsh”. Để thoát khỏi chế độ soạn thảo Tcl ta gõ “exit” + Khai báo biến 51 + Để khai báo các biến trong Tcl ta sử dụng câu lệnh set vừa để khai báo vừa để gán giá trị cho các biến Ví dụ :set x 10 điều này có nghĩa là khai báo biến x với giá trị khởi tạo x=10 Kí tự “$”được sử dụng để chứa giá trị của biến Ví dụ :set x2 $x1 có nghĩa là lấy giá trị của x1 gán cho x2 Lưu ý rằng ta không sử dụng $ khi biến được gán một giá trị cụ thể + Biểu thức toán học Set value [expr $x1 +($x2*3)] Ví dụ set c [expr $a +$b] Trong ví dụ trên từ khoá expr thông báo răng sau nó sẽ là một biểu thức toán học (cụ thể ở đây là phép cộng của hai giá trị của các biến a và b ) chỉ ra rằng tất cả các phép toán chứa trong nó sẽ được tính toán trước . Như vậy ví dụ trên có nghĩa là khai báo một biến c với giá trị khởi tạo c=a+b. In chuỗi ra màn hình Puts “ chuỗi cần in ra ” Ví dụ :puts “thuc thi kich ban tcl don gian” .Các cấu trúc điều khiển : If {điều kiện} then {………} for {set i 0} {$i <10}{incr i}{…………..} Khai báo thủ tục Proc tên thủ tục {arg1 arg2…}{} Làm việc với file + Mở một file để ghi Set f1 [open “try” “w”] + Ghi dữ liệu lên file và đóng file Puts $f1 “ghi mot cau len file” Close $f1 + Đọc dữ liệu từ file Set f1 [open “try” ”r”] 52 Set l1 [gets $f1] Puts “doc tai dong : $l1” 3.3.2 Cơ bản về OTcl Để làm việc với OTcl tại dấu nhắc của shell ta gõ lênh “OTclsh” và để thoát ra ta gõ lệnh “exit”. Khởi tạo một lớp Class ten_lop Class ten_lop superclass ten_lop_dan _xuat Định nghĩa các thủ tục instance Ten_lop instproc ten_thu_tuc {args}{….} Định nghĩa các biến instance $self instvar ten_bien Khởi tạo một instance Set new_inst [new ten_lop] Lưu ý :-$self tương đương với biến this trong C++.Nó nhắc đến instance hiện tại trong phạm vi hàm đang thực thi,nghĩa là nó nhắc đến chính nó - instvar được sử dụng để khai báo một biến thành viên và cũng theo một cách tương tự instproc được dung để khai báo một hàm thành viên. Cú pháp của một thủ tục cũng tương tự như trong Tcl ngoại trừ tên lớp phải khai báo trước và từ khoá “proc” được thay thế bởi “instproc”. - Lưu ý rằng biến trong NS được gán “[Simulator instance]” “Simulator” là tên lớp “instance ” là một hàm tĩnh trong lớp trả về instance của lớp Simulator. - Cú pháp để truy nhập hàm thành viên là $obj member-func parameters Ta có thể thấy điều này khi hàm duplex-link được gọi để tạo liên kết giữa các nút. Bây giờ khi đã có những khái niệm cơ bản về Tcl và OTcl. Trước khi bắt tay vào nghiên cứu NS-2 hoạt động ra sao hãy xem một chương trình nhỏ vơi Tcl. Tcl có hai chế độ làm việc đó là interative mode và batch mode . 53 + Chương trình “Hello World ” trong chế độ Interative mode . Dinh_lam >ns % set ns [new Simulator] %$ns at 1 “puts\”Hello World !\”” %$ns at 1.5 “exit” %$ns run Kết quả Hello World ! + Chương trình “Hello World ” trong chế độ batch mode. Simple.tcl Set ns [new Simulator] $ns at 1 “puts\”Hello World !\”” $ns at 1.5 “exit” $ns run Dinh_lam > ns Simple.tcl Kết quả Hello World ! 3.3.3 Các bước cơ bản của một kịch bản mô phỏng NS-2 Một kịch bản mô phỏng của NS-2 thông thường bao gồm các bước sau : + Khởi tạo lịch biểu sự kiện + Bật chế độ tracing nếu cần + Khởi tạo topo mạng + Thiết đặt các giao thức định tuyến + Khởi tạo các tác nhân vận chuyển + Khởi tạo các lưu lượng source/sink + Chèn các thông báo lỗi nếu cần Khởi tạo lịch biểu sự kiện Cú pháp :Set ns [new Simulator] -Lịch biểu các sự kiện :$ns at -Bắt đầu lịch biểu :$ns run Mở một file cho trace data Set nf [open out.nam w] $ns namtrace-all $nf 54 hoặc $ns namtrace-all-wireless $nf -Bật tracing trên các liên kết đặc biệt $ns namtrace-queue $n0 $n1 -Thủ tục để đóng file và bắt đầu phần mềm NAM Proc finish{}{ Global ns nf $ns flush-trace Close $nf Exec nam out.nam & Exit 0 } Khởi tạo topo mạng + Nút :set n0 [$ns node] Set n1 [$ns node] + Các liên kết và hàng đợi $ns duplex-link $n0 $n1 Kiểu hang đợi có thể :DropTail,RED,CBQ,FQ,SFQ,DRR + Khởi tạo một tác nhân UDP và gắn nó với nút n0 Set udp [new agent/udp] $ns attach-agent $n0 $udp + Khởi tạo một nguồn lưu lượng CBR và gắn nó với udp0 Set cbr [new application/traffic/cbr] $cbr attach-agent $udp + Khởi tạo một tác nhân rỗng để làm suy giảm lưu lượng Set null [new agent/null] $ns attach-agent $n2 $null + Kết nối chúng $ns connect $udp $null + Thực thi lịch biểu sự kiện $ns at 0.5 “$cbr start” $ns at 3.5 “$cbr stop ” 55 + Khởi tạo một tác nhân TCP và gắn nó với nút n0 Set tcp [new agent/tcp] $ns attach-agent $n0 $tcp + Khởi tạo một nguồn lưu lượng FTP và gắn nó với tcp0 Set ftp [new application/traffic/ftp] $ftp attach-agent $tcp + Khởi tạo một TCPSink để làm suy giảm lưu lượng Set sink [new agent/tcpsink] $ns attach-agent $n2 $sink + Thực thi lịch biểu sự kiện $ns at 0.5 “$FTP start” $ns at 3.5 “$FTP stop ” Thiết đặt sự định tuyến + Unicast : $ns rtproto Kiểu :Static,Session,DV,cost ,multi-path + Multicast: $ns multicast (ngay sau khi [new Simulator]) hoặc set ns [new Simulator-multicast on] $ns mrtproto Kiểu CtrMcast,DM,ST,BST Chèn các thông báo lỗi + Khởi tạo modul lỗi Set loss_module [new errrormodel] $loss_module set rate_0.01 $loss_module unit pkt $loss_module ranvar[new random variable/uniform] $loss_module drop-target[new agent/null] + Chèn module lỗi $ns lossmodel $loss_module $n0 $n1 56 3.3.4 Thực hiện mô phỏng mạng không dây trong NS Trong mục này sẽ trình bày cách để sử dụng mô hình mô phỏng mạng không dậy di động trong NS. Mục này gồm hai phần, trong phần đầu tiên sẽ thảo luận xem làm thế nào để tạo ra và mô phỏng mạng không dây đơn giản với hai nút mạng, trong phần thứ sẽ mở rộng ví dụng trong phần một để tạo ra một sự mô phỏng mạng không dây phức tạp hơn. Tạo một kịch bản mô phỏng mạng không dây đơn giản Phần này mô phỏng một kịch bản mạng không dây rất đơn giản gồm hai nút mạng. Topo mạng bao gồm hai nút di động node_(0) và node_(1). Các nút di động này di chuyển trong một phạm vi đã được xác định là 500m x 500m. Ban đầu các nút bắt đầu tại hai vị trí đối diện nhau ở ngoài cùng của đường biên. tiếp đó chúng di chuyển hướng về nhau trong nửa đầu tiên của mô phỏng và rồi lại tiếp tục di chuyển ra xa trong phần thứ hai của sự mô phỏng. Một kết nối TCP được thiết lập giữa hai nút di động. các gói tin được trao đổi giữa các nút khi chúng đến trong phạm vi cảm nhận cua một nút khác. Khi chúng di chuyển ra xa các gói tin sẽ bát đầu bị loại bỏ. Giống như bất kì sự mô phỏng nào khác của NS trước tiên sẽ bắt đầu bằng việc tạo ra một kịch bản TCL cho sự mô phỏng mang không dây. File này được gọi là simple-wereless.tcl. Một nút di động bao gồm các thành phần của mạng như: Link Layer( LL tầng kết nối) Interface Queue (giao diện hàng đợi IFQ) ,MAC layer (lớp MAC) các kênh không dây truyền và nhận tín hiệu… Khi bắt đầu mô phỏng mạng không dây cần định nghĩa kiểu cho mỗi thành phần của mạng. ngoài ra còn định nghĩa các thông số khác như kiểu antenna, mô hình truyền sóng radio, kiểu giao thức định tuyến của mạng AD- HOC được sử dụng bởi các nút di động.. Xem các chú thích trong đoạn mã đối với những mô tả ngắn gọn của mỗi biến được định nghĩa. Mảng được sử dụng để định nghĩa những biến này như val() không phải là một biến toàn cục khi nó được sử dụng trong các kịch bản được mô tả trước đây. 57 Kịch bản simple- wireless. tcl bắt đầu với một danh sách của những thông số khác nhau được mô tả dưới đây như sau: # ========================================================= ============= # Define options # ========================================================= ============= set val(chan) Channel/WirelessChannel ;# channel type set val(prop) Propagation/TwoRayGround ;# radio-propagation model set val(ant) Antenna/OmniAntenna ;# Antenna type set val(ll) LL ;# Link layer type set val(ifq) Queue/DropTail/PriQueue ;# Interface queue type set val(ifqlen) 50 ;# max packet in ifq set val(netif) Phy/WirelessPhy ;# network interface type set val(mac) Mac/802_11 ;# MAC type set val(rp) DSDV ;# ad-hoc routing protocol set val(nn) 2 ;# number of mobilenodes Tiếp theo đi vào phần chính của chương trình và bắt đầu tạo ra một trường hợp của sự mô phỏng. : set ns_ [new Simulator] rồi cài đặt sự hỗ trợ trace bởi việc mở file simple.tr và gọi thủ tục trace-all {} như sau: set tracefd [open simple.tr w] $ns_ trace-all $tracefd Tiếp đến tạo một đối tượng topology tuân theo đường đi của (sự di chuyển) các nút di động trong đường biên của topo mạng : set topo [new Topography] Như đã đề cập đến trước đây các nút di động chỉ di chuyển trong phạm vi một topo 500m x 500m. Cần cung cấp cho đối tượng topography với biên của toạ độ x,y (x=500, y=500): $topo load_flatgrid 500 500 58 Topography được chia thành từng ô và giá trị mặc định của độ phân giải ô là 1. Một giá trị khác có thể được sử dụng như một thông số thứ 3 với hàm load- flatgrid{}. Kế đến tạo đối tượng god như sau: create-god $val(nn) Tiếp theo cần tạo ra các nút di động: Các nút API được tạo ra đã được sửa lại còn ở đây các API mới được sử dụng để tạo ra các nút di động. Trước tiên cần cấu hình các nút trước khi tạo ra chúng. Cấu hinh nút API có thể bao gồm định nghĩa kiểu địa chỉ (flat,hierachical v.v.) kiểu giao thức định tuyến của ad-hoc link layer ,Mac layer , IfQ v.v..Cấu hình API có thể được định nghĩa như sau : (parameter examples) # $ns_ node-config -addressingType flat or hierarchical or expanded # -adhocRouting DSDV or DSR or TORA # -llType LL # -macType Mac/802_11 # -propType "Propagation/TwoRayGround" # -ifqType "Queue/DropTail/PriQueue" # -ifqLen 50 # -phyType "Phy/WirelessPhy" # -antType "Antenna/OmniAntenna" # -channelType "Channel/WirelessChannel" # -topoInstance $topo # -energyModel "EnergyModel" # -initialEnergy (in Joules) # -rxPower (in W) # -txPower (in W) # -agentTrace ON or OFF # -routerTrace ON or OFF # -macTrace ON or OFF # -movementTrace ON or OFF Tất cả các giá trị mặc định cho các tuỳ chọn này là NULL ngoại trừ addressingtype :flat 59 Ở đây sử dụng giá trị mặc định của flat addressing.Ngoài ra hãy chỉ bật duy nhất AgentTrace và RouterTrace. Có thể thử với tất cả các trace bằng cách bật tất cả chúng lên. Tất cả các AgentTrace được đánh dấu với AGT,RouterTrace với RTR , MacTrace với MAC trong trường thứ 5 của chúng. MovementTrace khi được bật lên cho thấy các hoạt động của nút di động và trace được đánh dấu với M trong trường thứ hai của chúng. Sự cấu hình API cho các nút di động như sau : # Configure nodes $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -topoInstance $topo \ -channelType $val(chan) \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace OFF Tiếp theo tạo ra hai nút di động như sau : for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node ] $node_($i) random-motion 0 ;# disable random motion } Ở đây sự di động ngẫu nhiên của các nút đã được vô hiệu hoá vì chúng cần cung cấp vị trí nút và hoạt động (tốc độ và hướng ) trong các chỉ thị tiếp theo.Bây giờ các nút di động đã được tạo ra, cần cung cấp cho chúng một vị trí để bắt đầu # Provide initial (X,Y, for now Z=0) co-ordinates for node_(0) and node_(1) 60 $node_(0) set X_ 5.0 $node_(0) set Y_ 2.0 $node_(0) set Z_ 0.0 $node_(1) set X_ 390.0 $node_(1) set Y_ 385.0 $node_(1) set Z_ 0.0 .Node0 có một vị trí bắt đầu (5,2) trong khi node1 bắt đầu bằng vị trí (390,385) Kế đến đưa ra một số hoạt động của nút # Node_(1) starts to move towards node_(0) $ns_ at 50.0 "$node_(1) setdest 25.0 20.0 15.0" $ns_ at 10.0 "$node_(0) setdest 20.0 18.0 1.0" # Node_(1) then starts to move away from node_(0) $ns_ at 100.0 "$node_(1) setdest 390.0 380.0 15.0" $ns_ at 50.0 "$node_(1) setdest 25.0 20.0 15.0" có nghĩa là tại thời điểm 50.0s node1 bắt đầu di chuyển hướng tới toạ độ (x=25,y=20) với tốc độ 15m/s.API này được sử dụng hướng và tốc độ hoạt động của các nút di động Tiếp theo thiết lập luồng lưu lượng giữa hai nút như sau : # TCP connections between node_(0) and node_(1) set tcp [new Agent/TCP] $tcp set class_ 2 set sink [new Agent/TCPSink] $ns_ attach-agent $node_(0) $tcp $ns_ attach-agent $node_(1) $sink $ns_ connect $tcp $sink set ftp [new Application/FTP] $ftp attach-agent $tcp $ns_ at 10.0 "$ftp start" Thiết lập một kết nối TCP giữa hai nút với một TCP nguồn trên node0. Cần định nghĩa thời gian cho mô phỏng kết thúc và thong tin cho các nút di động để xác lập lại các thành phần mạng nội bộ của chúng # Tell nodes when the simulation ends for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at 150.0 "$node_($i) reset"; } 61 $ns_ at 150.0001 "stop" $ns_ at 150.0002 "puts \"NS EXITING...\" ; $ns_ halt" proc stop {} { global ns_ tracefd close $tracefd } Tại thời điểm 105.0s sự mô phỏng sẽ dừng.Các nút xác lập lại tại thời gian đó và “$ns_halt” được gọi tại 150.0002s một chút ngay sau khi xác lập lại các nút. Thủ tục stop{}dduwowcj gọi để xoá các trace và xoá các file trace Và cuối cùng dòng lệnh để bắt đầu mô phỏng puts "Starting Simulation..." $ns_ run Lưu file Simple-wireless.tcl Tại thời điểm kết thúc sự thực thi mô phỏng file trace-output Simple.tr được tạo ra.Khi đã bật AgentTrace và RouterTrace hãy quan sát các thông điệp định tuyến DSDV và các gói tin TCP sẽ được nhận và gửi bởi các đối tượng Router và Agent trong các node0 và 1. Lưu ý rằng tất cả các trace không dây bắt đầu với WL trong trường đầu tiên của chúng. Quan sát luồng TCP bắt đầu từ 10.0s tại node0 Bắt đầu cả hai nút đều cách xa nhau và như thế các gói tin TCP bị loại bỏ bởi node0 bởi vì nó không thể nhận được từ node1. Trong vòng 81.0s thông tin định tuyến bắt đầu được trao đổi giữa hai nút và trong vòng 100s sẽ quan sát thấy gói tin TCP đầu tiên sẽ được nhận bởi Agent ở node1 và rồi node1 gửi một ACK trở lại node0 và kết nối TCP được thiết lập. Dù sao khi node1 bắt đầu di chuyển ra xa node0 kết nối lại bị bẻ gãy trong khoảng thời gian 116.0s.Các gói tin bắt đầu bị huỷ khi các nút di chuyển ra xa nhau . 62 CHƯƠNG IV: MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU NĂNG CÁC GIAO THỨC ĐỊNH TUYẾN PROACTIVE TRONG AD-HOC 4.1 Một số độ đo đánh giá hiệu năng. 4.1.1 Các độ đo định tính Để đánh giá chất lượng của một giao thức định tuyến, cần các độ đo cả về mặt định tính lẫn định lượng để đo độ phù hợp và hiệu năng của các giao thức. Các độ đo này là độc lập với bất kỳ một giao thức nào. Danh sách sau là danh sách các độ đo định tính đối với các giao thức định tuyến của mạng Ad-Hoc:  Hoạt động phân bố: Đây là một tính chất thiết yếu tuy nhiên nó có thể là trạng thái.  Tránh hiện tượng lặp vòng: Không yêu cầu phải định lượng nhưng thường được đưa ra để tránh khỏi các vấn đề xảy ra trong trường hợp tồi nhất. Ví dụ như một phần nhỏ của gói tin chạy vòng tròn trong mạng với thời gian tùy ý. Các giải pháp trong mạng ad hoc chẳng hạn như các giá trị TTL có thể giới hạn vấn đề này, nhưng việc tiếp cận một cách chuẩn hóa và có cấu trúc hơn là một việc làm cần thiết để đạt được một hiệu năng tổng thể của hệ thống tốt hơn.  Hoạt động trên cơ sở yêu cầu: Thay vì việc giả định một phân bố lưu lượng đồng bộ trong mạng (và duy trì thông tin định tuyến giữa các nút mạng ở mọi thời điểm), các thuật toán định tuyến có thể hoạt động để phù hợp với dạng lưu lượng trong mạng theo nhu cầu hoặc yêu cầu cơ bản. Nếu điều này được thực hiện một cách thông minh, nguồn tài nguyên năng lượng và băng thông của mạng sẽ được sử dụng một cách hiệu quả hơn cùng với việc tăng giá của thời gian trễ khi tìm đường.  Hoạt động thường xuyên: Đây là hoạt động ngược lại với kiểu hoạt động trên cơ sở yêu cầu. Trong một vài hoàn cảnh nào đó, thời gian trễ của hoạt động trên cơ sở yêu cầu có khả năng không thể chấp nhận được. Nếu các 63 nguồn tài nguyên về băng thông và năng lượng cho phép, hoạt động theo kiểu thường xuyên là phù hợp với các hoàn cảnh này.  Bảo mật: Một giao thức định tuyến cho mạng Ad-Hoc sẽ là một giao thức dễ bị tấn công theo một số dạng nào đó nếu không có sự bảo mật ở tầng mạng hoặc tầng liên kết dữ liệu. Các kiểu tấn công có thể thực hiện một cách khá đơn giản để đọc trộm dữ liệu trên mạng, truyền lại dữ liệu, sửa đổi phần header của các gói dữ liệu và định hướng sai lệch các thông điệp định tuyến. Trong khi những mối quan tâm này tồn tại trong cả các cơ sở hạ tầng mạng có dây cũng như với các giao thức định tuyến, vấn đề bảo mật môi trường truyền vật lý trong mạng Ad-Hoc sẽ trở nên khó khăn hơn rất nhiều so với vấn đề này trong mạng có dây. Các giao thức định tuyến có đủ sự bảo mật cần thiết để ngăn chặn những thay đổi không hợp lệ là các giao thức định tuyến được yêu cầu.  Hoạt động “ngủ” theo chu kỳ: Với mục tiêu bảo tồn năng lượng hoặc cần thiết phải đưa một nút vào tình trạng không hoạt động, các nút trong một mạng Ad-Hoc có thể ngừng truyền hoặc ngừng nhận trong các khoảng thời gian tùy ý. Một giao thức định tuyến phải có khả năng phù hợp với các chu kỳ “ngủ” của các nút này mà không làm kết quả đảo ngược lại hoàn toàn. Tính chất này có thể yêu cầu đóng sự kêt nối giữa với giao thức tầng liên kết dữ liệu qua một giao tiếp đã được chuẩn hóa.  Khả năng hỗ trợ liên kết một chiều: Khi thiết kế các thuật toán định tuyến, người ta thường giả sử có các liên kết hai chiều và nhiều thuật toán không có khả năng hoạt động một cách hoàn hảo qua các liên kết một chiều. Tuy nhiên, các liên kết một chiều hoàn toàn có thể tồn tại trong mạng không dây. Thông thường số lượng các liên kết song công đang tồn tại đủ để việc sử dụng các liên kết một chiều không có ý nghĩa nhiều lắm. Tuy nhiên trong tình huống một cặp liên kết một chiều (ở hai chiều ngược nhau) chỉ hình thành một liên kết hai chiều giữa hai vùng của mạng ad hoc thì khả năng các giao thức định tuyến có thể hoạt động tốt được lại có giá trị rất lớn. 64 4.1.2 Các độ đo định lượng Các độ đo định lượng được sử dụng khi đánh giá hiệu năng của một giao thức định tuyến nào đó bao gồm:  Thông lượng dữ liệu đầu cuối và độ trễ: Các độ đo thống kê về hiệu năng định tuyến dữ liệu chẳng hạn như giá trị trung bình, phương sai, khả năng phân bố là rất quan trọng. Đây là các độ đo tính hiệu quả của một phương pháp định tuyến. Nói cách khác, các độ đo này sẽ đo xem một giao thức định tuyến tực hiện công việc của nó tốt đến mức nào.  Thời gian tìm đường: Đây là một dạng độ đo thời gian trễ đầu cuối được áp dụng khi đánh giá hiệu năng của các giao thức định tuyến hoạt động theo yêu cầu. Thời gian tìm đường là thời gian cần thiết để thiết lập một con đường khi có yêu cầu.  Phần trăm truyền không theo thứ tự: Một độ đo ngoài khi đánh giá hiệu năng của các giao thức định tuyến dạng không kết nối liên quan đến toàn bộ các giao thức ở tầng chuyển vận chẳng hạn như TCP (yêu cầu truyền theo thứ tự).  Độ hiệu quả: Nếu tính hiệu quả định tuyến dữ liệu là một độ đo ngoài về hiệu năng một chính sách định tuyến thì độ hiệu quả là độ đo trong của tính hiệu quả của các chính sách định tuyến. Để đạt được một cấp độ về hiệu năng định tuyến dữ liệu cho trước nào đó, hai chính sách định tuyến khác nhau có thể sử dụng lượng thông tin điều khiển khác nhau phụ thuộc vào độ hiệu quả trong của chúng. Độ hiệu quả của giao thức có thể hoặc không có thể ảnh hưởng trực tiếp đến hiệu năng định tuyến dữ liệu. Nếu việc truyền dữ liệu và thông tin điều khiển phải chia sẻ chung một kênh truyền và dung lượng của kênh truyền bị giới hạn thì việc đòi hỏi truyền thông tin điều khiển quá nhiều sẽ làm giảm hiệu năng định tuyến dữ liệu. Để làm rõ hơn độ hiệu quả trong của một giao thức, có một số thông số sau được đưa ra:  Giá trị trung bình của số lượng bit dữ liệu phải truyền chia cho số lượng bit cần truyền. Đây là một độ đo độ hiệu quả của việc truyền 65 dữ liệu trong mạng. Nói một cách gián tiếp, nó cung cấp số chặng trung bình mà các gói dữ liệu phải vượt qua.  Giá trị trung bình của số bit điều khiển phải truyền chia cho số bit dữ liệu cần truyền. Độ đo này là độ đo tính hiệu quả của giao thức về khả năng sử dụng dung lượng đường truyền dữ liệu để truyền các thông tin điều khiển. Thông tin điều khiển ở đây không chỉ là các bit trong các gói tin điều khiển định tuyến và còn là các bit trong phần header của các gói tin dữ liệu. Nói cách khác, những gì không phải là dữ liệu trong các gói tin sẽ là thông tin điều khiển và nó sẽ được tính là phần điều khiển của một giao thức.  Giá trị trung bình của số lượng gói tin dữ liệu và gói tin điều khiển chia được truyền chia cho số lượng gói tin dữ liệu cần truyền. Thay vì việc đo độ hiệu quả của thuật toán theo dạng tính bằng bit, độ đo này sẽ đo độ hiệu quả của việc truy nhập kênh truyền của một giao thức. Một số tham số sau cần phải quan tâm tới là “ngữ cảnh” của mạng khi ta thực hiện việc đánh giá hiệu năng của một giao thức:  Kích thước mạng – được đo bằng số lượng các nút.  Kết nối mạng – số lượng các nút hàng xóm trung bình quanh mỗi nút.  Tốc độ thay đổi hình trạng mạng  Dung lượng của liên kết – tốc độ liên kết có thật được đo bằng số bit/giây  Phần các liên kết một chiều – liên quan đến tính hiệu quả của một giao thức thực hiện khi có mặt các liên kết một chiều.  Dạng truyền – liên quan đến tính hiệu quả của một giao thức trong việc thích nghi với các dạng thức truyền khác nhau.  Tính di động – hình trạng mạng biến đổi theo thời gian và không gian đều ảnh hưởng đến hiệu năng của một giao thức định tuyến nào đó. 66  Số lượng và tần số xuất hiện các nút không hoạt động - liên quan đến cách thực hiện của một giao thức khi có một cả các nút đang hoạt động và nút không hoạt động. Một giao thức trong mạng Ad-Hoc có thể hoạt động một cách có hiệu quả qua nhiều hoàn cảnh mạng khác nhau – từ mạng nhỏ, mạng trong phòng thí nghiệm, nhóm mạng ad hoc đến các mạng di động lớn và nhiều chặng. Các đặc tính và độ đo đánh giá hiệu năng trong mạng Ad-Hoc đôi khi hơi khác biệt so với các mạng có dây và đa chặng truyền thống. Môi trường mạng không dây luôn là một môi trường khan hiếm về băng thông và năng lượng của các nút mạng. Tóm lại, việc đưa mạng Ad-Hoc vào thị trường thương mại còn rất nhiều thách thức và các cơ hội nghiên cứu về mạng Ad-Hoc còn rất nhiều. Một sự thiết lập khác đi về hiệu năng đưa ra yêu cầu về các giao thức định tuyến mới để điều khiển mạng. Một câu hỏi có thể nảy sinh là “độ ‘tốt’ của một giao thức có thể được đo như thể nào”. Các độ đo về hiệu năng của các giao thức định tuyến có thể giúp ta trả lời được câu hỏi này và chúng rất có ý nghĩa khi so sánh và đánh giá hiệu năng của các giao thức. Có thể nhận ra rằng một giao thức định tuyến có khuynh hướng phù hợp với một dạng mạng đặc biệt nào đó nhưng lại không thích hợp với các dạng mạng khác. Các đặc tính của các giao thức cả về ưu điểm lẫn sự hạn chế cần phải được chú ý đến để xem chúng có phù hợp với ngữ cảnh của mạng định áp dụng hay không. Các thuộc tính này của một giao thức thường có thể tính toán được một cách ‘định tính’, ví dụ như một giao thức có thể hỗ trợ hay không thể hỗ trợ cơ chế định tuyến theo con đường ngắn nhất. Các mô tả định lượng cho phép đánh giá định lượng một cách chi tiết hơn về hiệu năng của các giao thức. 4.2 Đánh giá hiệu năng dựa trên các thông số Bảng 4-1 đưa ra sự so sánh về hiệu suất của các giao thức AODV, DSR, TORA, ABR và SSR. Giao thức AODV triển khai một thủ tục tìm đường tương tự như DSR tuy nhiên giữa hai giao thức này có một số điểm khác biệt. Điều chú ý nhất ở đây là phần thông tin điều khiển của DSR thường có khả năng lớn 67 hơn phần thông tin điều khiển của AODV bởi vì mỗi một gói tin của DSR phải phải chứa đầy đủ mọi thông tin định tuyến trong khi đó các gói tin của AODV chỉ yêu cầu chứa địa chỉ đích. Tương tự như vậy, các thông điệp trả lời đường của DSR cũng chứa phần thông tin điều khiển lớn hơn của AODV bởi vì mỗi gói tin trả lời của DSR phải chứa đầy đủ địa chỉ của các nút trong đường đi quay ngược lại mà nó đi qua trong khi các gói tin của AODV chỉ chứa địa chỉ IP đích và số thứ tự. Bộ nhớ yêu cầu khi xử lý các thông điệp của DSR là lớn hơn so với bộ nhớ yêu cầu đối với thông điệp AODV bởi vì DSR yêu cầu phải nhớ toàn bộ các con đường trong khi AODV chỉ yêu cầu nhớ thông tin về chặng tiếp theo. Một ưu điểm nữa của AODV là nó hỗ trợ kiểu truyền multicast [18] trong khi rất ít giao thức đưa ra ở đây hỗ trợ kiểu truyền thông này. Mặt khác, AODV lại yêu cầu các liên kết đồng bộ giữa các nút và không thể sử dụng các con đường có các liên kết không đồng bộ. Theo khía cạnh này thì DSR là ưu việt hơn bởi vì nó không yêu cầu các liên kết đồng bộ. Các tham số hiệu năng AODV DSR TORA ABR SSR Độ phức tạp về thời gian khởi tạo O(2d) O(2d) O(2d) O(d+z) O(d+z) Độ phức tạp về thời gian khi có sự thay đổi O(2d) O(2d) O(2d) O(l+z) O(l+z) Độ phức tạp truyền thông khi khởi tạo O(2N) O(2N) O(2N) O(N+y) O(N+y) Độ phức tạp truyền thông khi lỗi xảy ra O(2N) O(2N) O(2x) O(x+y) O(x+y) Dạng địa chỉ định tuyến Phẳng Phẳng Phẳng Phẳng Phẳng Tránh định tuyến lặp Có Có Có Có Có Khả năng truyền multicast Có Không Không Không Không Thông điệp Hello Không Không Không Có Có Khả năng đa đường Không Có Có Không Không Nơi lưu trữ đường Bảng định tuyến Bộ nhớ đường Bảng định tuyến Bảng định tuyến Bảng định tuyến Thời gian timeout khi lưu trữ đường đi Có Không Không Không Không 68 Cấu hình lại đường đi Xóa và thông báo Xóa và thông báo Sửa chữa Quảng bá nội bộ Xóa và thông báo Độ đo đường Mới nhất và ngắn nhất Ngắn nhất Ngắn nhất Độ liên kết và ngắn nhất Độ liên kết và tính bền vững Ghi chú: d=Đường kính mạng; N=Số nút mạng; l=Bán kính đoạn bị ảnh hưởng; x=Số nút trực tiếp nhận gói REPLY; y=Bán kính truyền trực tiếp gói REPLY Bảng 4-1: So sánh hiệu năng các giao thức định tuyến dạng on-demand Thuật toán DSR là thuật toán thích hợp để ứng dụng vào các mạng có các nút di chuyển với tốc độ trung bình theo khía cạnh độ trễ khi truyền gói tin [10]. Các giả thiết đưa ra khi thực hiện thuật toán này là đường kính mạng tương đối nhỏ và các nút mạng có thể hoạt động ở chế độ nhận hỗn hợp, trong đó mọi gói tin nhận được được truyền tới các driver mạng mà không có cơ chế lọc địa chỉ. Ưu điểm lớn nhất của DSR là nó tiết kiệm băng thông mạng và năng lượng của nút mạng bởi vì nó là kiểu giao thức hoạt động theo yêu cầu nghĩa là nó không truyền các gói tin định tuyến theo chu kỳ quảng bá. Do đó khi không có sự thay đổi hình trạng mạng, giao thức DSR không phải chịu tải của việc truyền các thông tin điều khiển. Thêm vào đó, DSR cho phép các nút lưu trữ đồng thời nhiều con đường đến một đích trong bộ nhớ đường của nó. Do đó, khi một liên kết trên một con đường bị phá vỡ, một nút nguồn có thể sử dụng ngay một con đường khác nếu con đường này có trong bộ nhớ đường của nó và nó sẽ không phải khởi tạo một thủ tục tìm đường. Trong trường hợp này, thời gian tìm đường sẽ nhanh hơn các giao thức định tuyến dạng on-demand khác. Tuy nhiên, nếu trong bộ nhớ đường không có con đường nào khác đến đích, DSR phải khởi tạo lại một thủ tục tìm đường cũng giống như AODV. Mặt khác, vì đường kính mạng được giả định là nhỏ và vì yêu cầu định tuyến nguồn, DSR là giao thức ít có khả năng co giãn trong các mạng lớn. TORA là một giao thức định tuyến rất phù hợp với các mạng lớn có mật độ các nút lớn [16]. Tính chất mới lạ của TORA bắt nguồn từ việc tạo ra các gói tin DAG để thành lập đường. Một trong những ưu điểm của TORA là nó hỗ trợ nhiều đường. TORA và DSR là các giao thức định tuyến theo yêu cầu có duy trì nhiều con đường đến một nút đích. Việc xây dựng lại một con đường là không 69 cần thiết cho đến khi tất cả mọi con đường đã biết đều đã rơi vào tình trạng không hợp lệ và do đó có thể tiết kiệm băng thông mạng hơn các giao thức khác không hỗ trợ vấn đề này. Một ưu điểm khác của TORA là hỗ trợ multicast mặc dù kiểu multicast của nó khác với AODV. Giao thức ABR là một giao thức kết hợp giữa giao thức định tuyến kiểu broadcast và định tuyến kiểu điểm-điểm và nó sử dụng cách tiếp cận chuyển tiếp gói tin dạng hướng kết nối. Việc chọn đường là một thao tác chính dựa trên sự kết hợp các nút nằm trên một con đường. Do đó, mặc dù con đường kết quả không cần thiết phải chứa một số lượng nhỏ nhất các nút nhưng con đường kết quả của ABR thường có thời gian sống dài hơn con đường kết quả của các giao thức khác. Một con đường có thời gian sống dài hơn sẽ yêu cầu số lần xây dựng lại con đường đó ít hơn và do đó thông lượng của mạng có thẻ cao hơn. Một ưu điểm khác của ABR là nó đảm bảo không có hiện tượng lặp gói dữ liệu bởi vì chỉ có một con đường tốt nhất được đánh dấu là con đường hợp lệ trong khi mọi con đường có thể khác vẫn là dạng bị động. Tuy nhiên giao thức ABR lại yêu cầu mỗi nút phải định kỳ gửi thông tin báo hiệu. Khoảng thời gian giữa hai lần gửi thông tin báo hiệu định kỳ phải đủ ngắn để đảm bảo độ chính xác theo không gian, thời gian của hình trạng mạng. Việc gửi thông tin báo hiệu định kỳ này yêu cầu tăng thêm khả năng về năng lượng và chiếm thêm băng thông của mạng. Không giống như DSR, giao thức ABR không thực hiện việc lưu trữ đường. Thuật toán SSR là một thuật toán được phát triển từ thuật toán ABR. Nó thực hiện một kỹ thuật chọn đường mới trên cơ sở độ mạnh của tín hiệu và tính ổn định theo khu vực của các nút dọc theo một con đường. Trong ABR, trong khi các con đường được lựa chọn không cần phải là con đường ngắn nhất tính theo số chặng nên con đường có độ ổn định và thời gian sống khá cao. Một nhược điểm chính của SSR là không giống như AODV và DSR, các nút trung gian không thể trả lời một yêu cầu đường tới một nút nguồn. Thêm vào đó, khi một liên kết trên một con đường bị phá vỡ, thuật toán tìm đường này phải được kích hoạt lại từ nút nguồn để tìm ra một con đường mới tới nút đích. Trong SSR, 70 không có cơ chế cho phép các nút trung gian có thể tự xây dựng lại các con đường của chúng. 4.3 Đánh giá hiệu năng dựa trên kết quả mô phỏng 4.3.1 Mô hình hóa các kịch bản mô phỏng Hình 4.1 mô tả một trong số các kịch bản mô phỏng, gồm 9 nút di chuyển với vận tốc 20 m/s. Tám kịch bản được mô phỏng và thời gian chạy mỗi kịch bản là 900 giây (simulation time). Các kịch bản mô phỏng được thực hiện lặp lại nhiều lần với mục đích xác thực độ tin cậy của kết quả. Mỗi loại kịch bản sẽ mô phỏng bốn giao thức AODV, DSR, TORA, và DSDV. Việc phân loại các kịch bản mô phỏng nhằm mục đích kiểm tra tác động của tải và tốc độ di chuyển tới kết quả cuối cùng. Quá trình thu thập các thông số thống kê sự kiện riêng lẻ sẽ cho phép kiểm tra các thông số đánh giá hiệu năng cần thiết như khả năng truyền, tỉ lệ chuyển tiếp gói tin và độ tối ưu về đường đi. Hình 4-1 : Một mô hình kịch bản mô phỏng 71 Các kịch bản được xây dụng trên quy mô mạng trường học trải rộng trên diện tích 1000m x 500m. Các nút mạng là các đầu cuối vô tuyến và server phân bố ngẫu nhiên trên vùng địa lý này. Trong các kịch bản, các nút di động sẽ trao đổi lưu lượng dữ liệu với cùng một server. Di chuyển của các nút được cấu hình với cùng một mobility config với chế độ di chuyển ngẫu nhiên nhằm mô tả sự di chuyển giống như trên thực tế. các nút di chuyển với vận tốc tối đa là 20m/s tùy theo các kịch bản khác nhau. Di chuyển của các nút được thực hiện dựa trên cơ chế giả ngẫu nhiên. Với cơ chế này, một nút sẽ chọn cho nó một đích để bám theo, khi đến được đích, nó sẽ tạm dừng 30 giây hoặc hơn để tính toán trạng thái tương quan và sau đó chọn cho nó một nút đích ngẫu nhiên khác rồi tiếp tục di chuyển. Cơ chế này được cấu hình với mục đích so sánh các thông số thống kê trong các khoảng thời gian dừng và di chuyển trong cùng một kịch bản. 4.3.2 Khảo sát và phân tích kết quả Trong mục này sẽ thực hiện phân tích các kết quả mô phỏng thu được đồng thời đánh giá hiệu năng của các giao thức AODV, DSDV, TORA, DSR thông qua các thông số đầu vào. – Mạng gồm 9 nút di động. – Phạm vi trường học, diện tích 1000m x 500m. – Thời gian mô phỏng 900 giây. – Thời gian không di chuyển (Pause Time) gồm 7 mức: 0,30,60,120,300,600, và 900 – Tốc độ di chuyển tối đa là 20 m/s 4.3.2.1 Tỷ lệ chuyển tiếp gói tin Tỷ lệ chuyển tiếp gói tin (PDR - Packet Delivery Ratio) là tỷ số giữa số gói tin được phát và số gói tin nhận được trong mạng. Thông số này đánh giá tỷ lệ mát dữ liệu cũng như độ chính xác và hiệu quả của giao thức định tuyến. Hình 4-2 biểu diễn tỷ lệ chuyển tiếp gói tin của các giao thức AODV, DSDV, TORA, DSR tại vận tốc 20m/s. 72 Hình 4-2. Tỷ lệ chuyển tiếp gói tin của các giao thức Tỷ lệ này khá cao với các giao thức DSR, AODV, TORA ngoại trừ giao thức DSDV tại thời điểm 300 giây đầu tiên, sau đó tỷ lệ này lại tăng lên khá cao. Do bản chất, DSDV là một giao thức định tuyến sửa đổi từ thuật toán định tuyến Bellman-Ford. Nó mất thời gian cho việc tạo và cập nhật bảng định tuyến tại mỗi nút. Tuy nhiên DSDV là một giao thức không hiệu quả bởi vì nó yêu cầu truyền các gói tin cập nhật một cách định kỳ mà không cần để ý đến số lần thay đổi hình trạng mạng. Sau đó tỷ lệ này cao hơn rất nhiều vào các giai đoạn sau đó. DSR có tỷ lệ chuyển tiếp gói tin cao nhất trong toàn bộ thời gian hoạt động và khá ổn định, thấp hơn là AODV. Hầu hết các giao thức đều có tỷ lệ không ổn định tại ba chặng đầu tiên của quá trình. TORA cũng giống như vậy nhưng thấp hơn và chỉ cao hơn DSDV. Nhìn chung giao thức DSR và AODV thực thi việc truyền nhận gói tin tốt hơn hai giao thức còn lại và DSDV hoạt động kém hiệu quả nhất. Tuy nhiên khi hình trạng mạng khá ổn định thì các giao thức hoạt động tốt hơn. 73 4.3.2.2 Khả năng truyền gói tin Hình 4-2 biểu diễn khả năng truyền gói tin của các giao thức. Hình 4-3: Khả năng truyền gói tin của các giao thức. Có sự khác biệt rõ ràng về khả năng truyền gói tin giữa các giao thức. Nhận thấy rằng giao thức TORA có khả năng truyền gói tin đạt hiệu quả cao nhất, tuy có sự suy giảm đáng kể về giao đoạn cuối nhưng vẫn là giao thức đạt hiệu quả cao. Điều này chứng tỏ TORA hoạt động tốt hơn khi có vận tốc di chuyển lớn. Đỉnh cao lưu lượng tại thời điểm bắt đầu mô phỏng cho thấy có nhiều lưu lượng định tuyến được đưa vào mạng tại thời điểm thiết lập ban đầu. Tiếp sau đó là AODV, giao thức này luôn chứng tở được khả năng truyền tin khá ổn định trong các môi trường khác nhau. DSDV đạt hiểu quả không cao nhưng lại khá ổn định. Khả năng truyền gói tin thấp nhất là giao thức DSR, có thể vận tốc di chuyển cao làm tăng khả năng gãy liên kết dẫn đến DSR phải phản ứng với tần số cao hơn, tác động của nó thể hiện rõ rệt. 4.3.2.3 Độ tối ưu về đường đi 74 Hình 4-4: Độ tối ưu về đường đi Dễ dàng nhận thấy tại thời điểm ban đầu, số lượng gói tin gửi đi là rất cao, sau đó số lượng này giảm dần theo các chặng đường đi. Ổn định nhất là giao thức AODV, sau đó là TORA. Giao thức định tuyến AODV có thể điều chỉnh các thay đổi trong thời gian tạm dừng và khởi động tại các vận tốc thấp nhưng khi di chuyển với vận tốc cao các nút mất thời gian để điều chỉnh và do đó mất dần sự tối ưu. Đỉnh cao lưu lượng tại thời điểm bắt đầu mô phỏng cho thấy có nhiều lưu lượng định tuyến được đưa vào mạng tại thời điểm thiết lập ban đầu. Độ tối ưu của TORA tăng theo số lượng nút trong mạng. Lúc đầu số lượng gói tin gửi đi của DSR là cao nhất nhưng sau đó thì giảm mạnh, do sự đứt gãy liên kết nên ảnh hưởng rõ rệt. Vận tốc di chuyển cao làm tăng khả năng gãy liên kết dẫn đến DSR phải phản ứng với tần số cao hơn; tác động của nó thể hiện rõ rệt khi các nút bắt đầu dừng và di chuyển trờ lại sau chu kỳ đầu của ổn định tương đối. DSDV là giao thức mất ổn định nhất, là một giao thức không hiệu quả bởi vì nó yêu cầu truyền các gói tin cập nhật một cách định kỳ mà không cần để ý đến số lần thay đổi hình trạng mạng. Điều này giới hạn một cách có hiệu quả số lượng các nút có thể kết nối vào mạng khi thông tin điều khiển tăng. 75 KẾT LUẬN Để đánh giá hiệu suất của các giao thức định tuyến cần phải có các tiêu chí và độ đo đánh giá. Các độ đo đánh giá được chia thành hai nhóm là các độ đo định tính và các độ đo định lượng. Đồ án đã đưa ra các tiêu chí để đánh giá hiệu năng của một giao thức trong mạng Ad-Hoc. Cụ thể là tỷ lệ chuyển tiếp gói tin, khả năng truyền gói tin và độ tối ưu về đường đi. Trong đó tỷ lệ chuyển tiếp gói tin và khả năng truyền gói tin tác động trực tiếp đến độ tin cậy của giao thức, còn độ tối ưu về đường đi thể hiện hiệu năng sử dụng tài nguyên của giao thức. Hoạt động hiệu quả và tin cậy là điều mong muốn của các giao thức định tuyến trong mạng. Trong quá trình nghiên cứu ứng dụng TCP (truyền file FTP) đã được sử dụng với tất cả nguồn tới cùng một đích. Do cơ chế hoạt động của TCP, tỉ lệ chuyển tiếp gói tin cho tất cả giao thức trong các kịch bản chỉ đạt chưa quá 50%. Điều này chứng minh TCP không phù hợp với các giao thức định tuyến tùy biến hiện tại. Sử dụng các lưu lương UDP sẽ cho kết quả tỉ lệ chuyển tiếp gói tin cao hơn. Giao thức DSR thích hợp để ứng dụng vào các mạng có các nút di chuyển với tốc độ trung bình. Các giả thiết đưa ra khi thực hiện thuật toán này là đường kính mạng tương đối nhỏ và các nút mạng có thể hoạt động ở chế độ nhận hỗn hợp, trong đó mọi gói tin nhận được được truyền tới các driver mạng mà không có cơ chế lọc địa chỉ. Ưu điểm lớn nhất của DSR là nó tiết kiệm băng thông mạng và năng lượng của nút mạng bởi vì nó là kiểu giao thức hoạt động theo yêu cầu nghĩa là nó không truyền các gói tin định tuyến theo chu kỳ quảng bá. Do đó khi không có sự thay đổi hình trạng mạng, giao thức DSR không phải chịu tải của việc truyền các thông tin điều khiển. TORA là một giao thức định tuyến rất phù hợp với các mạng lớn có mật độ các nút lớn. Tính chất mới lạ của TORA bắt nguồn từ việc tạo ra các gói tin DAG để thành lập đường. 76 AODV hoạt động tốt hơn DSR và DSDV trong các mạng tải trung bình và thấp với tốc độ di chuyển của các nút thấp. Nó cũng hoạt động tốt hơn DSR và DSDV ở mạng tải lớn và tốc độ di chuyển cao. DSDV là giao thức hoạt động kém hiệu quả nhất, tốn nhiều thời gian và năng lượng hoạt động do các nút luôn phải cập nhật bẳng định tuyến. DSDV phù hợp với những mạng có kích thước nhỏ. Trong các giao thức được nghiên cứu không có một giao thức nào có hiệu năng vượt trội hoàn toàn trong tất cả các điều kiện mạng. Việc lựa chọn các giao thức phụ thuộc vào hoàn cảnh cụ thể của mạng. Mỗi một chiến lược định tuyến có những ưu điểm và nhược điểm khác nhau. Trong mạng không dây kiểu không cấu trúc, tùy theo hoàn cảnh, yêu cầu và các đặc tính của từng mạng cụ thể mà mỗi một giao thức định tuyến thể hiện các ưu, nhược điểm của mình theo các cấp độ khác nhau. Trong tương lai có thể thực hiện dánh giá hiệu năng của các giao thức định tuyến tùy biến hiện tại và các giao thức được thiết kế đặc biệt theo chuẩn IEEE 802.16 cho WiMAX di động. Hướng nghiên cứu này có thể cung cấp các thông tin về những tán thành và phản đối của các chuẩn đã được phát triển trong lĩnh vực này. Trong nghiên cứu này đã thực hiện đánh giá hiệu năng các giao thức định tuyến trong Ad-Hoc. 77 TÀI LIỆU THAM KHẢO [1]. Subir Kumar Sarkar, T G Basavaraju, C Puttamadappa, Ad Hoc Mobile Wireless Networks: Principles, Protocols, and Applications, Taylor & Francis Group, LLC, 2008. [2]. Bained Nyirenda, Jason Mwanza, Performance Evaluation of Routing Protocols in Mobile Ad hoc Networks (MANETs), Blekinge Institute of Technology, January 2009 [3]. Dmitri D. Perkins, Herman D. Hughes, and Charles B. Owen, Factors Affecting the Performance of Ad Hoc Networks, Department of Computer Science and Engineering Michigan State University, East Lansing, MI 48824- 1226. [4]. Anipakala Suresh, Bremen Institute of Technology, Performance Analysis of Ad hoc On-demand Distance Vector routing (AODV) using OPNET Simulator, 11th April 2005. [5]. RFC4728 - The Dynamic Source Routing Protocol (DSR), IETF. [6]. RFC3561 - Ad hoc On-Demand Distance Vector (AODV) Routing, IETF. [7]. RFC3626 - Optimized Link State Routing Protocol (OLSR), IETF. [8]. Temporally-Ordered Routing Algorithm (TORA) Version 1 Functional Specification, IETF. [9]. Edit by Mohammad Ilyas, florida Atlantic University, Boca Raton, Florida, The Handbook of Ad hoc Wireless Networks, CRC Press LLC, 2003. [10]. Farooq Anjum and Petros Mouchtaris, Security for Wireless Ad Hoc Networks, John Wiley and Sons, Feb 2007. [11]. Amitabh Míhra, Security and Quality of Service in Ad Hoc Wireless Networks, Cambridge Press, Mar 2008 [12]. Uyen Trang Nguyen and Xing Xiong, “Rate-adaptive Multicast in Mobile Ad hoc Networks,” IEEE International Conference on Ad hoc and Mobile Computing, Networking and Communications, WiMob, Montreal, Canada, 2005. [13]. Mohammad Naserian, Kemal E. Tepe and Mohammed Tarique, “Routing overhead analysis for reactive routing protocols in wireless ad hoc networks,” IEEE Conference on Wireless And Mobile Computing, Networking And Communications, WiMob, 2005, pp. 87 – 92. 78 [14]. Ad Hoc Networks Technologies And Protocols, Springer Science + Business Media, 2005. [15]. Nguyễn Quang Huy, D04VT2, đồ án tốt nghiệp: “Định tuyến trong mạng Mesh”. [16]. Phạm Đức Hòa, Lò Văn Duy, Nguyễn Hoàng Cương, Sand Sakda, D05VT2, chuyên đề kỹ thuật chuyển mạch: “Bảo mật định tuyến trong MANETs”. [17]. 79 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ……………………………………………… Chữ ký của giáo viên hướng dẫn

Các file đính kèm theo tài liệu này:

  • pdfĐánh giá hiệu năng một số giao thức Proactive của công nghệ mạng Ad-Hoc.pdf