của các giao thức định tuyến
Thông qua tập các cấu hình mạng mô phỏng được xây dựng ở trên, chúng tôi tiến hành mô phỏng, phân tích, khảo sát ảnh hưởng của sự chuyển động các nút đến hiệu suất của ba giao thức định tuyến điển hình trong mạng MANET là: DSDV, AODV và DSR. Các kết quả so sánh được bao gồm: kết quả về tỷ lệ phân phát gói tin thành công và thời gian phản ứng của các giao thức định tuyến (Thời gian thiết lập kết nối).
Hình 16 thể hiện tỷ lệ phân phát gói tin thành công trong mô hình Random Waypoint với 10 nguồn phát. Các giao thức cho kết quả làm việc khá tốt với tỷ lệ đạt trên 97%, tỷ lệ mất gói tin là rất ít chỉ chiếm khoảng từ 1-3%. Đi vào xem xét sâu hơn nữa chúng ta thấy ngay hoạt động tốt nhất là giao thức DSR gần như các gói tin truyền đi đều tới đích, tỷ lệ rớt gói luôn dưới 1%. Giao thức AODV thể hiện ưu điểm của mình khi tô-pô mạng cố định không có thay đổi nào, nó cho phép truyền dữ liệu khá tin cậy với tỷ lệ gói tin truyền thành công là 99,75% nhưng khi các nút mạng thay đổi tốc độ di chuyển thì hiệu quả của nó lại bị giảm đi nhiều hơn so với các giao thức còn lại. Nhìn chung cả ba giao thức hoạt động khá tốt, tỷ lệ rớt gói là rất nhỏ và chỉ bị giảm đôi chút khi các nút thay đổi tốc độ chuyển động làm cho tô-pô mạng thay đổi.
Với mô hinh Radom Walk, tỷ lệ phân phát gói tin thành công được thể hiện trong hình 18. Các giao thức cũng có tỷ lệ phân phát gói tin thành công là rất cao như trong mô hình Radom Waypoint. Hoạt động hiệu quả nhất vẫn là DSR với việc thích nghi tốt với sự thay đổi của mạng khi các nút di chuyển liên tục theo các vẫn tốc khác nhau.
Hình 19 thể hiện thời gian thiết lập kết nối trong mạng hoạt động theo mô hình Random Waypoint. Đây là khoảng thời gian được tính từ khi nút nguồn có yêu cầu truyền dữ liễu đến khi bắt đầu truyền. Thời điểm này chính là lúc nút thực hiện quá trình bắt tay ba bước thiết lập kết nối. Tùy vào từng loại giao thức và trạng thái của tô-pô mạng hiện tại mà quá trình thiết lập kết nói này có thể diễn ra thành công hoặc thất bại, lúc đó các nút nguồn sẽ phải truyền lại gói tin. Từ hình vẽ chúng ta có thể thấy ban đầu khi mạng ít thay đổi, các nút chuyển động rất chậm với tốc độ dưới 5m/s thì khoảng thời gian cần thiết để thiết lập kết nối của cả ba giao thức là như nhau. Nhưng khi các nút mạng chuyển động nhanh hơn với vận tốc từ 5m/s tới 10m/s thì lúc này có sự phân hóa rõ rệt giữa các giao thức định tuyến. Giao thức chủ ứng DSDV cần tới nhiều thời gian nhất để thiết lập kết nối, thời gian hội tụ rất chậm, có thời điểm phải mất tới 5,49s mới
cho việc kết nối và giao thức có thời gian kết nối nhanh nhất là AODV với thời gian tối đa cho việc thiết lập kết nối là 1,4s. Một điều khá đặc biệt mà đồ thị 19 cho chúng ta thấy đó là khi các nút mạng tăng vận tốc di chuyển lên trong khoảng từ 10m/s đến 15m/ s thì thời gian thiết lập kết nối của hai giao thức DSDV và DSR là giữ nguyên không không có sự tăng đột biến trừ giao thức AODV có mất thời gian kết nối lâu hơn một chút.
Hình 20 thể hiện đồ thị về thời gian thiết lập kết nối với mô hình Random Walk. Với mô hình di chuyển này các nút mạng chuyển động liên tục không có quãng thời gian nghỉ với việc chọn ngẫu nhiên hướng đi và tốc độ chuyển động. Trái với mô hình chuyển động Radom Waypoint, trong mô hình này giao thức DSDV lại thể hiện được ưu điểm vượt trội của mình, cho phép kết nối nhanh chóng với thời gian luôn dưới 1s cho dù tô-pô mạng có thay đổi nhanh hơn đi chăng nữa, giao thức vẫn cho khả năng kết nối nhanh chóng. Khi các nút mạng chuyển động nhanh hơn dẫn tới tô-pô mạng cũng thay đổi một cách liên tục thì hai giao thức còn lại: DSR và AODV phải cần tới một khoảng thời gian từ 3 đến 5s cho việc thiết lập kết nối. Các nút mạng chuyển động càng nhanh thì càng cần nhiều thời gian để thiết lập kết nối hơn do tô-pô mạng thay đổi liên tục, các nút phải mất thêm một khoảng thời gian cần thiết để học hỏi về mạng mới.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Các kết quả của khóa luận
Khóa luận đã trình bày các kết quả khảo sát đánh giá về ảnh hưởng của sự chuyển động các nút mạng đến hiệu suất của một số giao thức định tuyến trong MANET. Khóa luận đã nghiên cứu một cách chi tiết về môi trường mạng, các giao thức định tuyến, các mô hình chuyển động đặc trưng và quan trọng hơn nữa chúng tôi đã thực nghiệm được một số thí nghiệm bằng mộ phỏng nhằm tìm ra cơ sở khách quan, thực tế, kết hợp với cơ sở lý thuyết để tìm ra các đặc điểm khác nhau của từng giao thức chịu ảnh hưởng thế nào khi các nút mạng di chuyển với tốc độ và hướng đi khác nhau.
Cụ thể chúng tôi đã xem xét chi tiết hoạt động của ba giao thức định tuyến điển hình là: DSDV, AODV và DSR. Các giao thức này có các giải thuật định tuyến khác nhau: DSDV là giao thức chủ ứng dựa trên thuật toán vector khoảng cách; AODV là giao thức phản ứng dựa trên bảng vector khoảng cách; DSR là giao thức phản ứng dựa trên giải thuật chuyển tiếp đa điểm (Multi-Point Relay MPR). Kết quả mô phỏng cho thấy các kết luận như sau:
- DSDV cho kết quả làm việc tốt khi mạng có tốc độ thay đổi cấu hình thấp. Tuy nhiên giao thức DSDV hội tụ chậm và hiệu suất giảm khi mạng có nhiều thay đổi.
- AODV cho kết quả hoạt động tốt trong trường hợp mạng có các thay đổi cấu hình và tải mạng khác nhau.
- DSR có khả năng phân phát gói tin tốt song thời gian thiết lập kết nối vẫn còn chậm nhất là khi các nút di chuyển nhanh, tô-pô mạng thay đổi liên tục.
2. Hướng phát triển của đề tài
Do hạn chế về mặt thời gian nên khóa luận chỉ tập trung nghiên cứu kỹ ba giao thức định tuyến điển hình: DSDV, AODV và DSR. Trong thời gian tới chúng tôi sẽ tiếp tục nghiên cứu sâu hơn về cả hai giao thức còn lại là OLSR và TORA. Thêm vào đó vẫn còn một số vấn đề khác của các giao thức cần được xem xét như:
• Chất lượng dịch vụ
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Nguyễn Hoàng Cẩm, Trịnh Quang. Các giải pháp định tuyến tối ưu trong mạng di động không dây tuỳ biến. Tạp chí Bưu Chính Viễn Thông. Tháng 3 năm 2006
[2] Hoàng Trọng Minh. Định tuyến trong mạng kết nối hình lưới WLAN. Tạp chí Bưu Chính Viễn Thông. Tháng 10 năm 2008.
[3] Nguyễn Thị Minh Nguyệt. Đánh giá hiệu suất bằng mô phỏng các thuật toán định tuyến trong mạng đặc biệt di động MANET. Luận văn cao học. Hà Nội, 2005.
[4] Hà Minh Toản. Nguyên cứu một số giao thức truy cập môi trường truyền trong mạng LAN 802.11. Khóa luận tốt nghiệp. Hà Nội, 2005.
[5] Nguyễn Đình Việt. Đánh giá hiệu năng mạng máy tính. Hà Nội, 2008.
Tiếng Anh
[1] Eitan Altman, Tania Jimenez. NS Simulator for beginners. Univ. de Los Andes, Mérida, Venezuela and ESSI, Sophia-Antipolis, France. December 4, 2003.
[2] Humayun Bakht. The future of mobile ad-hoc networks. Computing Unplugged Magazine. October 2010.
[3] Jae Chung and Mark Claypool. NS by Example. WPI worcester polytechnic institute Computer Science.
[4] Kevin Fall, Kannan Varadhan. The NS manual. VINT Project. April 14, 2002. [5] Marc Greis.Tutorial for the network simulator “NS”. VINT Group
http://www.isi.edu/nsnam/ns/tutorial/
[6] Bernd Gloss, Michael Scharf, Daniel Neubauer. A more realistic random direction mobility model. University of Stuttgart. October 2005.
[7] David B. Johnson, David A. Maltz, Yih-Chun Hu. (2003), “The Dynamic Source Routing Protocol for Mobile Ad Hoc Networks (DSR)”, Published by IETF as RFC,
[8] T. Clausen, Ed., P. Jacquet, Ed. (2003), “Optimized Link State Routing Protocol (OLSR)”, RFC 3626, IETF Network Working Group
[9] Todd Lammle. CCNA study guide 4th edition. SYBEX 2004.
[10] The SECAN-Lab of the University of Luxembourg. http://wiki.uni.lu/secan-lab/Ad- Hoc+Protocols.html
[11] V. Park and M. Corson (2001), “Temporally-Ordered Routing Algorithm (TORA)”, IETF Internet Draft, work in progress, 20 July 2001
[12] C. Perkins, E. Belding-Royer, S. Das. (2003), Ad hoc On-Demand Distance Vector (AODV) Routing, IETF Mobile Ad Hoc Network Working Group, Internet Draft, work in progress, 19 October 2003.
[13] Charles E. Perkins, Pravin Bhagwat. (1994), “Highly dynamic Destination- Sequenced Distance Vector routing (DSDV) for mobile computers”, ACM SIGCOMM Computer Comm. Rev., 4(24), pp. 234-244, 1994.
[14] Jochen H. Schiller. Mobile Communications, Addison-Wesley, 2nd edition, 2003
[15] Karthik Sadasivam. Tutorial for Simulation-based Performance Analysis of MANET Routing Protocols in ns-2. Page 4 – 9
[16] History of wireless. http://wirelesshistory.org
[17] Thomas Williams & Colin Keylley. Gnuplot 4.4 - An Interactive Plotting Program. March 2010.
PHỤ LỤC
1. Bảng các trường phụ thêm vào trong cấu trúc tệp vết phụ thuộc vào kiểu gói tin
Event Type Value Ý Nghĩa
ARP Trace
--- [%s %d/%d %d/%d]
string Request or Reply Gói tin yêu cầu hoặc Trả lời int Source MAC Address Địa chỉ MAC nguồn
int Source Address Địa chỉ nguồn int Destination MAC Address Địa chỉ MAC đích int Destination Address Địa chỉ đích
DSR Trace
%d [%d %d] [%d %d %d %d->%d] [%d %d %d %d->%d]
int Number Of Nodes Traversed Số nút đã đi qua. int Routing Request Flag Cờ yêu cầu định tuyến int Route Request Sequence
Number Số thứ tự yêu cầu tuyến đường int Routing Reply Flag Cờ trả lời định tuyến
int Route Request Sequence
Number Số thứ tự yêu cầu tuyến đường int Reply Length Chiều dài gói tin trả lời
int Source Of Source Routing Định tuyến nguồn của nút nguồn int Destination Of Source Routing Định tuyến nguồn của nút đích int Error Report Flag (?) Cờ báo lỗi
int Number Of Errors Số lượng lỗi int Report To Whom Báo cáo tới nút nào int Link Error From Liên kết lỗi từ đâu tới int Link Error To Liên kết lỗi đi tới đâu
AODV Trace
[0x%x %d %d [%d %d] [%d %d]] (REQUEST)
hexadecimal Type Kiểu
int Hop Count Số Hop tính được int Broadcast ID ID quảng bá
int Destination Đích
int Destination Sequence
Number Số thứ tự nút đích
int Source Nguồn
int Source Sequence Number Số thứ tự nút nguồn [0x%x %d [%d %d] %f] (%s)
hexadecimal Type Kiểu
int Hop Count Số Hop tính được
int Destination Đích
int Destination Sequence Number Số thứ tự nút đích double Lifetime Thời gian sống
string Operation (REPLY, ERROR, HELLO)
Hoạt động: Trả lời, Lỗi hay gói tin Hello
TORA Trace
[0x%x %d] (QUERY)
hexadecimal Type Kiểu
int Destination Đích
0x%x %d (%f %d %d %d %d) (UPDATE)
hexadecimal Type Kiểu
int Destination Đích double Tau int Oid int R int Delta int ID Chỉ số [0x%x %d %f %d] (CLEAR)
hexadecimal Type Kiểu
int Destination Đích double Tau int Oid IMEP Trace [%c %c %c 0x%04x]
char Acknowledgment Flag Cờ biên nhận
RCA Trace (from MIT Leach code) --- [%c %d %d %d]
char Operation (A, R, D) int RCA Source
int RCA Link Destination int RCA MAC Destination
2. Mô phỏng mạng MANET
# MANET_Simulation. #
# Define options_
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
set val(ifqlen) 50 set val(seed) 0.0 set val(nn) 50 set val(rp) DSDV set val(x) 1500 set val(y) 1500 set val(cp) "…/tcp-50-2-10"
set val(sc) "…/scenario-50-30-10-600-1500-1500"
set val(stop) 600 ;# time of simulation end
set ns_ [new Simulator]
set namtrace [open MANET.nam w]
set tracefd [open MANET.tr w] $ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y) #Set up topography object
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y) #
# Create God #
#Configure the 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) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace ON
for {set i 0} {$i < $val(nn) } { incr i } { set node_($i) [$ns_ node]
$node_($i) random-motion 0 }
#
# Define node movement model #
puts "Loading connection pattern..." source $val(cp)
#
# Define traffic model #
puts "Loading scenario file..." source $val(sc)
# Define node initial position in nam for {set i 0} {$i < $val(nn)} {incr i} {
#30 defines the node size for nam $ns_ initial_node_pos $node_($i) 30 }
# Telling nodes when the simulation ends for {set i 0} {$i < $val(nn)} {incr i} {
$ns_ at $val(stop) "$node_($i) reset"; }
proc stop {} {
global ns_ tracefd namtrace $ns_ flush-trace
close $tracefd close $namtrace }
puts "Starting Simulation..." $ns_ run
3. Tỷ lệ phân phát gói tin thành công
#!/usr/bin/perl #
# Phạm Văn Tứ - K51MMT-UET-VNU. # GVHD: PGS.TS. Nguyễn Đình Việt. # GVĐHD: Ths. Đoàn Minh Phương. #
# Tỷ lệ phân phát gói tin thành công (Hiệu suất đường truyền) #--->
# Là tỷ lệ giữa số các gói tin được phân phát thành công tới đích # so với số các gói tin tạo ra bởi nguồn phát.
#
# Tư tưởng giải thuật:
# - Ta dựa vào dấu hiệu trường: Trace level = AGT. Chỉ những gói tin gửi nhận của nút nguồn hoặc nút đích
# thì trường Trace level mới được gán nhãn AGT (gói tin tầng giao vận).Các nút trung gian khác thực hiện
# việc định tuyến, chuyển tiếp gói tin, hoạt động tại tầng Network
nên Trace Level = RTR. #
# - Do đó ta chỉ cần tính:
# + Tổng số gói tin các nút nguồn đã gửi (src_sent)
# + Tổng số gói tin các nút đích nhận được (dst_receive)
# ==> Tỷ lệ phân phát gói tin thành công =
dst_receive*100/src_sent. #
# type: perl Pkt_success_rate.pl <trace file>
#==================================================== $infile=$ARGV[0];
$src_sent = 0; #Tổng số gói tin các nút nguồn gửi đi
$dst_receive = 0; #Tổng số gói tin các nút đích nhận được
$productivity = 0; #Hiệu suất đường truyền.
open (DATA, "<$infile") || die "Loi mo file: $infile $!"; while (<DATA>){
@x = split(' ');
# Nút nguồn gửi gói tin
if (($x[0] eq 's') && ($x[3] eq 'AGT') && ($x[6] eq 'tcp')) { $src_sent++;
}
print STDOUT "Tỷ lệ phân phát gói tin thành công = $productivity % \n";
close DATA; exit(0);
4. Thời gian thiết lập kết nối
#!/usr/bin/perl #
# Pham Van Tu - K51MMT - UET - VNU # GVHD: PGS.TS. Nguyen Dinh Viet #
# Tinh thoi gian thiet lap ket noi:
# Tinh tu khi nut nguon co yeu cau ket noi den khi no nhan duoc goi tin bien nhan (ACK)
#
# Type: perl Connection_time.pl <trace file> <Source ID> <Destination ID>
#
$infile=$ARGV[0]; $src=$ARGV[1]; $dst=$ARGV[2];
$start_time = 0; #Thoi diem nut nguon bat dau co yeu cau truyen
$end_time = 0; #Thoi diem nut nguon nhan duoc Ack
$connection_time = 0; #Thoi gian ket noi
$src_ = 0; #Chi so nut nguon.
$source = 0; #Dia chi nguon
$destination = 0; #Dia chi dich
open (DATA, "<$infile") || die "Loi mo file: $infile $!"; while (<DATA>){
@x = split(' ');
# Lay thong tin tu file tep vet $src_ = $x[2];
$source = $x[13]; $destination = $x[14];
# Xu ly xau(String) de lay ra truong so nham phuc vu cho viec so sanh.
# Loai bo 2 dau gach duoi "_" trong truong chi so nut nguon (_node-ID_)
$src_ = substr($src_, 1); $src_ = substr($src_, 0, -1);
# Nut nguon co nhu cau ket noi
if ((($x[0] eq "s") || ($x[0] eq "+")) && ($src_ == $src) && ($x[3] eq 'AGT') && ($x[6] eq 'tcp') && ($source == $src) &&
($destination == $dst) && ($x[17] eq '[0')){ $start_time = $x[1];
}
# Nut nguon nhan duoc goi tin bien nhan (ACK)
if (($x[0] eq 'r') && ($src_ == $src) && ($x[3] eq 'AGT')&& ($x[6] eq 'ack') && ($source == $dst) && ($destination == $src) && ($x[17] eq '[0')){
$end_time = $x[1];
$connection_time = $end_time - $start_time; last;
} }
print STDOUT "\nThoi gian thiet lap ket noi tu nut $src toi nut $dst = $connection_time\n\n";
close DATA; exit(0);