Nó đánh giá sự chuyển động trong mạng bằng cách tính toán di chuyển của nút mạng liên quan giữa các cặp nút trên mạng. Thông số này tương ứng với số thay đổi liên kết trong mô hình khi mà nút mạng di chuyển theo mô hình định trước.
Bảng 3.1 Bảng các biến trong thông số di chuyển
Tên biến Mô tả Dist(nx, ny)t Khoảng cách giữa nút X và nút Y ở thời điểm t n Số nút mạng i Chỉ số Ax(t) Khoảng cách trung bình giữa các nút x với các nút khác ở thời điểm t
Mx Di chuyển trung bình của nút x với các nút trong thời gian mô phỏng
T Thời gian mô phỏng
∆t Bước thời gian mô phỏng
Mod Di chuyển trong toàn bộ kịch bản [m/s]
Bước 1: tính khoảng cách trung bình của các nút x với các nút khác trong mạng
được thực hiện ở các thời điểm t=0, t= 0 + X, t=0 + 2X, ... t = T, theo công thức: (CT 3.4)
Bước 2: Tính di chuyển của nút x theo công thức:
(CT 3.5) Bước 3: Tính thông số di chuyển cho cả kịch bản:
Mai Văn Linh-ĐTVT2-CH2009 71
(CT 3.6)
3.1.2.2 Thời gian tạm dừng
Thời gian tạm dừng là một biến đầu vào của mô phỏng. Khi sử dụng như một thông số đánh giá, thời gian tạm dừng của tất cả các nút trong mô phỏng được sử
dụng đểđo kiểm thông số chuyển động. Khi giá trị trung bình càng lớn thì nút mạng càng ít di chuyển trong mạng.
3.2 MÔ HÌNH DI CHUYỂN MÔ PHỎNG MẠNG AD HOC
Trong mạng Ad hoc, nút mạng di chuyển từ vị trí này đến vị trí khác, nên khó khăn khi tìm ra mô hình di chuyển có thể cho mô phỏng. Để có thể mô phỏng giao thức định tuyến thì cần phải có sự phát triển và sử dụng “mô hình di chuyển” cho nút mạng, do đó việc xác định mô hình di chuyển là rất quan trọng.
Mô hình di chuyển yêu cầu phải mô tả di chuyển của nút mạng giống như
trong thực tế, cần có sự thay đổi về hướng và tốc độ di chuyển trong những khoảng thời gian hợp lý. Chắc chắn nút mạng thực không thể di chuyển theo đường thẳng với tốc độ không đổi trong suốt quá trình mô phỏng. Vận tốc có thể thay đổi và giảm đến 0, tương tự hướng di chuyển cũng sẽ thay đổi.
Có rất nhiều mô hình áp dụng cho mạng Ad hoc, có thể tương ứng với từng ngữ cảnh kịch bản mô phỏng, trong giới hạn luận văn đề cập một số mô hình tiêu biểu:
3.2.1 Mô hình di chuyển ngẫu nhiên
Mô hình di chuyển ngẫu nhiên là mô hình di chuyển đơn giản dựa trên hướng và vận tốc ngẫu nhiên, trong đó vận tốc và hướng hiện tại của hai hay nhiều nút mạng hoàn toàn độc lập với giá trị cũ của chúng. Do đó, mô hình sẽ phải đối mặt với hiện tượng không giống thực tế: dừng đột ngột, có vòng quay nhọn, đường di chuyển quanh co hoàn toàn ngẫu nhiên. Để khắc phục vấn đề này, người ta có thể
thay đổi mô hình bằng cách tính toán vận tốc hay hướng di chuyển hoặc cả hai.
Mai Văn Linh-ĐTVT2-CH2009 72 Đây là mô hình sửa đổi của mô hình di chuyễn ngẫu nhiên nhưng đảm bảo tất cả nút mạng được gán cho một vận tốc như nhau trong suốt quá trình mô phỏng. Sau khi hướng chọn một cách ngẫu nhiên trong khoảng (0, 2π), các nút bắt đầu di chuyển. Khi gặp biên của khu vực mô phỏng, nó nảy khỏi biên với một góc xác
định bởi hướng đến, các nút di chuyển thao đường mới.
3.2.3 Mô hình di chuyển Random Waypoint
Mô hình này có sử dụng thời gian tạm dừng khi thay đổi hướng và vận tốc. Hai hay nhiều nút mạng ở một vị trí trong một khoảng thời gian (thời gian tạm dừng). Khi hết thời gian tạm dừng, nút mạng chọn ngẫu nhiên vận tốc trong khoảng (0, maxspeed)
Hình 3.1 Mô hình di chuyển Random Waypoint
3.2.4 Mô hình di chuyển hướng ngẫu nhiên
Mô hình này khắc phục nhược điểm của mô hình Random Waypoint, do các nút trong mô hình Random Waypoint thường chọn các đích mới và xác suất chọn thường là trung tâm khu vực mô phỏng hoặc đường đi qua trung tâm khu vực mô
Mai Văn Linh-ĐTVT2-CH2009 73
phỏng. Khi các nút mạng có xu hướng hội tụ, phân tán... trong mô hình di chuyển hướng ngẫu nhiên, các nút chọn hướng thay vì chọn đích, sau đó nó di chuyển theo hướng đó đến biên của khu vực mô phỏng, ngay khi đến biên nó dừng lại trong một khoảng thời gian và chọn hướng khác (0, 180o) và tiếp tục quá trình .
Hình 3.2 Mô hình di chuyển hướng ngẫu nhiên TỔNG KẾT
Việc lựa chọn các thông số đánh giá giao thức và mô hình di chuyển là rất quan trọng. Thông qua các thông số đó, ta có thể đánh giá được điểm mạnh cũng như điểm yếu của một giao thức mạng. Qua đó, ta có thể lựa chọn được giao thức phù hợp cho những giả thiết và yêu cầu đặt ra.
Mai Văn Linh-ĐTVT2-CH2009 74
CHƯƠNG 4. ĐÁNH GIÁ TỶ LỆ NHẬN GÓI CHO
CÁC GIAO THỨC ĐỊNH TUYẾN MẠNG AD HOC
DÙNG OMNET ++
Chương này sẽ giới thiệu về công cụđể mô phỏng giao thức định tuyến mang Ad học, mô phỏng các giao thức định tuyến, giả thiết đầu vào cho quá trình mô phỏng. Kết quả mô phỏng và đánh giá, kết luận.
4.1 GIỚI THIỆU CHUNG VỀ OMNET++
Mô phỏng là một công cụ cơ bản để nghiên cứu và phân tích các giao thức
định tuyến, đặc biệt là trong mạng Ad hoc. Mô phỏng được sử dụng với hai lý do chính. Thứ nhất, mô phỏng cho phép mô hình và đánh giá mạng Ad hoc với nhiều nút mạng mà không tồn tại hay thực hiện một cách khó khăn trên các thiết bị có thật trên các kịch bản thực tế. Thứ hai, sự phức tạp và các yếu tố tác động của tự nhiên (truyền sóng vô tuyến, di chuyển của các nút, sự tương tác giữa các giao thức...) ảnh hưởng tới sự thực thi của Ad hoc. Ngày nay, có rất nhiều công cụđể mô phỏng cho mạng Ad hoc như: Network Simulation – 2 (NS-2), OPNET, Ncutns và OMNET++. Trên tất cả, OMNET++ là một công cụ tối ưu để mô phỏng mạng Ad hoc. Ưu điểm của OMNET++:
• Nó là công cụ mã nguồn mở, người viết chương trình có thể thêm các thư
viện mới hoặc phỏng theo các thư viện đã có sẵn theo yêu cầu của kịch bản mô phỏng đểđánh giá.
• Giao diện chương trình đơn giản và thân thiện với người sử dụng, giúp phát triển code mới.
• Nó đưa ra cấu trúc modul, giúp triển khai dễ dàng các giao thức truyền thông mới. Do đó, các giao thức mới không yêu cầu một kiến thức đầy đủ về
các phần khác của code. Các tầng khác nhau và các giao thức có thể giao tiếp bởi chính các bản tin. Vì vậy, yêu cầu người lập trình nắm rõ các định dạng của những bản tin đó.
Mai Văn Linh-ĐTVT2-CH2009 75
• Code OMNET++ đặc biệt hiệu quả, nó là nguyên nhân làm giảm thời gian mô phỏng khi so sánh với các công cụ mô phỏng khác (như NS-2).
• OMNET++ được hỗ trợ rộng rãi trên mạng internet do sự mở rộng của cộng
đồng OMNET++.
4.1.1 Ứng dụng
OMNeT++ là một công cụ mô phỏng các hoạt động mạng bằng các module
được thiết kế hướng đối tượng. OMNeT++ thường được sử dụng trong các ứng dụng chủ yếu như:
• Mô hình hoạt động của các mạng thông tin • Mô hình giao thức
• Mô hình hóa các mạng kiểu hàng đợi
• Mô hình hóa các hệ thống đa bộ vi xử lý (multiprocessor) hoặc các hệ thống phần cứng theo các mô hình phân tán khác (distributed hardware systems) • Đánh giá kiến trúc phần cứng
• Đánh giá hiệu quả hoạt động của các hệ thống phức tạp…
4.1.2 Chạy các ứng dụng trong OMNeT++
Một hệ thống mạng mô phỏng trong OMNeT++ gồm các thành phần sau:
• Các file.ned mô tả topo mạng.
• Các file có phần mở rộng .msg chứa khai báo các message.
• Các file C++ (có phần mở rộng là .cc trong UNIX hoặc .cpp trong Windows) Quá trình xây dựng một chương trình mô phỏng
• Đầu tiên, dịch các file NED và các file message thành C++, sử dụng NED compiler (nedc) và message compiler (opp_msgc).
• Quá trình tiếp theo giống như biên dịch mã nguồn C/C++
9 Trong Linux: các file .cc → file.o.
9 Trong Windows: các file .cpp → file .obj.
9 Sau đó tất cả các file trên sẽđược liên kết (link) với các thư viện cần thiết để tạo thành file .exe.
Mai Văn Linh-ĐTVT2-CH2009 76
Cụ thể ta cần phải liên kết với các thư viện sau:
• Phần nhân mô phỏng được gọi là sim_std (như các file libsim_std.a, sim_std.lib, etc)
• Giao diện người dùng: cung cấp thư viện môi trường (file libenvir.a, etc) và các tiện ích tkenv và cmdenv (libtkenv.a, libcmdenv.a, etc). Các file .o (hoặc .obj) phải được liên kết tới thư viện môi trường cùng với hoặc tkenv hoặc cmdenv.
Hình 4.1 Lược đồ xây dựng và chạy một chương trình mô phỏng OMNeT++
*.ned là các file mô tả topo mạng cũng như cấu trúc của các modul, nó sử dụng ngôn ngữ NED (Nework Description ), là ngôn ngữ chuyên biệt dùng riêng cho OMNET++. Sự phát triển tiếp theo của NED là GNED (Graphic NED) làm cho việc mô tả topo mạng được trực quan hơn bằng cách dùng các công cụđồ hoạđể mô tả.
Mai Văn Linh-ĐTVT2-CH2009 77
Các file ned sau đó được NEDC (NED compiler) dich sang code C++ để mô tả cấu trúc mạng sang ngôn ngữ C++ dưới dạng file *_.cc.
Các file xử lý của các simple moduls là phần cốt lõi khi viết chương trình mô phỏng và được viết bằng ngôn ngữ C++ bằng cách kế thừa các lớp có sẵn của OMNET++, người viết triển khai các hoạt động của mạng nhưđịnh tuyến, xử lí gói tin đến và đi, xác định hành vi của các simple modul được mô tả trong *.ned khi có sự kiện xảy ra với nó….
Thư viện lõi của chương trình mô phỏng được cung cấp bởi OMNET++, nó bao gồm rất nhiều các lớp và các hàm có sẵn phục vụ cho chương trình mô phỏng như các lớp cSimplemodul, cMessage..., các hàm ngẫu nhiên… Thư viện giao diện người dùng cung cấp giao diện cho chương trình mô phỏng. OMNET++ với các phiên bản gần đây sử dụng hai kiểu giao diện là giao diện dòng lệnh cmd (command) và giao diện đồ hoạ dựa trên tcl/tk. Giao diện đồ hoạ rất trực quan nên
được ưa dùng hơn. Sau khi dịch và liên kết ta được một chương trình mô phỏng dựa trên nền OMNET++.
File omnetpp.ini để khởi động các giá trị cần thiết. omnetpp.ini do người lập trình viết, nó rất quan trọng để chạy một chương trình mô phỏng với các tham số được thay đổi để có được kết quả thống kê mong muốn.
Cuối cùng là các file kết quả bao bồm file*.vec là các file vector, hay file*.sca là các file scalar. Luận văn sử dụng file scalar để thể hiện kết quả đầu ra, dùng file*.awk viết code xử lý đầu ra và vẽđồ thị bằng Gnuplot.
• Code OMNET++ đặc biệt hiệu quả, nó là nguyên nhân làm giảm thời gian mô phỏng khi so sánh với các công cụ mô phỏng khác (như NS-2).
• OMNET++ được hỗ trợ rộng rãi trên mạng internet do sự mở rộng của cộng
đồng OMNET++.
Hiện nay, các thư viện của OMNET++ chứa chồng giao thức UDP/TCP/IP cũng như một số loại giao diện MAC (Media Access Control) lớp 2, ví dụ
Mai Văn Linh-ĐTVT2-CH2009 78
4.2 KẾT QUẢ MÔ PHỎNG
4.2.1 Khởi tạo mô phỏng
Trong tất cả các kịch bản mô phỏng, luận văn sử dụng mô hình di chuyển Random Waypoint với các thông số sau:
• Kích cỡ môi trường mô phỏng: luận văn sử dung khu vực mô phỏng 500x500m cho toàn bộ kịch bản mô phỏng.
• Phạm vi truyền dẫn: 250m.
• Các giao thức mô phỏng: DYMO, DSR, AODV, OLSR.
4.2.2 Một số hình ảnh mô phỏng
Sau đây là tuần tự các quá trình Khám phá tuyến và gửi gói tin của giao thức
định tuyến DYMO: Khám phá tuyến bằng cách gửi RREQ, gửi bản tin RREP, gửi gói tin dữ liệu, và gửi ACK báo nhận.
Trước khi gửi gói tin tới một đích, môt nút sẽ kiểm tra trong Bộ nhớ tuyến của nó có tuyến tới đích đó hay không. Nếu không có, nó sẽ gửi bản tin RREQ để Khám phá tuyến (hình 4.4).
Mai Văn Linh-ĐTVT2-CH2009 79
Hình 4.2 Quá trình gửi bản tin RREQ của DYMO
Các nút nhận được bản tin RREQ, nếu nút đó là đích hoặc biết môt tuyến
Mai Văn Linh-ĐTVT2-CH2009 80
Hình 4.3 Quá trình gửi bản tin RREP của DYMO
Như vậy, nút nguồn đã có một tuyến tới đích và nó thực hiện quá trình gửi gói tin dữ liệu hình (hình 4.6).
Mai Văn Linh-ĐTVT2-CH2009 81
Hình 4.4 Quá trình gửi gói tin dữ liệu của DYMO
Nút đích nhận được gói tin dữ liệu, nó sẽ gửi ACK tới nút nguồn để xác nhận nó đã nhận được gói từ nút nguồn (hình 4.7).
Mai Văn Linh-ĐTVT2-CH2009 82
Mai Văn Linh-ĐTVT2-CH2009 83
4.2.3 Đánh giá tỉ lệ nhận gói theo thời gian dừng
Bảng 4.1 Bảng giá trị thông sốđánh giá theo thời gian dừng
Thông số Giá trị
Phạm vi truyền dẫn 250m Băng thông 54Mbps (802.11g)
Thời gian mô phỏng 300s Kích thước môi trường mô phỏng 500m x 500m Loại lưu lượng CBR
Tốc độ gửi gói tin 4packet/s Kích thước gói tin 512 bytes
Số nút 25
Số nguồn gửi gói tin 5
Tốc độ tối đa 20m/s
Các giao thức mô phỏng DYMO, DSR, AODV, OLSR • Vận tốc tối đa speedmax: ở bất kỳ thời điểm nào vận tốc có giá trị ngẫu nhiên
trong khoảng [0, speedmax].
• Ởđây luận văn đưa ra 4 giá trị cần đo cho thời gian tạm dừng của nút mạng: 0, 100, 200, 300. Thời gian tạm dừng bằng 0, nút mạng chuyển động liên tục; thời gian tạm dừng bằng 300, nút mạng coi như đứng yên (không chuyển
động). Nguồn lưu lượng cần tạo là 5CBR và bắt đầu ở các thời điểm khác nhau.
Mức độ di chuyển của nút mang ảnh hưởng rất nhiều đến tỉ lệ gói nhận. Khi mức độ di chuyển các nút mạng càng cao, topo mạng thay đổi nhanh thì tỉ lệ gói nhận lại càng giảm (hình 4.8).
Mai Văn Linh-ĐTVT2-CH2009 84
Hình 4.6 Đánh giá tỷ lệ gói nhận được theo thời gian dừng
• Tỉ lệ gói nhận của DYMO là cao nhất do DYMO là giao thức định tuyến hoạt động theo yêu cầu hoặc theo bảng điều khiển, là sự tối ưu của DSR và AODV. Khi các nút mạng chuyển động liên tục, tỉ lệ gói của DYMO vẫn rất cao - 90%.
• OLSR có tỉ lệ gói cao hơn AODV và DSR vì OLSR có thểđáp ứng khi topo mạng thay đổi, nó cho phép Khám phá tuyến nhanh chóng tới các hàng xóm và các MPR của chúng để thiết lập kết nối với các nút khác.
• Khi mức độ di chuyển tăng (giảm pausetime) thì tỉ lệ gói nhận ở 3 giao thức DSR, AODV, OLSR giảm rõ rệt với mức giảm tương đương nhau.Trong khi đó thì DYMO thể hiện được sựổn định của mình khi có tỷ lệ gói nhận khá cao (trên 90% trong tất cả các trường hợp). OLSR có tỉ lệ gói cao hơn AODV và DSR vì OLSR có thể đáp ứng khi topo mạng thay đổi, nó cho phép Khám phá tuyến nhanh chóng tới các hàng xóm và các MPR của chúng để thiết lập kết nối với các nút khác.
Mai Văn Linh-ĐTVT2-CH2009 85
Bảng 4.2 Bảng giá trị các thông sốđánh giá theo tốc độ phát gói
Thông số Giá trị
Phạm vi truyền dẫn 250m Băng thông 54Mbps (802.11g)
Thời gian mô phỏng 250s Kích thước môi trường mô phỏng 500m x 500m
Loại lưu lượng CBR
Tốc độ phát gói 4packet/s, 8packets/s, 12packets/s Kích thước gói tin 512 bytes
Số nút 20
Số nguồn gửi gói tin 5
Thời gian dừng 5s
Các giao thức mô phỏng DYMO, DSR, AODV, OLSR
Tốc độ di chuyển của các nút thay đổi với các giá trị: 0m/s, 0.5m/s, 1m/s,1.5m/s, 2m/s, 2.5m/s, 3m/s, 3.5m/s.