4.1.2.1. Perl
Ban đầu, Perl (Practical Extraction and Report Language) là một ngôn ngữ lập trình đƣợc phát triển cho thao tác văn bản, sau này đƣợc phát triển để sử dụng cho một loạt các ứng dụng khác nhƣ: quản trị hệ thống, phát triển web, lập trình mạng, giao diện phát triển,…Ƣu điểm vƣợt trội của Perl là nhỏ gọn, dễ sử dụng, hỗ trợ cả lập trình hƣớng đối tƣợng (OOP), đƣợc xây dựng hỗ trợ xử lý văn bản.
Sử dụng Perl
Để chạy Perl trên Linux, ta dùng lệnh sau:
perl progName.pl
Viết Script bằng perl, đặt dòng sau lên trên đầu trong Script
#!/usr/bin/perl
Sau đó chạy lệnh:
/duongdan/script.pl
ví dụ : chmod 755 script.pl
/duongdan/script.pl
Cú pháp cơ bản của Perl:
Một đoạn code Perl script hay một chƣơng trình đều bao gồm nhiều các statements. Các statements này chỉ đơn giản đƣợc viết bằng các kiểu cách đơn giản trong script. Không nhất thiết phải có main() hoặc tương tự.
perl statements kết bằng dấu “ ; “
Ví dụ: print”Hello, I’m Tu”;
Sử dụng “#” để Comments trong Perl, ví dụ :
# Comment ở đây
4.1.2.2.GNUPLOT
Gnuplot là một công cụ vẽ đồ thị gọn nhẹ và rất hữu dụng trên Linux. Gnuplot tỏ ra khó dùng lúc ban đầu, tuy nhiên, nếu nắm đƣợc các cú pháp cơ bản của nó, chúng ta
sẽ thấy đây là một công cụ mạnh mẽ và đầy hiệu quả. Với chức năng tạo script để vẽ, việc tạo hoặc sửa đổi một đồ thị trở nên rất dễ dàng.
Gnuplot có thể nhận vào tệp văn bản (input file) có nhiều cột, lúc ấy cần chỉ ra hai cột cụ thể để lấy dữ liệu vẽ đồ thị. Gnuplot còn có thể nhận vào từ nhiều file và vẽ trên cùng một đồ thị, điều này rất thuận lợi cho việc so sánh và nghiên cứu.
Ví dụ: File đầu vào là:Time_of_connection_setup.data
STT DSDV AODV DSR 0 0,0045 0,6204 0,0333 5 1,1788 1,6365 1,4792 10 5,4950 1,4021 3,8303 15 5,0125 2,3528 3,4793 20 6,9357 1,4003 0,5594
Thiết lập định dạng cho bản vẽ và thực hiện vẽ đồ thị:
#plot.script
set title "Thoi gian thiet lap ket noi" set xlabel "Van Toc (m/s)"
set ylabel "Thoi gian (s)" set key right top
set pointsize 1 set xr [0:20] set yr [0:8] set size 0.8,0.8
set terminal postscript eps enhanced mono dashed lw 1 set output "Time_of_connection_setup.eps"
plot "connection_time_RandomWaypoint" using 1:2 title 'DSDV' with linespoints lt 1 pt 6 lw 1, \
4.2. Thiết lập mạng mô phỏng MANET
Tôi đã xây dựng chƣơng trình mô phỏng, có sử dụng đoạn mã ví dụ về mô phỏng mạng ad-hoc với giao thức DSDV trong cuốn "NS Simulator for beginners" [1] của tác giả Eitan Altman và Tania Jimenez. Chƣơng trình mô phỏng của tôi có tên là:
MANET_Simulation.tcl, đƣợc in trong mục 2.Mô phỏng mạng MANET của phần Phụ
Lục. Chƣơng trình này sau khi chạy sẽ sinh ra các tệp vết là :MANET.nam và
MANET.tr. Chúng sẽ đƣợc dùng làm input cho chƣơng trình NAM để trực quan hóa
toàn bộ quá trình mô phỏng bằng đồ họa; làm input cho đoạn mã perl do tôi xây dựng để tính: Tỷ lệ phân phát gói tin thành công, thời gian phản ứng của các giao thức định tuyến, thông lƣợng; và kết xuất ra các tệp dùng cho gnuplot vẽ đồ thị.
4.2.1. Thiết lập tô-pô mạng
Sau nhiều khảo sát đánh giá, chúng tôi lựa chọn khu vực mô phỏng mạng MANET theo hình vuông với diện tích là 1500m x 1500m (1,5Km x 1,5Km). Việc mở rộng diện tích khu vực mô phỏng này sẽ đảm bảo cho các nút mạng di động có đủ không gian chuyển động với quãng đƣờng đi lớn nhất lên tới 1,5x√2 = 2,12Km . Theo chuẩn 802.11 thì vùng thu phát sóng của nút di động tối đa là 250m nên ta có độ dài đƣờng đi lớn nhất trong mạng mô phỏng lớn hơn 8 chặng dài nhất có thể có. Điều này rất hữu ích trong trƣờng hợp nghiên cứu quá trình định tuyến giữa các nút ở xa nhau.
Mạng mô phỏng bao gồm 50 nút di động phân bố ngẫu nhiên trong diện tích mô phỏng với tọa độ các nút là (x, y, z) trong đó z = 0 (Mặt phẳng).
Vị trí ban đầu của các nút đƣợc khởi tạo ngẫu nhiên nhƣ vậy nhằm làm tăng tính khách quan trong quá trình mô phỏng.
Tổng quan về mạng mô phỏng với các tham số cấu hình chung, cấu hình di chuyển và cấu hình truyền dữ liệu đƣợc thể hiện trong bảng 5.
Bảng 5: Cấu hình mạng mô phỏng Thông số Giá trị Cấu hình chung Khu vực địa lý 1,5Km x 1,5Km Tổng số nút 50 nút Vùng thu phát sóng 250m Cấu hình di chuyển Tốc độ di chuyển nhanh nhất 20 m/s 72 km/h Tốc độ di chuyển chậm nhất 0 m/s Đứng yên
Cấu hình truyền dữ liệu
Dạng truyền thông TCP
Số nguồn phát 10 nguồn, nằm trên 8 nút mạng: 4, 5, 7, 12, 15, 16, 18, 19
Thực thể nhận 8 nút mạng: 5, 6, 8, 13, 16, 17, 19, 20
Kích thƣớc gói tin 512 bytes
Kiểu – Kích thƣớc hàng đợi DropTail - 50
4.2.2. Thiết lập mô hình chuyển động của các nút mạng và thời gian mô phỏng
mạng không dây là mô hình vết (trace-based model) và mô hình tổng hợp (synthetic model). Mô hình vết cung cấp cho ta thông tin chính xác, đặc biệt là khi nó có liên quan tới nhiều bên tham gia va có thời gian đủ dài. Tuy nhiên, mô hình tổng hợp là phù hợp hơn đối với mạng di động ngày nay. Mô hình tổng hợp cố gắng thể hiện hành vi của các nút di động bằng cách thống kê. Mỗi nút sẽ đƣợc gán một giải thuật nhằm ngẫu nhiên hóa quá trình di chuyển. Hai mô hình tiêu biểu mô phỏng các mạng Ad- hoc là: Random Waypoint và Random Walk.
4.2.2.1. Mô hình Random Waypoint
Tại mô hình này, ban đầu mỗi nút có một vị trí ngẫu nhiên trong khu vực mô phỏng và ở tại đó một khoảng thời gian tạm dừng. Khi hết quãng thời gian tạm dừng, nút chọn cho mình một đích ngẫu nhiên trong khu vực mô phỏng và chuyển động với tốc độ phân bố đồng đều giữa [speedmin, speedmax]. Khi tới vị trí mới nút dừng một khoảng thời gian trong khoảng [Pmin, Pmax] và sau đó tiếp tục lại quá trình.
Hình 14: Di chuyển một nút theo mô hình Random Waypoint.
Đây là mô hình có tính linh động cao nên đƣợc sử dụng phổ biến và rộng rãi nhất. Mô hình Random Waypoint có biến thể khác với một vài thay đổi khác biệt là mô hình Random Walk.
4.2.2.2. Mô hình Random Walk
Mô hình này mô phỏng chuyển động ngẫu nhiên của các thực thể trong cuộc sống tự nhiên. Nút di động di chuyển từ vị trí hiện tại tới vị trí mới bằng việc chọn ngẫu nhiên một hƣớng nằm trong khoảng [0, 180°] và tốc độ nằm trong khoảng [speedmin, speedmax]. Mỗi chuyển động diễn ra trong khoảng thời gian travel_time (thời gian di chuyển của nút trước khi thay đổi hướng và tốc độ) hoặc trong một khoảng cách hằng số và đặc biệt là không có thời gian tạm dừng trƣớc khi nút mạng thay đổi hƣớng và tốc độ. Hình 15 thể hiện trực quan hóa quá trình di chuyển của tám nút mạng theo mô hinh Random Walk.
Hình 15: Di chuyển của 8 nút theo mô hình Random Walk
Với mô hình chuyển động này thì tham số về sự thay đổi hƣớng di chuyển của nút có tính chất quyết định đến mức độ thay đổi của mạng. Nếu tham số này nhỏ, các nút di chuyển ngẫu nhiên trong phạm vi nhỏ, lúc này mạng đƣợc coi là mạng nửa tĩnh. Ngƣợc lại nếu tham số này lớn, mạng thay đổi trên phạm vi rộng hơn.
4.2.3 Thiết lập các nguồn sinh lƣu lƣợng đƣa vào mạng
Chúng tôi lựa chọn 10 cặp truyền thông (sender, receiver) truyền phát dữ liệu. Chúng đƣợc sắp xếp phân bố hợp lý trên khu vực mô phỏng sao cho đảm bảo có đủ các chặng truyền phát với độ dài khác nhau, từ các cặp truyền thông nằm gần nhau nhất tới các cặp truyền thông nằm xa nhau nhất có thể trong khu vực mô phỏng , các nút mạng còn lại tham gia vào quá trình định tuyến với vai trò là nút trung gian chuyển tiếp gói tin.
Giao thức TCP đƣợc chúng tôi lựa chọn để đƣa vào mô phỏng bởi trong các ứng dụng trên thực tế hầu hết đều hoạt động dựa trên giao thức này. Các nguồn phát sinh lƣu lƣợng sử dụng giao thức FTP để truyền.
NS-2 hỗ trợ một số công cụ để tạo ra các file ngữ cảnh một cách tự động và ngẫu nhiên. Các công cụ này nằm trong thƣ mục: …/ns-2/indep-utils/cmu-scen-gen/, với các tính năng sau:
• setdest: Là công cụ viết trên nền C++, giúp cho ngƣời nghiên cứu tạo ra các kịch bản bao gồm vị trí ban đầu của nút di động và sự di chuyển của chúng. Trong công cụ này, chúng ta coi tọa độ z của các nút đều bằng 0 và các nút di chuyển trên cùng một mặt phẳng. Thực hiện setdest bằng cách gõ lệnh nhƣ sau:
./setdest -n <num of nodes> -p <pausetime> -s <maxspeed> -t <simtime> -x <maxx> -y <maxy> > <outdir>/<scenario-file>
• cbrgen.tcl: Là công cụ viết bằng ngôn ngữ tcl, sử dụng thông qua bộ thông dịch ns-2, giúp ngƣời nghiên cứu có thể tạo ra các kịch bản truyền thông trên nền giao thức giao vận TCP. Câu lệnh:
ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] > <outdir>/<scenario-file>
Sử dụng các công cụ này giúp ngƣời nghiên cứu tạo ra các kịch bản truyền thông cũng nhƣ di chuyển của mạng với số lƣợng các nút di động là tƣơng đối lớn. Tuy nhiên việc tạo ra các kịch bản này là ngẫu nhiên, có thể không theo ý muốn của ngƣời nghiên cứu, nên trong nhiều trƣờng hợp ngƣời nghiên cứu phải tự viết ra các kịch bản truyền thông có ý nghĩa mô phỏng điển hình.
4.2.4. Lựa chọn thời gian mô phỏng
Quá trình mô phỏng diễn ra trong thời gian t = 600s = 10 phút. Đây là khoảng thời gian vừa đủ để chúng ta nghiên cứu các sự kiện xảy ra trong mạng. Thật vậy do các nút mạng di chuyển với vận tốc từ [0m/s – 20m/s] nên ta giả sử nút di chuyển với tốc độ gần nhƣ là thấp nhất ứng với ngƣời đi bộ là 1m/s thì quãng đƣờng đi đƣợc sau 600s cũng lên tới 600m.
S = v.t = 1 x 600 = 600m
Với thời gian nhƣ vậy đủ để nút chậm nhất di chuyển ra ngoài vùng thu phát sóng của nút khác (radio range = 250m) và làm cho tô-pô mạng thay đổi. Quá trình đó cũng thể hiện rõ các tính chất đặc trƣng của các mô hình chuyển động khác nhau:
Random Waypoint: Mô hình này tuy các nút có thêm các khoảng thời gian tạm
dừng trƣớc khi thay đổi hƣớng và tốc độ chuyển động nhƣng thời gian tạm dừng này là rất nhỏ so với thời tổng toàn bộ thời gian mô phỏng. Do đó với 600s các nút mạng vẫn đủ thời gian để đạt đƣỡng quãng đƣờng di chuyển cần thiết tạo ra các thay đổi khác nhau đối với tô-pô mạng.
Random Walk: Mô hình này các nút di chuyển liên tục, không có thời gian tạm
dừng nên đƣơng nhiên với thời gian mô phỏng 600s là đủ để đánh giá các giao thức định tuyến khi tô-pô mạng thay đổi liên tục.
4.3. Thực hiện mô phỏng các giao thức định tuyến
4.3.1. Phân tích kết quả bằng công cụ perl
Tôi đã xây dựng các chƣơng trình perl để đánh giá các tham số hiệu năng sẽ đƣợc trình bày tại mục 4.3.1 này. Tên các chƣơng trình đó là:
Pkt_success_rate. pl: Dùng để tính ra tỷ lệ phân phát gói tin thành công, chính 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.
4.3.1.1. Tỷ lệ phân phát gói tin thành công
Mô phỏng mạng gồm 50 nút di động với 10 nguồn sinh lƣu lƣợng kết nối.
a. Mô hình Random Waypoint
Bảng 6: Thống kê chi tiết tỷ lệ phân phát gói tin thành công - Random Waypoint
DSDV AODV DSR
0m/s
Gói tin truyền thành công 2768 50802 49802
Tổng số gói tin gửi đi 2813 50925 49943
Tỷ lệ % 98,40 99,75 99,72
5m/s
Gói tin truyền thành công 63930 62871 57789
Tổng số gói tin gửi đi 64601 64063 58170
Tỷ lệ % 98,96 98,13 99,34
10m/s
Gói tin truyền thành công 97453 60909 105725
Tổng số gói tin gửi đi 97979 61554 106059
Tỷ lệ % 99,46 98,95 99,69
15m/s
Gói tin truyền thành công 24978 46136 41019
Tổng số gói tin gửi đi 25222 46937 41356
Tỷ lệ % 99,03 98,29 99,19
20m/s
Gói tin truyền thành công 37344 46212 45568
Tổng số gói tin gửi đi 37839 47180 45897
b. Mô hình Random Walk
Bảng 7: Thống kê chi tiết tỷ lệ phân phát gói tin thành công - Random Walk
DSDV AODV DSR
0m/s
Gói tin truyền thành công 69919 72729 69972
Tổng số gói tin gửi đi 70033 72859 70101
Tỷ lệ % 99,84 99,82 99,82
5m/s
Gói tin truyền thành công 51120 48731 44450
Tổng số gói tin gửi đi 51547 50096 44685
Tỷ lệ % 99,17 97,28 99,47
10m/s
Gói tin truyền thành công 55272 61102 56998
Tổng số gói tin gửi đi 55652 62065 57391
Tỷ lệ % 99,32 98,45 99,32
15m/s
Gói tin truyền thành công 34680 44709 42969
Tổng số gói tin gửi đi 35149 45723 43396
Tỷ lệ % 98,67 97,78 99,02
20m/s
Gói tin truyền thành công 31045 49969 50373
Tổng số gói tin gửi đi 31498 51238 50845
4.3.1.2. Thời gian thiết lập kết nối a. Mô hình Random Waypoint
Bảng 8: Thời gian thiết lập kết nối trung bình-Random_Waypoint
Tốc độ
Giao thức 0m/s 5m/s 10m/s 15m/s 20m/s DSDV (s) 0,0045 1,1788 5,4950 5,0125 6,9357 AODV (s) 0,6204 1,6365 1,4021 2,3528 1,4003 DSR (s) 0,0333 1,4792 3,8303 3,4793 0,5594
b. Mô hình Random Walk
Bảng 9: Thời gian thiết lập kết nối trung bình-Random_Walk
Tốc độ
Giao thức 0m/s 5m/s 10m/s 15m/s 20m/s DSDV (s) 0,0039 0,7459 0,2433 0,0721 0,0514 AODV (s) 0,0077 3,2728 1,8551 6,0929 0,9361 DSR (s) 0,0179 5,1817 3,0653 2,5129 1,7436
4.3.2. Sử dụng gnuplot để vẽ đồ thị
Tôi đã sử dụng gnuplot với input là các file sau: Time_of_connection_setup_randomWaypoint Time_of_connecion_setup_randomWalk
Thực hiện các theo tác trong chế độ tƣơng tác của gnuplot để vẽ các đồ thị trong mục 4.3.2.2: Thời gia thiết lập kết nối.
4.3.2.1. Tỷ lệ phân phát gói tin thành công a. Mô hình Random Waypoint
Bảng 10: Tỷ lệ phân phát gói tin thành công - Random Waypoint
Tốc độ Giao thức 0m/s 5m/s 10m/s 15m/s 20m/s DSDV (%) 98,40 98,96 99,46 99,03 98,69 AODV (%) 99,75 98,13 98,95 98,29 97,95 DSR (%) 99,72 99,34 99,69 99,19 99,28 97,5 98 98,5 99 99,5 100 DSDV (%) AODV (%) DSR (%)
Kết quả phân phát gói tin dữ liệu P h ần t răm gó i t in t ru yề n t h àn h côn g (%)
b. Mô hình Random Walk
Bảng 11:Tỷ lệ phân phát gói tin thành công – Random Walk
Tốc độ Giao thức 0m/s 5m/s 10m/s 15m/s 20m/s DSDV (%) 99,84 99,17 99,32 98,67 98,56 AODV (%) 99,82 97,28 98,45 97,78 97,52 DSR (%) 99,82 99,47 99,32 99,02 99,07 96 96,5 97 97,5 98 98,5 99 99,5 100 100,5 0m/ s 5m/ s 10m/ s 15m/ s 20m/ s DSDV (%) AODV (%) DSR (%)
Hình 17: Đồ thị tỷ lệ phân phát gói tin thành công – Random Walk
Kết quả phân phát gói tin dữ liệu P h ần t răm gó i t in t ru yề n t h àn h côn g (%) Vận Tốc
4.3.2.2. Thời gian thiết lập kết nối a. Random Waypoint
Hình 18: Đồ thị thời gian thiết lập kết nối trung bình_Random-Waypoint
4.4. Đánh giá ảnh hƣởng của sự chuyển động của nút mạng đến hiệu suất của các giao thức định tuyến 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