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
79 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3718 | Lượt tải: 1
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:
- Đánh giá hiệu năng một số giao thức Proactive của công nghệ mạng Ad-Hoc.pdf