7. Bố cục của luận văn
2.4.9. So sánh các giao thức định tuyến
Hình 2.17. So sánh các giao thức định tuyến Giao thức Thông tin lƣu trữ Thời gian cập
nhật
Thông tin cập nhật Đối tƣợng cập nhật
AODV Ch ng tiếp theo tới mỗi đích có
giao tiếp
Cơ chế duy trì đường theo sự
kiện
Thông điệp lỗi đường (route error)
Nút nguồn
DSDV Toàn bộ cấu hình mạng
Ðịnh kỳ Thông điệp : thông tin liên kết cục bộ và hàng xóm (MPR) Thông điệp TC : thông tin về các MPR Tất cả cả nút trong mạng
Trong đó:
Thông tin lưu trữ: Thông tin được lưu tại mỗi nút
Thời gian cập nhật : Áp dụng trong các giao thức định tuyến chủ ứng. Các giá trị so sánh là : định kỳ, theo sự kiện và lai ( kết hợp cả hai cơ chế). Ðối với các giao thức phản ứng, khi liên kết bị hỏng, cơ chế duy trì đường thực hiện, việc xây dựng lại đường được gọi là hướng sự kiện.
Thông tin cập nhật: Thông tin về trạng thái liên kết. Ðối với các giao thức phản ứng, cơ chế duy trì đường theo sự kiện, thông tin cập nhật là các thông điệp ROUTE- ERROR.
Ðối tượng cập nhật: là các hàng xóm ho c các nút nguồn bị ảnh hưởng.
Bảng 2.2. So sánh các giao thức định tuyến Giao thức Phƣơng pháp cập nhật Tính toán đƣờng Số đƣờng Duy trì đƣờng AODV Unicast Phản ứng theo yêu cầu, quảng bá
thông điệp truy vấn
Một đường ( đường đầu tiên nhận được bởi thông điệp trả lời)
Xóa đường, thông báo đến tất cả các nút nguồn bị ảnh
hưởng DSDV Quảng bá Trước, thực hiện
bởi nút
Một đường, đường đi
ngắn nhất Gửi các cập nhật Trong đó: Phương pháp cập nhật: quảng bá ho c unicast.
Tính toán đường: Khi nào đường được tính toán. Có ba trường hợp: tính toán trước, theo yêu cầu và lai giữa hai cơ chế. Ðối với các giao thức định tuyến trước, việc tính toán có thể thực hiện bởi nút ho c hợp tác, phân tán giữa các nút. Tuy nhiên, trong các giao thức định tuyến phản ứng, việc tính toán đường thông thường là việc gửi quảng bá thông điệp truy vấn đường được truyền qua toàn mạng để phát hiện đường. Số đường: Số đường tìm thấy được lưu trữ.
Duy trì đường: Việc có áp dụng hay không cơ chế duy trì đường trong các giao thức.
2.5. Kết luận chƣơng 2
Việc định tuyến trong hệ thống mạng MANET yêu cầu thời gian định tuyến hiệu quả và tiết kiệm tài nguyên. Một cách tiếp cận để giảm lưu lượng trong quá trình định tuyến là chia mạng thành các cụm (v ng) nhỏ. Trong chương này, chúng tôi đã phân tích cơ chế hoạt động của các giao thức định tuyến ZRP DSDV, , AODV, ZRP, thuộc giao thức định tuyến lai ghép trong mạng MANET, đồng thời đã làm rõ được ưu nhược điểm của chúng và làm cơ sở lý thuyết cho việc mô phỏng trong chương3
CHƢƠNG 3
ĐÁNH GIÁ HIỆU NĂNG MỘT SỐ GIAO THỨC ĐỊNH TUYẾN TRÊN MẠNG MANET
Để đánh giá hiệu suất hoạt động của các giao thức thông thường người ta có thể dùng các phương pháp như: phương pháp giải tích, phương pháp thử nghiệm ho c phương pháp mô phỏng. Trong luận văn này, chúng tôi chọn phương pháp mô phỏng để đánh giá hiệu năng hoạt động của giao thức định tuyến lai ghép dựa trên phần mềm mô phỏng mạng NS2.
3.1. Giới thiệu môi trƣờng mô ph ng NS
3.1.1. Tổng quan về NS2
NS (Network Simulation) là phần mềm mô phỏng mạng điều khiển sự kiện riêng lẻ hướng đối tượng, được phát triển tại UC Berkely, viết b ng ngôn ngữ C++ và Otcl [17],[18]. NS rất hữu ích cho việc mô phỏng các hệ thống mạng hữu tuyến và vô tuyến, NS có các đ c điểm cơ bản sau:
- Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại. - Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng.
- Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể thực thi được trong thực tế.
- Khả năng mô phỏng nhiều loại mạng khác nhau. [1]
Mục đích của NS2 là tạo ra một môi trường giả lập cho việc nghiên cứu, kiểm tra, thiết kế các giao thức, các kiến trúc mới so sánh các giao thức và tạo ra các mô hình mạng phức tạp. Phiên bản thứ nhất của NS được phát triển vào năm 1995 và phiên bản thứ hai ra đời vào năm 1996. NS2 là phần mềm mã nguồn mở có thể chạy được trên nền của Linux và Window.
NS thực thi các giao thức mạng như: Giao thức điều khiển truyền tải (TCP) và Giao thức gói người dùng (UDP); các dịch vụ nguồn lưu lượng như Giao thức truyền tập tin (FTP), Telnet, Web, Tốc độ bit cố định (CBR) và Tốc độ bit thay đổi (VBR); các kỹ thuật quản lý hàng đợi như Vào trước Ra trước (Drop Tail), Dò sớm ngẫu nhiễn (RED) và CBQ; các thuật toán định tuyến như Dijkstra… NS cũng thực thi multicasting và giao thức lớp điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN. [1]
3.1.2. Kiến trúc của NS2
NS2 là một công cụ giả lập hướng đối tượng được viết b ng ngôn ngữ C++ trong phần nhân và ngôn ngữ thông dịch Otcl ở phần giao tiếp.[1]
- Module nhân được gọi là Compiler Hierarchy. - Module giao tiếp được gọi là Interpreted Hierarchy.
- Module liên kết là module có tác dụng như một lớp keo dùng để gắn kết các lớp, các đối tượng, các biến tương ứng trong hai module nhân và module giao tiếp với nhau.
NS và Bộ biên dịch Tcl mở rộng hướng đối tượng; bao gồm các đối tượng Bộ lập lịch Sự kiện, các đối tượng Thành phần Mạng và các mô đun Trợ giúp Thiết lập Mạng.
Hình 3.1. Tổng quan về NS dƣới góc độ ngƣời dùng
- OTcl Script: Kịch bản Otcl.
- Simulation Program: Chương trình Mô phòng. - Otcl: Bộ biên dịch Tcl mở rộng hướng đối tượng. - NS Simulation Library: Thư viện Mô phỏng NS.
- Event Scheduler Objects: Các đối tượng Bộ lập lịch Sự kiện. - Network Component Objects: Các đối tượng Thành phần Mạng. - Network Setup Helping Modules: Các mô đun Trợ giúp Thiết lập Mạng. - Plumbling Modules: Các mô đun Plumbling.
- Simulation Results: Các kết quả Mô phỏng. - Analysis: Phân tích.
- NAM (Network Animator): Minh họa Mạng NAM.
Để sử dụng NS2, user lập trình b ng ngôn ngữ kịch bản OTcl. User có thể thêm các mã nguồn Otcl vào NS2 b ng cách viết các lớp đối tượng mới trong OTcl. Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc. Kịch bản OTcl có thể thực hiện những việc sau:
- Thiết lập Mô hình mạng dùng các đối tượng Thành phần Mạng.
- Báo cho nguồn traffic khi nào bắt đầu truyền và ngưng truyền packet trong Bộ lập lịch Sự kiện.
Thuật ngữ plumbing được dùng để chỉ việc thiết lập mạng, vì thiết lập một mạng nghĩa là xây dựng các đường dữ liệu giữa các đối tượng mạng b ng cách thiết lập con trỏ “neighbour” cho một đối tượng để chỉ đến địa chỉ của đối tượng tương ứng. Module plumbing OTcl trong thực tế thực hiện việc trên rất đơn giản. Plumbing làm nên sức mạnh của NS.
Thành phần lớn khác của NS bên cạnh các đối tượng Thành phần Mạng là Bộ lập lịch Sự kiện. Bộ lập lịch Sự kiện trong NS2 thực hiện những việc sau:
- Tổ chức Bộ định thời Mô phỏng.
- Huỷ các sự kiện trong hàng đợi sự kiện. - Gọi các Thành phần Mạng trong mô phỏng.
Phụ thuộc vào mục đích của user đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể được lưu trữ như file trace. Định dạng file trace sẽ được tải vào trong các ứng dụng khác để thực hiện phân tích:
- File nam trace (file.nam) được dùng cho công cụ Minh họa mạng NAM.
- File Trace (file.tr) được dùng cho công cụ Lần vết và Giám sát Mô phỏng XGRAPH hay TRACEGRAPH.
- NAM Visual Simulation: Mô phỏng ảo NAM.
- Tracing and Monitoring Simulation: Mô phỏng Lần vết và Giám sát.
3.2. Mô ph ng mạng không dây trong môi trƣờng mạng NS
Thực chất mô hình wireless bao gồm MobileNode trong lõi (core) cùng với các đ c tính hỗ trợ thêm vào cho phép các trình mô phỏng của mạng multihop với thủ tục Ad-Hoc, mạng LAN wireless… Đối tượng MobileNode là một đối tượng tách biệt. Lớp MobileNode trong C++ xuất phát từ lớp cha là lớp Node. Vì vậy, một MobileNode là một đối tượng Node cơ sở cộng thêm các chức năng của wireless, có khả năng di chuyển bên trong một topo và nhận ho c truyền tín hiệu thông qua một kênh wireless. [1]
3.2.1. Tạo MobileNode trong NS
Cấu hình cho nút chủ yếu tập trung vào Wireless. Bao gồm các thông số sau: loại cấu trúc địa chỉ sử dụng là địa chỉ đẳng cấp; định nghĩa các thành phần trong mạng MobileNode: địa chỉ Mac, loại antenna, sóng truyền, lựa chọn giao thức định tuyến, định nghĩa mô hình năng lượng. Mã cấu hình MobileNode được viết như sau: [1]
$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) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON\
3.2.2. Tạo sự hoạt động cho nút
MobileNode được hoạt động trên dạng flat (phẳng) với tọa độ X, Y, Z (Z=0). Có hai phương thức đưa ra sự di chuyển trong các MobileNode. [1]
- Phương thức 1: vị trí bắt đầu của node và các đích sau này của nó có thể được thiết lập một cách rõ ràng, có thể được thiết lập b ng cách sử dụng API sau:
$node set X_ <x1> $node set Y_ <y1> $node set Z_ <z1>
$ns at $time $node setdest <x2> <y2> <speed>
Tại $time sec, node sẽ bắt đầu hoạt động (moving) từ vị trí bắt đầu của nó là (x1,y1) chuyển tiếp sang đích (x2,y2) với tốc độ (speed) xác định. Trong phương thức này, node-movement-updates được khởi tạo (triggered) bất cứ vị trí nào của node tại thời gian được yêu cầu.
- Phương thức 2: tận dụng quá trình họat động ngẫu nhiên của node. Mã API thường được sử dụng là $mobilenode start để khởi động mobilenode với một vị trí ngẫu nhiên và thường cập nhật để thay đổi hướng và tốc độ của node. Giá trị đích và tốc độ được tạo ra một cách ngẫu nhiên.
Dạng topo không cấu trúc (flat) thông thường được tạo ra dựa vào đ c tả chiều dài và chiều rộng của topo cơ sở. Mã API được viết như sau:
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
3.2.3. Các bước viết mã tcl để thực thi mô phỏng mạng wireless:
- Bƣớc 1: Thiết lập mô phỏng và xác định các h ng số. [1]
Bước đầu tiên của mô phỏng là định nghĩa các tham số môi trường vật lý không dây và khởi tạo mô phỏng
# Định nghĩa lớp vật lý
set val(chan) Channel/WirelessChannel set val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy
set val(mac) Mac/802_11
set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
set val(ant) Antenna/OmniAntenna
# Các tham số kịch bản
set val(x) 2000;# X dimension of the topography set val(y) 2000;# Y dimension of the topography set val(ifqlen) 100;# max packet in queue
set val(seed) 0.0;# random seed set val(adhocRouting) [routing protocol]
set val(nn) [no. of nodes];# number of nodes set val(cp) [traffic pattern file]
set val(sc) [mobility scenario file]
set val(stop) [simulation duration];# simulation time - Bƣớc 2: Tạo một thể hiện mô phỏng
set ns_ [new Simulator]
- Bƣớc 3: Tạo đối tượng kiến trúc mạng lưu vết của tất cả các nút trong phạm vi set topo [new Topography]
- Bƣớc 4: Tạo các file lưu vết
set tracefd [open output trace file name w] $ns_ use-newtrace
set namtrace [open nam trace file name w] $ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y) - Bƣớc 5: Định nghĩa kiến trúc mạng
$topo load_flatgrid $val(x) $val(y) - Bƣớc 6: Tạo đối tượng GOD
- Bƣớc 7: Cấu hình nút.
$ns_ node-config -adhocRouting $val(adhocRouting) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON
M c định, một nút được xác định là nút unicast. Nếu có một giao thức multicast được yêu cầu, thì phải khai báo cụ thể như sau:
set ns [new Simulator -multicast on] - Bƣớc 8:Tạo các nút di chuyển ngẫu nhiên.
for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;# disable random motion }
- Bƣớc 8:Thiết lập vị trí ban đầu cho nút for {set i 0} {$i < $val(nn) } {incr i} { $node_($i) set X_ [x1]
$node_($i) set Y_ [y1] $node_($i) set Z_ [z1] }
- Bƣớc 9:Thiết lập nút di chuyển
$ns_ at 0.1 “$node_(1) setdest 25.0 20.0 20.0”
- Bƣớc 10: Thiết lập luồng truyền tải giữa các nút (đoạn mã sau thiết lập luồng cho nút 0 và nút i).
for {set i 0} {$i < $val(nn)} {incr i} { set sink_($i) [new Agent/LossMonitor] $ns attach-agent $n_($i) $sink_($i) set tcp_($i) [new Agent/TCP]
$ns attach-agent $n_(0) $tcp_($i) }
#Thủ tục thiết lập luồng
proc attach-CBR-traffic { node sink size interval } { set ns [Simulator instance]
set cbr [new Agent/CBR] $ns attach-agent $node $cbr $cbr set packetSize_ $size $cbr set interval_ $interval
$ns connect $cbr $sink return $cbr }
#Thiết lập luồng cho nút 0 và nút 1
set cbr0 [attach-CBR-traffic $n_(0) $sink_(1) 512 0.25] - Bƣớc 11:Kết thúc và thực thi mô phỏng.
# Xác định thời điểm kết thúc mô phỏng của các nút for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ at $val(stop).0 "$node_($i) reset"; }
$ns_ at $val(stop).0002 "puts \"NS EXITING...\" ; $ns_halt"
# Đưa các thông tin mô phỏng ban đầu vào các file lưu vết
puts $tracefd "M 0.0 nn $val(nn) x $val(x) y $val(y) rp $val(adhocRouting)"
puts $tracefd "M 0.0 sc $val(sc) cp $val(cp) seed $val(seed)"
puts $tracefd "M 0.0 prop $val(prop) ant $val(ant)" - Bƣớc 12:Lệnh cuối c ng bắt đầu mô phỏng
puts "Starting Simulation..." $ns_ run
3.3. Mô ph ng giao thức định tuyến ZRP
3.3.1. Cài đặt module mô phỏng ZRP
Bản NS2 khi cài đ t, m c định sẽ không có module mô phỏng ZRP. Để có thể thực hiện việc mô phỏng giao thức ZRP, ta cần phải cài đ t bổ sung module ZRP [2]. Việc tiến hành cài đ t module ZRP được thực hiện qua các bước sau:
+ Bước 1: Cài đ t NS2, trong trường hợp này tôi cài đ t NS2 phiên bản ns2- allinone2.33.
+ Bước 2: Chép các file cài đ t module ZRP vào thư mục home (thư mục cài đ t NS2). Các file cài đ t bao gồm:
- ns-allinone-2.33_zrp.tar.gz: chứa mã nguồn của module ZRP.
- PatchZRP.patch: chứa các thay đổi cần thiết trong các file NS để module ZRP có thể hoạt động được.
- patchmyZRP.sh: file kịch bản được chạy từ dòng lệnh. + Bước 3: Thực thi patchmyZRP.sh từ dòng lệnh.
3.3.2. Xây dựng kịch bản mô phỏng
Việc thiết kế và thử nghiệm cho các giao thức dựa trên phần mềm mô phỏng NS2. Mô hình thiết kế cho các nút mạng di chuyển ngẫu nhiên trong khu vực bán kính 5000m. Các gói tin phát dựa vào dịch vụ CBR (constant bit race), với kích thước gói tin 512 byte/1 gói tin, chu kỳ gửi tin 4 gói/1 giây. Hàng đợi kiểu FIFO, các gói tin định tuyến sẽ có độ ưu tiên cao hơn các gói tin dữ liệu.
Các yếu tố chính ảnh hưởng đến hiệu năng của giao thức ZRP là bán kính vùng định tuyến p, số lượng nút N và tốc độ di chuyển v của các nút. Trong đó, bán kính vùng định tuyến p có vai trò quyết định đến kết quả hoạt động của giao thức. Đối với mỗi cấu hình mạng nhất định sẽ xác định một bán kính p tối ưu. Mỗi kịch bản mô phỏng sẽ được đ c trưng bởi: số lượng nút N, vận tốc di chuyển của các
nút v và bán kính vùng định tuyến p.
Từ những kết quả mô phỏng thu được, tôi tiến hành so sánh với kết quả mô phỏng CBRP trong [7] và đưa ra những nhận xét đánh giá hiệu năng của giao thức.
3.4. Phân tích kết quả mô ph ng
Để đánh giá hiệu năng hoạt động của giao thức, tôi sử dụng phần mềm Tracegraph 2.02 để phân tích kết quả mô phỏng dựa trên tỷ lệ gói tin gửi thành công và độ trễ trung bình.
3.4.1. Đánh giá hiệu năng của giao thức định tuyến ZRP
Các yếu tố chính ảnh hưởng đến hiệu năng của giao thức ZRP là bán kính vùng định tuyến p, số lượng nút N và tốc độ di chuyển v của nút mạng.
Sự tác động của số lƣợng nút mạng N, bán kính vùng định tuyến p đến hiệu năng hoạt động của giao thức ZRP.