Hướng nghiên cứu

Một phần của tài liệu Đánh giá ảnh hưởng của sự di động của nút mạng đến hiệu quả của các thuật toán định tuyến trong mạng MANET (Trang 82)

Với những kết quả nghiên cứu mà luận văn đã đạt được, ta có được cái nhìn khái quát về mối quan hệ giữa sự linh động của các nút với tính hiệu quả của các giao thức định tuyến trong mạng AD HOC. Tuy nhiên, còn rất nhiều các vấn đề khác của các giao thức cần được xem xét như sau:

 Đánh giá ảnh hưởng của sự di động của nút mạng đến hiệu quả của những giao thức khác: TORA, ZRP

 Định tuyến multicast,…

 Nghiên cứu, xây dựng và triển khai các vấn đề về an ninh cho mạng vô tuyến Ad hoc.

 Vấn đề giảm phụ tải truyền thông trong mạng MANET.

 Các yêu cầu hiệu suất liên quan tới các ứng dụng cụ thể như vấn đề đảm bảo chất lượng dịch vụ (QoS),…

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Nguyễn Đình Việt (2008), Bài giảng đánh giá hiệu năng mạng máy tính, Trường Đại học Công nghệ - Đại học quốc gia Hà Nội.

Tiếng Anh

2. Andrea Goldsmith (2005), Wireless Communications, Cambridge University Press. 3. Eitan Altman, Tania Jiménez (2003), NS Simulator for beginners,

4. Stefano Basagni, Marco Conti, Silvia Giordano and Ivan Stojmenovic (2004),

Mobile AdHoc Networking, A John Wiley & Sons., Publication.

5. Torbjörn Grape (2003), Wireless LANs Real-Time Traffic, Master’s Thesis, Linköping University, Sweden.

6. Yasser Kamal Hassan, Mohamed Hashim Abd El-Aziz and Ahmed Safwat Abd El- Radi (2010), Performance Evaluation of Mobility Speed over MANET Routing Protocols, International Journal of Network Security.

7. P. Nicopolitidis, M.S.Obaidat, G.I.Papadimitriou, A.S.Pomportsis (2003), Wireless networks, John Wiley & Son Ltd.

8. Timo Ralli (2006), National strategies for public WLAN roaming, Master’s Thesis, Technology Helsinki.

9. Mohd Izuan Mohd Saad, Zuriati Ahmad Zukarnain (2009), Performance Analysis of Random-Based Mobility Models in MANET Routing Protocol, European Journal of Scientific Research.

10.Subir Kumar Sarkar, T G Basavaraju, C Puttamadappa, Ad Hoc Mobile Wireless Networks, Auerbach Publications.

11.Yinfei Pan, Design Routing Protocol Performance Comparison in NS2: AODV comparing to DSR as Example

12.VINT Project, UC Berkely, LBL, USC/ISI, and Xerox PARC. (2005), The ns Manual (formerly ns Notes and Documentation)

13.http://www.eetimes.com 14.http://www.flickr.com 15.http://www.isi.edu/nsnam/ns/tutorial/ 16.http://en.wikipedia.org/ 17.http://t16web.lanl.gov/Kawano/gnuplot/index-e.html 18.http://4ellene.net/tt/1077 19.http://mailman.isi.edu/pipermail/ns-users/2007-August/060797.html 20.http://toilers.mines.edu/Public/Code/Nsinspect.html 21.http://masimum.inf.um.es/?Software:UM-OLSR:Installation 22.http://users.crhc.illinois.edu/thkim/ece439/ns2_assignment2.htm

PHỤ LỤC

dsdv-cbr10-rwp0-speed10.tcl

# ============================================================ # 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(x) 1500 ;# X dimension of the topography set val(y) 900 ;# Y dimension of the topography set val(ifqlen) 50 ;# max packet in ifq (adsbygoogle = window.adsbygoogle || []).push({});

set val(seed) 1.0 set val(adhocRouting) DSDV

set val(nn) 50 ;# how many nodes are simulated set val(cp) "/home/phd1983/ns-2.34/protocols/cbr/cbr-50-10-4"

set val(sc) "/home/phd1983/ns-2.34/protocols/scen/rwp/rwp-1500-900-50-0-10-0" set val(stop) 900.0 ;# simulation time

# ============================================================ # Main Program

# ============================================================

#

# Initialize Global Variables #

# create simulator instance set ns_ [new Simulator]

# setup topography object set topo [new Topography]

# create trace object for ns and nam

set tracefd [open dsdv-cbr10-rwp0-speed10-out.tr w] set namtrace [open dsdv-cbr10-rwp0-speed10-out.nam w]

$ns_ trace-all $tracefd

$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)

# define topology

$topo load_flatgrid $val(x) $val(y)

#

# Create God #

set god_ [create-god $val(nn)]

#

# define how node should be created #

#global node setting

$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 \ -movementTrace ON \ -macTrace OFF #

# Create the specified number of nodes [$val(nn)] and "attach" them to the channel. #

for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node]

$node_($i) random-motion 0 ; # disable random motion }

#

# Define node movement model #

puts "Loading connection pattern..." source $val(cp)

#

# Define traffic model # (adsbygoogle = window.adsbygoogle || []).push({});

puts "Loading scenario file..." source $val(sc)

# Define node initial position in nam for {set i 0} {$i < $val(nn)} {incr i} {

$ns_ initial_node_pos $node_($i) 50 }

#

# Tell nodes when the simulation ends #

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"

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)" puts "Starting Simulation..."

average_end-end_delay.pl

# type: perl average_end-end_delay.pl <trace file>

# --- $infile=$ARGV[0]; $speed=$ARGV[1]; $sum=0; $recvnum=0; # ---

open (DATA,"<$infile") || die "Can't open $infile $!";

while (<DATA>) { @x = split(' ');

for ($x[5]) {

if (( $x[0] eq "s") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" )) {$start_time = $x[1]; }

if (( $x[0] eq "r") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" )) {$end_time = $x[1]; $recvnum++;}

$packet_duration =$end_time - $start_time;

if ( $packet_duration > 0 ) { $sum += $packet_duration; } }

}

# ---

$delay=$sum/$recvnum;

#print STDOUT "Total delay time of packets = $sum\n"; #print STDOUT "Total packets = $recvnum\n";

print STDOUT "$speed", " ", "$delay\n";

close DATA; exit(0);

normalized_routing_overhead.pl

# type: perl normalized_routing_overhead.pl <trace file>

# --- $infile=$ARGV[0]; $speed=$ARGV[1]; $routing_packets=0; $sum_received=0; # ---

open (DATA,"<$infile") || die "Can't open $infile $!"; (adsbygoogle = window.adsbygoogle || []).push({});

while (<DATA>) { @x = split(' ');

if (( $x[0] eq "r") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" )) {$sum_received++; }

if (( $x[0] eq "s" || $x[0] eq "f") && ( $x[6] eq "message" ) && ( $x[3] eq "RTR" )) {$routing_packets++; }

}

# --- $normalized_routing_overhead=($routing_packets/$sum_received);

#print STDOUT "Total packets received = $sum_received\n";

#print STDOUT "Total routing packets sent & forward = $routing_packets\n";

print STDOUT "$speed", " ", "$normalized_routing_overhead \n";

close DATA; exit(0);

packet_delivery_fraction.pl

# type: perl packet_delivery_fraction_ratio.pl <trace file>

# --- $infile=$ARGV[0]; $speed=$ARGV[1]; $sum_sent=0; $sum_received=0; # ---

open (DATA,"<$infile") || die "Can't open $infile $!";

while (<DATA>) { @x = split(' ');

if (( $x[0] eq "s") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" )) {$sum_sent++; }

if (( $x[0] eq "r") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" )) {$sum_received++; }

}

# --- $packet_delivery_ratio=($sum_received/$sum_sent)*100;

#print STDOUT "Total packets sent = $sum_sent\n";

#print STDOUT "Total packets received = $sum_received\n";

print STDOUT "$speed", " ", "$packet_delivery_ratio\n";

close DATA; exit(0);

throughput.pl

# type: throughput.pl <trace file>

# --- $infile=$ARGV[0]; $speed=$ARGV[1]; $recvdSize = 0; $startTime = 1000; $stopTime = 0; # --- open (DATA,"<$infile") || die "Can't open $infile $!";

while (<DATA>) { @x = split(' '); $pkt_size = $x[7]; # Store start time

if (($x[3] eq "AGT") && ($x[0] eq "s") && ($pkt_size >= 512)) { if ($x[1] < $startTime) {

$startTime = $x[1]; }

}

# Update total received packets' size and store packets arrival time if (($x[3] eq "AGT") && ($x[0] eq "r") && ($pkt_size >= 512)) { (adsbygoogle = window.adsbygoogle || []).push({});

if ($x[1] > $stopTime) { $stopTime = $x[1]; }

# Rip off the header

$hdr_size = $pkt_size % 512; $pkt_size -= $hdr_size; # Store received packet's size $recvdSize += $pkt_size; }

}

# ---

#print("Average Throughput[kbps] = ",($recvdSize/($stopTime-$startTime)) * (8/1000)," ",$startTime," ","$stopTime\n");

print STDOUT "$speed", " ", ($recvdSize/($stopTime-$startTime))*(8/1000),"\n";

close DATA; exit(0);

Một phần của tài liệu Đánh giá ảnh hưởng của sự di động của nút mạng đến hiệu quả của các thuật toán định tuyến trong mạng MANET (Trang 82)