Ngữ cảnh mô phỏng mạng MANET được cấu thành bởi các yếu tố như tô-pô mạng, mô hình chuyển động, mô hình sinh lưu lượng, diện tích và hình dạng vùng mô phỏng, thời gian hoạt động của các nguồn sinh lưu lượng, thời gian mô phỏng. Bằng cách thay đổi các yếu tố kể trên sẽ cho chúng ta những ngữ cảnh mạng khác nhau.
Trong luận văn cao học này, kịch bản mô phỏng tôi xây dựng gồm 50 nút có vị trí khởi tạo ngẫu nhiên trong một vùng địa lý có kích thước 1500x300m với phạm vi truyền sóng vô tuyến của mỗi nút là 250m (bán kính). Tọa độ của mỗi nút tại một vị trí trong vùng mô phỏng có dạng (x,y,z) trong đó z có giá trị bằng 0. Nút di chuyển theo hai mô hình di chuyển là Random Waypoint và Random Walk. Theo mô hình Random Waypoint, đầu tiên 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 gọi là thời gian tạm dừng. Khi quãng thời gian này hết hạn, nút chọn ngẫu nhiên một đích trong khu vực mô phỏng và một tốc độ được phân bố đồng đều giữa [Speedmin, Speedmax]. Sau đó, nút di chuyển tới vị trí mới với tốc độ đã chọn. Khi tới vị trí mới, nút dừng một khoảng thời gian được chọn theo phân bố đồng đều
giữa [Pmin, Pmax] và sau đó tiếp tục lại quá trình. Mô hình Random Walk mô phỏng chuyển động ngẫu nhiên của các thực thể trong 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 hướng nằm trong khoảng [0,180o], 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 hoặc khoảng cách hằng số, không có khoảng thời gian tạm dừng trước khi nút thay đổi hướng và tốc độ. Các thí nghiệm tôi tiến hành có thời gian mô phỏng là 15 phút (tương ứng với 900s). Thực thể truyền thông CBR được gắn trên nút có tốc độ phát gói tin không đổi là 4 gói tin/giây và các gói tin có kích thước 512 byte. Số lượng nguồn phát CBR cho mỗi mô hình di chuyển là 1, 3 và 5 nguồn phát.
Để đánh giá chi phí tìm đường của một số giao thức định tuyến mạng MANET, trong mô hình Random Waypoint tôi tiến hành mô phỏng với 7 mẫu thời gian tạm dừng (0, 150, 300, 450, 600, 750 và 900s). Tiến hành mô phỏng với mô hình Random Walk, tôi sử dụng thời gian di chuyển (travel time) là 10s. Như vậy tổng số thí nghiệm mô phỏng mạng MANET tôi thực hiện sẽ là 96 thí nghiệm bao gồm:
ü Mô hình Random Waypoint: 7 mẫu thời gian tạm dừng x 3 mẫu nguồn phát CBR x 4 mẫu giao thức định tuyến mạng MANET = 84 thí nghiệm.
ü Mô hình Random Walk: 1 mẫu thời gian di chuyển x 3 mẫu nguồn phát CBR x 4 mẫu giao thức định tuyến mạng MANET = 12 thí nghiệm.
Trong mỗi thí nghiệm mô phỏng, các tham số mô phỏng giống nhau được cho bởi bảng 5:
Tham số mô phỏng Giá trị
Phạm vi truyền sóng vô tuyến của nút di động 250m
Băng thông 2Mbps
Số nút tham gia mô phỏng 50
Vùng mô phỏng 1500x300m
Thời gian mô phỏng 900s
Tốc độ di chuyển cực tiểu 0m/s
Dạng truyền thông CBR
Số nguồn phát 1, 3, 5
Tốc độ gửi gói tin 4 gói tin/ giây
Kích thước gói tin 512 bytes
Bảng 5. Các đặc điểm ngữ cảnh giống nhau của thí nghiệm mô phỏng
Các giao thức định tuyến mạng MANET như AODV, DSDV, DSR và OLSR phải được thực hiện trong cùng điều kiện tải và giống nhau về các tham số mô phỏng để đảm bảo việc so sánh, đánh giá giữa các giao thức là chuẩn xác. Do đó, với tệp tạo ngữ cảnh (lvch-dcthanh.tcl) với mỗi giao thức sẽ có các tham số và tải giống nhau, chỉ khác nhau ở phương thức định tuyến được sử dụng, thời gian tạm dừng/thời gian di chuyển và số nguồn phát CBR. Sau khi chạy xong các kịch bản ngữ cảnh thì bộ mô phỏng sẽ sinh ra các tệp vết ghi lại các sự kiện xảy ra trong quá trình mô phỏng. Tôi sẽ
dùng các đoạn mã bằng ngôn ngữperl do tôi tự viết để tính toán, đánh giá cho các độ đo hiệu năng mong muốn.
Để tạo các tệp di chuyển theo mô hình Random WayPoint cho nút di động tôi dùng công cụ setdest trong thư mục ~ns/indep-utils/cmu-scen-gen/setdest nằm trong bộ mô phỏng NS2. Chạy setdest với các tham số sau để tạo hình trạng mạng với các thời gian tạm dừng khác nhau:
./setdest –v <version> -n <num_of_nodes> -p <pausetime> -s <maxspeed> -t <simtime> -x <maxx> -y <maxy> > <outdir>/<scenario-file> ./setdest –v 1 –n 50 –p 0 –s 20 -t 900 –x 1440 –y 900 > rwp_0 ./setdest –v 1 –n 50 –p 150 –s 20 -t 900 –x 1500 –y 300 > rwp_150 ./setdest –v 1 –n 50 –p 300 –s 20 -t 900 –x 1500 –y 300 > rwp_300 ./setdest –v 1 –n 50 –p 450 –s 20 -t 900 –x 1500 –y 300 > rwp_450 ./setdest –v 1 –n 50 –p 600 –s 20 -t 900 –x 1500 –y 300 > rwp_600 ./setdest –v 1 –n 50 –p 750 –s 20 -t 900 –x 1500 –y 300 > rwp_750 ./setdest –v 1 –n 50 –p 900 –s 20 -t 900 –x 1500 –y 300 > rwp_900
Để tạo các tệp di chuyển nút di động với mô hình Random Walk tôi dùng công cụ rwalk được mô tả chi tiết tại [18]. Tiến hành tải mã của chương trình tại
http://monarch.cs.rice.edu/~santa/research/mobility/code.tar.gz rồi giải nén ra ta sẽ
thấy ba thư mục là palm-general, palm-graph và palm-rw. Tiếp đến ta chuyển vào thư mục palm-rw rồi tiến hành gõ lệnh make, chương trình rwalk sẽ được cài đặt. Để tạo tệp di chuyển chạy dòng lệnh như sau:
./rwalk 3 50 1500 300 900 10 0 0 0 10 0 > rwalk
Để tạo các tệp mẫu lưu lượng CBR, tôi sử dụng bộ tạo lưu lượng nằm trong thư mục ~ns/indep-utils/cmu-scene-gen của bộ mô phỏng NS2 có tên là cbrgen.tcl với số nguồn phát khác nhau :
ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate]
ns cbrgen.tcl –type cbr –nn 50 –seed 1.0 –mc 1 –rate 4.0 > cbr_1
ns cbrgen.tcl –type cbr –nn 50 –seed 1.0 –mc 3 –rate 4.0 > cbr_3
ns cbrgen.tcl –type cbr –nn 50 –seed 1.0 –mc 5 –rate 4.0 > cbr_5
Sau khi xây dựng kịch bản mô phỏng bằng ngôn ngữ tcl (tệp lvch-dcthanh.tcl), tôi tiến hành thực hiện mô phỏng từ dòng lệnh. Cú pháp cho kịch bản mô phỏng như sau:
ns lvch-dcthanh.tcl [-nn nodes] [-x MAXX] [-y MAXY] [-rp Routing protocol] [-cp conn pattern] [-sc scenario] [-stop sec] [-ifq interface queue] [-nout namout] [-tout traceout]
Trong đó:
-nn : Số nút tham gia mô phỏng (mặc định là 50) -x : Bề rộng của vùng mô phỏng (mặc định là 1500m) -y : Bề dài của vùng mô phỏng (mặc định là 300m)
-rp : Giao thức định tuyến mạng MANET sử dụng trong mô phỏng (mặc định là DSDV)
-cp : Tệp mẫu lưu lượng đưa vào (mặc định là tệp ‘connection_pattern’) -sc : Tệp ngữ cảnh của mô phỏng (mặc định là tệp ‘scenario_file’) -stop : Thời gian kết thúc mô phỏng (mặc định là 900s)
-ifq : Kiểu giao diện hàng đợi (mặc định là kiểu Queue/DropTail/PriQueue) -nout, -tout : Là các tệp vết ghi lại các sự kiện xảy ra trong mô phỏng
4.4.3.1. Ngữ cảnh 1 (Mô hình Random Waypoint) [19]
Với ngữ cảnh 1, tôi sử dụng mô hình di chuyển Random Waypoint được tạo bởi công cụ setdest nằm trong bộ mô phỏng NS2. Kịch bản mô phỏng tôi xây dựng gồm các đặc điểm ngữ cảnh chung được mô tả ở mục trên. Các đặc điểm ngữ cảnh riêng bao gồm tốc độ di chuyển cực đại của nút di động là 20m/s. Các giá trị thời gian tạm dừng tôi chọn lần lượt là 0, 150, 300, 450, 600, 750 và 900s. Thời gian tạm dừng bằng 0s ứng với việc các nút di chuyển liên tục trong suốt thời gian mô phỏng, còn thời gian tạm dừng bằng 900s tương ứng với các nút đứng yên trong suốt thời gian mô phỏng.
Như vậy ta có bảng 6 tổng kết các tham số mô phỏng với mô hình Random Waypoint bao gồm tốc độ di chuyển cực đại và các khoảng thời gian tạm dừng (các tham số khác được cho bởi bảng 5):
Tham số mô phỏng Giá trị
Tốc độ di chuyển cực đại 20m/s
Thời gian tạm dừng 0, 150, 300, 450,
600, 750, 900 s
Bảng 6. Hình trạng mô phỏng với mô hình Random Waypoint
Các dòng lệnh mô phỏng áp dụng cho mô hình di chuyển Random Waypoint lần lượt với các giao thức định tuyến mạng MANET và các thời gian tạm dừng mô phỏng khác nhau và số nguồn phát CBR khác nhau. Trong các dòng lệnh dưới đây giá trị [i] lần lượt là thời gian tạm dừng của mô hình di chuyển Random Waypoint ứng với 0, 150, 300, 450, 600, 750 và 900. Giá trị [j] lần lượt là số nguồn phát CBR ứng với 1, 3 và 5.
Giao thức DSDV
ns lvch-dcthanh.tcl –sc rwp_[i] –cp cbr_[j] –nout
dsdv[j]_[i].nam –tout dsdv[j]_[i].tr
ns lvch-dcthanh.tcl –rp AODV –sc rwp_[i] –cp cbr_[j] – nout aodv[j]_[i].nam –tout aodv[j]_[i].tr
Giao thức DSR
ns lvch-dcthanh.tcl –rp DSR –ifq CMUPriQueue –sc rwp_[i] –cp cbr_[j] –nout dsr[j]_[i].nam –tout dsr[j]_[i].tr
Giao thức OLSR
ns lvch-dcthanh.tcl –rp OLSR –sc rwp_[i] –cp cbr_[j] – nout olsr[j]_[i].nam –tout olsr[j]_[i].tr
Các sự kiện xảy ra trong mô phỏng với việc chạy với 4 giao thức định tuyến AODV, DSDV, DSR và OLSR được xuất ra các tệp vết như trên. Hình ảnh mạng mô phỏng với 50 nút mạng có thể thấy như sau (tại thời điểm t = 24.746015s như trên hình):
Hình 18. Hình ảnh 50 nút di động, giao thức DSDV, thời gian tạm dừng 0, 1 nguồn phát
* Phân tích tệp vết để tính các tham số hiệu năng
Sau khi thu được các tệp vết tôi sử dụng các kịch bản viết bằng ngôn ngữ perl
(xem phụ lục 2,3,4 và 5) chạy với tệp vết để thu được các kết quả về chi phí tìm đường của 4 giao thức định tuyến mạng MANET.
Các kết quả được so sánh dưới đây bao gồm: Số gói tin định tuyến trung bình cần phát theo từng giây, chi phí định tuyến chuẩn hóa theo tải và thời gian phát hiện
tuyến trung bình.
Hình 19 thể hiện số gói tin định tuyến trung bình cần phát theo từng giây của 4 giao thức định tuyến AODV, DSDV, DSR và OLSR trong trường hợp sử dụng 1, 3 và 5 nguồn phát CBR. Có thể nhận thấy rằng khi số nguồn phát CBR tăng thì số lượng gói tin định tuyến trung bình cần phát cũng tăng. Điều này cũng dễ hiểu bởi khi có càng nhiều nguồn phát thì thông tin định tuyến trao đổi trong mạng mô phỏng càng nhiều để bảo đảm nút nguồn có thể tìm được đường đi tới nút đích. Ngoài ra chúng ta cũng có thể thấy khi thời gian tạm dừng tăng lên từ 0 đến 900s thì số lượng gói tin định tuyến trung bình cần phát cũng giảm bởi các nút từ chỗ di chuyển liên tục đến tạm dừng hầu như không di chuyển làm cho các cập nhật thông tin định tuyến ít dần
đi. Nhờ đó việc trao đổi thông tin định tuyến giảm đi bởi sự thay đổi vị trí của nút là thưa dần. Khi thời gian tạm dừng tăng đến 900s (nút không di chuyển), với 2 giao thức định tuyến AODV và DSR, 2 đường tiệm cận trục hoành; còn với 2 giao thức định tuyến DSDV và OLSR, 2 đường đi xuống nhưng không sát trục hoành. Nguyên nhân là hai giao thức định tuyến bảng DSDV và OLSR đều duy trì bảng định tuyến của mình bằng cách truyền các gói tin cập nhật định tuyến thường xuyên để bảo đảm tuyến đường lúc nào cũng có sẵn, do đó 2 đường không thể tiệm cận trục hoành. Hình 19d có vài điểm bất thường, có thể giải thích rằng đây là những điểm bùng phát do lỗi hoặc do cấu hình di chuyển ban đầu gây tắc nghẽn mạng nghiêm trọng làm cho số gói tin định tuyến trung bình cần phát tăng lên một cách đột ngột.
Hình 20 hiển thị chi tiết về số gói tin định tuyến trung bình cần phát khi so sánh giữa 4 giao thức định tuyến mạng MANET với cùng số nguồn phát CBR lần lượt là 1, 3 và 5. Trong cả ba trường hợp với số nguồn phát khác nhau, ta thấy số lượng gói tin định tuyến trung bình cần phát sử dụng bởi giao thức định tuyến DSR là ít nhất. Kế cận ngay đó là giao thức định tuyến AODV. Số gói tin định tuyến trung bình cần phát nhiều hơn DSR và AODV xảy ra đối với giao thức định tuyến DSDV. Giao thức định tuyến bảng OLSR sử dụng số gói tin định tuyến trung bình cần phát nhiều nhất để phát hiện đường đi từ nút nguồn đến nút đích. Điều này có thể giải thích là do hai giao thức định tuyến AODV và DSR là hai giao thức định tuyến khởi tạo phía nguồn, nó chỉ gửi truy vấn tìm đường mỗi khi có yêu cầu. Hai giao thức định tuyến bảng DSDV và OLSR đều duy trì bảng định tuyến của mình bằng cách truyền các gói tin cập nhật định tuyến thường xuyên để bảo đảm tuyến đường lúc nào cũng có sẵn. Việc duy trì tuyến đường được thực hiện nhờ các quảng bá định tuyến làm cho số lượng gói tin định tuyến trung bình cần phát cao hơn so với hai giao thức định tuyến khởi tạo phía nguồn. Ngoài ra OLSR là giao thức định tuyến đa đường chứa nhiều đường đi từ nút nguồn đến nút đích còn DSDV chỉ có một tuyến đường từ nút nguồn đến nút đích, nên OLSR tốn nhiều gói tin cập nhật tuyến hơn so với DSDV.
Hình 19. Số gói tin định tuyến trung bình cần phát với 1, 3 và 5 nguồn phát
(a) DSDV (b) AODV
Hình 20. Sốgói tin định tuyến trung bình cần phát với 4 giao thức định tuyến MANET
(a) 1 nguồn phát (b) 3 nguồn phát
Một độ đo đánh giá chi phí tìm đường khác được đưa ra so sánh giữa các giao thức định tuyến mạng MANET là chi phí định tuyến chuẩn hóa theo tải. Hình 21 là thể hiện chi phí định tuyến chuẩn hóa theo tải với các trường hợp 1, 3 và 5 nguồn phát của 4 giao thức định tuyến mạng MANET. Có thể thấy rằng khi số nguồn phát CBR tăng lên thì chi phí định tuyến chuẩn hóa theo tải giảm dần. Ngoài ra khi mà thời gian tạm dừng tăng lên thì chi phí định tuyến chuẩn hóa theo tải cũng giảm dần. Chi phí định tuyến chuẩn hóa theo tải cao nhất trong trường hợp sử dụng giao thức định tuyến OLSR với thời gian tạm dừng là 0s và thấp nhất trong trường hợp sử dụng giao thức định tuyến nguồn AODV và DSR với thời gian tạm dừng là 900s.
So sánh giữa các giao thức định tuyến mạng MANET với cùng số nguồn phát về chi phí định tuyến chuẩn hóa theo tải được minh họa trong hình 22, ta thấy trong cả ba trường hợp sử dụng 1, 3 và 5 nguồn phát, chi phí định tuyến chuẩn hóa theo tải của DSR và AODV đều thấp hơn so với DSDV và OLSR.
Trong cùng số nguồn phát CBR, với mỗi giao thức định tuyến MANET, có thể thấy rằng khi thời gian tạm dừng tăng lên thì chi phí định tuyến chuẩn hóa theo tải giảm dần. Nguyên nhân có thể giải thích như sau, nếu coi A là tổng số gói tin định tuyến, B là tổng số gói tin dữ liệu thì chi phí định tuyến chuẩn hóa theo tải cho bởi công thức B A A Cost + = Biến đổi công thức trên như sau:
B A B B A B B A B A A Cost + - = + - + = + = 1
Như biện luận ở mục trên, khi thời gian tạm dừng tăng lên thì tổng số gói tin định tuyến giảm dần (A giảm), nguồn CBR phát dữ liệu không đổi (B không đổi). Do đó ta có: A+B ¯ => - +B A B => ¯ + - B A B 1
Ngoài ra giao thức định tuyến OLSR chiếm chi phí định tuyến chuẩn hóa theo tải cao nhất. Giao thức DSDV chịu chi phí định tuyến chuẩn hóa theo tải thấp hơn so với OLSR.
Hình 21. Chi phí định tuyến chuẩn hóa theo tải với 1, 3 và 5 nguồn phát
(a) DSDV (b) AODV
Hình 22. Chi phí định tuyến chuẩn hóa theo tải với 4 giao thức định tuyến MANET
(b) 3 nguồn phát
Chi phí tìm đường cuối cùng tôi sử dụng để so sánh giữa các giao thức định tuyến mạng MANET là thời gian phát hiện tuyến trung bình. Độ đo này tôi tiến hành đánh giá giữa hai giao thức định tuyến khởi tạo phía nguồn là AODV và DSR. Hình 23