Có hai thông sốđểđánh giá: thông sốđánh giá chất lượng và thông số kịch bản.
3.1.1 Thông sốđánh giá chất lượng
Các thông số này được sử dụng đểđưa ra chính xác những gì xảy ra trong quá trình mô phỏng và cung cấp các thông tin có giá trị về các giao thức định tuyến. Do
đó, nó dành được nhiều sự quan tâm khi nghiên cứu giao thức định tuyến mô phỏng.
3.1.1.1 Tỷ lệ gói nhận được
Định nghĩa: Tỷ lệ gói nhận được RD là tỷ lệ giữa số gói nhận được bởi nút đích (PR) và số gói được gửi đi từ lớp ứng dụng của nút nguồn (PS).
RD = PR /PS (CT 3.1)
Ý nghĩa: giao thức định tuyến hoạt động tốt phải có giá trị RD cao do khả năng tận dụng băng thông vô tuyến là rất quan trọng. Thông số này phản ánh tỷ lệ gói tin bị mất, mức độ hoàn chỉnh và đúng đắn của giao thức định tuyến.
3.1.1.2 Trễ từđầu cuối đến đầu cuối
Định nghĩa: Trễ từđầu cuối đến đầu cuối là thời gian mà gói tin truyền trên mạng từ nút nguồn đến nút đích. Nó bao gồm nhiều giá trị nhỏ trên mạng: trễ bộ đệm, trễ chuyển tiếp gói tin ở nút trung gian, trễ truyền dẫn và thời gian để truyền lại gói tin (trong trường hợp gói tin bị mất). Có thể tính thời gian trễ theo hai cách:
Mai Văn Linh-ĐTVT2-CH2009 69
Tdelay = Trev – T send (CT 3.2)
Hoặc: Tdelay = T buffer + Trelay + Tprop + Tresend (CT 3.3)
Ý nghĩa: Trong mạng gói vô tuyến không có QoS thì giá trị trễ phụ thuộc vào giao thức định tuyến. Một thông số quan trọng là thời gian trễ trong bộ đệm, tức là gói tin được lưu giữ trong bộ đệm khi chưa có đường định tuyến đến đích trước khi bị hủy. Nếu như nút mạng đặt thời gian lớn thì ít gói tin trên mạng bị hủy, nhưng cũng có nghĩa trễ trung bình trong mạng cũng tăng lên. Và người thiết kế hệ thống sẽ quyết định: tỷ lệ gói hủy bỏ thấp hay thời gian trễ, điều này liên quan đến giá trị
trễđầu cuối đến đầu cuối.
3.1.1.3 Thông lượng từđầu cuối đến đầu cuối
Định nghĩa: thông lượng là tỉ lệ giữa số gói tin dữ liệu được truyền trên một
đơn vị thời gian.
Ý nghĩa: Khi băng thông sẵn có trên mạng đã biết, thì trong mô phỏng băng thông thực sự có được là bao nhiêu? Thông số thông lượng T sẽ cho biết băng thông thực sự khi mô phỏng và có thể cho tháy sự hiệu quả của giao thức định tuyến ở
mức độ nào. Khi thông lượng trung bình cao nghĩa là băng thông dành cho định tuyến là ít, khi đó giao thức định tuyến hoạt động tốt.
3.1.1.4 Phần tải thông tin định tuyến
Định nghĩa: là tỉ lệ giữa gói tin định tuyến được gửi đi với số gói dữ liệu được gửi tới đích.
Ý nghĩa: Tải thông tin định tuyến là một thông số quan trọng với mạng Ad hoc, nó cũng cho biết hiệu năng sử dụng băng thông của giao thức định tuyến: bao nhiêu băng thông được sử dụng cho bản tin định tuyến, bao nhiêu băng thông được sử dụng cho các gói tin dữ liệu. Phần tải định tuyến trong giao thức định tuyến theo yêu cầu thông thường là lớn do nó phải gửi bản tin cập nhật định kỳ trên toàn mạng. Trường hợp lý tưởng là không có bản tin định tuyến, chỉ có gói tin dữ liệu được truyền trên mạng; tuy nhiên, nếu không có giao thức định tuyến thì không thể triển khai thực tế.
Mai Văn Linh-ĐTVT2-CH2009 70
Các thông số kịch bản được tính toán từ dữ liệu đầu vào của mô phỏng, hoặc có thể là biến đầu vào (ví dụ như thời gian tạm dừng). Nó không phụ thuộc và giao thức định tuyến hoặc quá trình mô phỏng cũng như các thông số đánh giá chất lượng mà ta nghiên cứu ở trên. Nó cung cấp sự so sánh thật nhất giữa các giao thức.
3.1.2.1 Thông số di chuyển
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