THỬ NGHIỆM THÔNG QUA MÔ PHỎNG VÀ ĐÁNH GIÁ KẾT QUẢ

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Broadcast xác suất cho kỹ thuật Flooding trong mạng Manet Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 46)

THỬ NGHIỆM THÔNG QUA MÔ PHỎNG VÀ ĐÁNH GIÁ KẾT QUẢ

3.1. Giới thiệu về thử nghiệm thông qua mô phỏng

Chúng ta đều biết rằng, việc xây dựng, phát triển một ứng dụng, một giao thức mới trên một mạng bao giờ cũng cần phải có giai đoạn thử nghiệm và đánh giá kết quả trước khi có thể đem ra ứng dụng trong thực tế. Thông thường, nếu các phòng thí nghiệm có đủ điều kiện về thiết bị, tài chính thì các thử nghiệm có thể được thực hiện ngay trên những mạng thực do các thiết bị mạng thực tạo nên, qua đó, kết quả đo được sẽ có độ tin cậy cao. Tuy nhiên, không phải lúc nào điều này cũng có thể thực hiện được, ví dụ như khi cần một mạng máy tính cần đến hàng nghìn máy tính để thực hiện một giao thức hoặc một mạng không dây cần đến một không gian rộng lớn với rất nhiều các thiết bị không dây tham gia… Trong các trường hợp này, biện pháp được hầu hết các nhà nghiên cứu lựa chọn là triển khai thử nghiệm trên các công cụ mô phỏng. Lựa chọn này sẽ giúp cho các nhà nghiên cứu đơn giản hóa việc thử nghiệm, tiết kiệm được nhiều công sức cũng như tài chính. Nhưng ngược lại với các ưu điểm trên, độ chính xác của các kết quả đo được lại phụ thuộc nhiều vào thiết kế của các công cụ mô phỏng. Tuy vậy, các công cụ mô phỏng cho đến thời điểm hiện nay đều đã phát triển đến độ chính xác rất cao, khiến cho các kết quả đo được thông qua mô phỏng khá gần với các kết quả đo được khi triển khai trong thực tế.

Các nghiên cứu trên mạng MANET hiện nay đều gặp phải các vấn đề khó khăn như vừa được nêu ở trên. Chúng ta đều biết, một mạng MANET là một tập hợp của các thiết bị tính toán di động với số lượng từ vài chục đến vài nghìn và trải rộng trên một phạm vi có thể lên đến hàng km2. Rõ ràng là việc thiết lập được một mạng MANET thực sự như vậy là không hề đơn giản. Ngoài ra, việc dò lỗi cũng như điều kiện thông kê về kết quả cũng rất phức tạp và khó chịu. Với những lý do trên, hầu hết các nghiên cứu liên quan đến mạng MANET đều được các tác giả của chúng tiến hành thử nghiệm trên các công cụ mô phỏng mạng. Hiện nay, rất nhiều kết quả nghiên cứu có được thông qua mô phỏng đã được công bố trên các tạp chí khoa học có uy tín lớn.

Công việc thiết kế và cài đặt các thử nghiệm mô phỏng đều theo một số bước chung như sau:

 Lựa chọn công cụ mô phỏng: công cụ hỗ trợ tốt nhất cho việc thiết kế mô hình mạng (cấu hình và số lượng thiết bị có thể hỗ trợ, độ rộng của môi

trường…), giao thức mà mình nghiên cứu (đã có sẵn hoặc khả năng thiết kế mới dễ dàng…) và độ chính xác của các mô phỏng.

 Thiết kế mô hình mạng và giao thức cần thử nghiệm: cấu hình mạng (hình trạng, thiết bị tham gia…), thiết kế giao thức cần thử nghiệm trên công cụ đã chọn, xây dựng mô hình biểu diễn dữ liệu đầu ra.

 Xây dựng các kịch bản thử nghiệm và tiến hành mô phỏng các kịch bản.  Phân tích kết quả và đưa ra nhận xét đánh giá.

Việc tiến hành thử nghiệm kỹ thuật flooding xác suất mà luận văn nghiên cứu cũng không nằm ngoài xu hướng chung của các nghiên cứu khác, đó là được thực hiện trên công cụ mô phỏng. Tiến trình xây dựng cài đặt thử nghiệm mô phỏng cũng đã được tác giả thực hiện theo các bước vừa nêu trên và được trình bày trong các phần sau.

3.2. Lựa chọn công cụ mô phỏng

3.2.1. Một số công cụ mô phỏng phổ biến

Hiện nay trên thế giới có khá nhiều các công cụ mô phỏng cho phép những người nghiên cứu triển khai các thử nghiệm mạng không dây của mình và ba công cụ phổ biến được dùng nhiều nhất hiện nay là OPNET [6], NS-2 [7] và GloMoSim [8]. Cả ba công cụ này đều cung cấp các môi trường mô phỏng nâng cao cho phép kiểm tra và gỡ lỗi hầu hết các giao thức mạng, bao gồm cả các ứng dụng mạng không dây. Sau đây là một số nét cơ bản về ba công cụ này.

Hình 10. Tỷ lệ sử dụng một số công cụ mô phỏng [11]

OPNET Modeler là một công cụ mô phỏng mạng rất mạnh được xây dựng bởi OPNET. Công cụ này có thể mô phỏng tất cả các loại mạng hữu tuyến, đồng thời cung cấp các cài đặt lớp MAC tương thích với chuẩn 802.11. Mặc dù mục đích của OPNET là giúp cho các doanh nghiệp chuẩn đoán hoặc cải tổ lại hệ thống mạng của mình, tuy

nhiên công cụ này cũng cho phép phát triển các giao thức mới bằng cách sử dụng những thành phần sẵn có. Hầu hết các bước triển khai bằng OPNET đều được thực hiện thông qua một giao diện người dùng đồ họa phân cấp. Hiện nay đây là công cụ được ưa chuộng nhất trên thị trường các phần mềm thương mại mô phỏng mạng.

NS là phần mềm mã nguồn mở mô phỏng mạng sự kiện rời rạc được phát triển từ năm 1989 dưới dạng một biến thể của phần mềm mô phỏng mạng REAL [9] và NS- 2 là phần mềm NS phiên bản 2. Từ năm 1995, sự phát triển của NS đã được hỗ trợ bởi DARPA thông qua dự án VINT tại LBNL, Xerox PARC, UCB, và USC/ISI [46].Ban đầu, phần mềm này chỉ dùng để mô phỏng các mạng hữu tuyến, tuy nhiên sau đó Monarch Group của CMU [13] đã thêm vào NS-2 thành phần mô phỏng mạng không dây cho phép mô phỏng các mạng như MANET hay LAN không dây. Kiến trúc của NS-2 tuân thủ chặt chẽ mô hình OSI. Hầu hết các giao thức dùng cho MANET và các cài đặt lớp MAC tương thích 802.11 đều có trong NS-2. Đây là công cụ mô phỏng rất quen thuộc với các nhà nghiên cứu về mạng.

GloMoSim là một môi trường mô phỏng hỗ trợ rất nhiều kiểu mạng hữu tuyến và không dây, được phát triên bởi phòng thí nghiệm tính toán UCLA [10]. Công cụ này được thiết kế bằng cách sử dụng khả năng mô phỏng sự kiện rời rạc song song được cung cấp bởi ngôn ngữ mô phỏng song song dựa trên C là Parsec [10]. Hiện nay, GloMoSim chỉ hỗ trợ các giao thức dùng cho các mạng hoàn toàn là không dây. Kiến trúc của công cụ này được xây dựng dựa trên cách tiếp cận theo lớp. Các API chuẩn được sử dụng ở giữa các lớp khác nhau. Điều này cho phép sự tích hợp một cách nhanh chóng các mô hình được phát triển trên các lớp khác nhau.

Hiện nay, sự so sánh giữa ưu và nhược điểm cũng như hiệu suất của các công cụ vẫn còn đang được xem xét và đánh giá. Tuy vậy, việc sử dụng các công cụ này đã được nhiều nhà nghiên cứu sử dụng và các kết quả có được thông qua mô phỏng trên các công cụ này đã được đăng trên nhiều tạp chí có uy tín. Trong khuôn khổ và điều kiện của luận văn, tác giả đã chọn NS-2 làm công cụ mô phỏng cho nghiên cứu của mình.

3.2.2. Network simulator 2 (NS-2)

Mã nguồn của NS-2 là sự kết hợp của ngôn ngữ C++, dùng để xây dựng các đối tượng lõi, và ngôn ngữ Otcl dùng để cấu hình và viết các kịch bản mô phỏng. Sự kết hợp này cho phép người sử dụng dung hòa được hai yếu tố là hiệu suất và tính đơn giản trong sử dụng.

Phiên bản NS-2 được sử dụng trong luận văn là NS-2.29 (phát hành năm 2006). Đây là phiên bản được đánh giá là có tính ổn định cao. Ngoài ra, phiên bản này đã

được tích hợp nhiều cải tiến về mô phỏng MANET và các công cụ giúp tạo ra bối cảnh mô phỏng của các cộng tác viên như CMU Monarch Group, LST của học viện ETH Zurich…

Việc xây dựng và thực hiện các kịch bản mô phỏng trong NS-2 sẽ bao gồm 4 bước sau (1) cài đặt giao thức bằng cách thêm các đoạn mã viết trên C++ và Otcl vào mã nguồn cơ sở của NS-2; (2) mô tả tiến trình mô phỏng bằng một kịch bản viết trên Otcl; (3) chạy mô phỏng và (4) phân tích các tệp lưu vết được tạo ra.

Phần sau của luận văn sẽ mô tả cấu hình cài đặt của các mô phỏng, các kết quả đạt được cũng như các đánh giá tương ứng.

3.3. Xây dựng các kịch bản mô phỏng

3.3.1. Một số tham số chung cho các kịch bản

Để có thể đánh giá được chính xác tính hiệu quả của kỹ thuật flooding xác suất, chúng ta sẽ thiết lập một loạt các mô hình mạng MANET từ đơn giản đến phức tạp và xây dựng các kịch bản flooding tương ứng cho các mô hình đó. Trên thực tế, có rất nhiều yếu tố có thể ảnh hưởng đến sự hoạt động của mạng MANET, tuy nhiên, trong mô phỏng chúng ta sẽ chỉ quan tâm đến một số yếu tố có sự ảnh hưởng chủ yếu mà thôi. Các mạng MANET mô phỏng sẽ được xây dựng dựa trên các yếu tố sau đây.

 Kích thước mạng: số lượng các thiết bị không dây tham gia vào mạng. Số lượng thiết bị sẽ là từ vài đến hàng trăm tùy theo kích thước yêu cầu là nhỏ hay lớn.

 Hình trạng mạng: nói chung các thiết bị mạng (các node) sẽ được đặt trong một khu vực hình vuông và sẽ được phân bố theo hai cách là (1) dạng lưới vuông với các node sẽ được đặt tại các mắt lưới và (2) dạng hỗn tạp với các node sẽ được sắp đặt vị trí một cách ngẫu nhiên.

 Số lượng hàng xóm: đối với các mạng có hình trạng là dạng lưới vuông thì chúng ta sẽ quan tâm đến số lượng hàng xóm của mỗi nút (4 hoặc 8).

 Phạm vi truyền sóng: đối với các mạng có hình trạng là dạng hỗn tạp thì ngoài kích thước và hình trạng mạng, phạm vi truyền sóng cũng cũng là một yếu tố ảnh hưởng đến mật độ mạng.

 Số lượng gói tin được truyền: nếu coi việc thực hiện gửi một gói tin broadcast trong mạng là một lần thử thì chúng ta sẽ thực hiện nhiều lần thử và tính trung bình để có được kết quả tốt nhất.

 Tốc độ di chuyển của các node mạng: có hai trạng thái chuyển động cần quan tâm là đứng im và di động. Các tốc độ được dùng là 0, 5 và 10 m/s. Do mục đích của thử nghiệm là tìm ra được giá trị xấp xỉ của xác suất broadcast của mỗi node (pc) nên mỗi kịch bản sẽ được thử lần lượt với các giá trị của pc từ 0 đến 1. Số lượng các giá trị pc trong đoạn [0,1] sẽ là 10 hoặc 200 tùy vào kịch bản.

Sau đây là một số mô hình và kịch bản mà tác giả sẽ sử dụng để mô phỏng.

3.3.2. Flooding xác suất trong điều kiện mạng lý tưởng

Mô hình mạng được xây dựng trong điều kiện lý tưởng sẽ có các đặc điểm sau đây:

 Hình trạng mạng: theo mô hình lưới vuông có kích thước là 5x5, 10x10 và 15x15.

 Kích thước mạng: tương ứng với hình trạng mạng nêu trên thì số lượng các node là 25, 100 và 225.

 Số lượng hàng xóm: chúng ta sẽ chỉ nghiên cứu hai trường hợp là 4 và 8 láng giềng.

 Tần suất truyền phát gói tin: 5 gói tin/s với thời gian mô phỏng là 30 giây (tổng số lượng gói tin broadcast được tạo ra là 150).

 Tốc độ di chuyển: 0 m/s để đảm bảo hình trạng mạng và số lượng hàng xóm.

 Số lượng giá trị thử pc trong đoạn [0,1] sẽ là 200.

Ngoài ra, trong kịch bản này chúng ta sẽ không tính đến sự xung đột gói tin. Mục đích của kịch bản này là hy vọng đưa ra được các kết quả tốt nhất đối với kỹ thuật flooding theo xác suất.

3.3.3. Flooding xác suất trong điều kiện mạng thực tế

Mô hình mạng được xây dựng trong điều kiện thực tế có các đặc điểm sau đây:  Hình trạng mạng: các node trong mạng được phân bố một cách ngẫu nhiên

trong phạm vi lần lượt là 500x500 m2 và 1000x1000 m2.  Kích thước mạng lần lượt là 9, 25 và 100 node.

 Phạm vi truyền sóng của mỗi node trong mạng sẽ thử lần lượt là 100 m và 250 m.

 Đối với các mạng nhỏ có 9 và 25 node chúng ta sẽ thực hiện mô phỏng với tần suất phát broadcast là 20 gói tin/s; còn đối với mạng vừa 100 node sẽ là 5 và 8 gói tin/s.

 Tốc độ di chuyển lần lượt sẽ được thử với mỗi mô hình là 0 và 5 m/s.  Số lượng giá trị thử pc trong đoạn [0,1] sẽ là 10.

Trong các kịch bản này, chúng ta sẽ tính có tính đến sự xung đột khi truyền tin. Tuy vậy, chúng ta vẫn sẽ cố gắng thiết kế sao cho sự xung đột này là nhỏ nhất có thể.

3.3.4. Cài đặt kỹ thuật flooding theo xác suất trong NS-2

Như đã giới thiệu, phần mềm mô phỏng NS-2 là sự kết hợp của hai thành phần được viết trên hai ngôn ngữ là C++ và Otcl. Để có thể cài đặt được kỹ thuật này trong NS-2, một số công việc chính đã được thực hiện như sau:

(1). Thiết kế và cài đặt một lớp agent mới (FloodAgent) thừa kế từ lớp Agent đã có sẵn trong NS-2. Mã cài đặt (flood.h và flood.cc) được đặt trong thư mục ~/ns- 2.29/flood. Hai phương thức chủ yếu cần quan tâm là recv(packet*, handler*) (nhận và xử lý gói tin) và sentBroadcastPacket(packet*) (gửi gói tin broadcast).

(2). Cài đặt hai phương thức trong flood.cc:

sentBroadcastPacket(packet*): phải gán địa chỉ đích là IP_BROADCAST. recv(packet*, handler*): việc xử lý gói tin broadcast nhận được sẽ được cài đặt theo thuật toán sau:

pkt = getPacket(); //Thu nhận gói tin pkt;

If (received(pkt)) //Nếu không phải lần đầu tiên nhận được pkt {

free(pkt); //Hủy bỏ gói tin;

return; //Kết thúc phương thức; }

//Nếu là lần đầu tiên nhận được gói tin pkt

//Ghi nhận ID của gói tin dùng để kiểm tra các gói tin nhận được //tiếp theo có phải là lần đầu tiên không

savePacket(pkt);

If (isFloodingPacket(pkt)) //Nếu là gói tin broadcast {

randP = random(); //Khởi tạo biến ngẫu nhiên xác suất randP; If (randP ≥ fP)

{ //fP là giá trị xác suất ngưỡng dùng để broadcast sentBroadcastPacket(pkt);

}

Else //Không gửi gói tin {

free(pkt); //Hủy gói tin

return; //Kết thúc phương thức }

(3). Viết script mô phỏng bằng Otcl (flood.tcl) để:

- Khởi tạo hình trạng mạng

- Tạo và cấu hình các node sử dụng lớp FloodAgent vừa xây dựng.

- Khởi tạo vị trí và tốc độ di động của các node.

- Lập lịch broadcast gói tin từ node nguồn.

- Khai báo tệp lưu vết kết quả mô phỏng.

Các cài đặt trên mã C++ được biên dịch sang dạng object (flood.o) để NS-2 có thể sử dụng được trong quá trình mô phỏng.

3.4. Kết quả mô phỏng và đánh giá

3.4.1. Một số cấu hình chung khi mô phỏng

Trong điều kiện của luận văn, tất cả các mô phỏng đều tuân theo cấu hình chung sau đây:

 Cấu hình về hình trạng mạng:

o Có dạng mặt phẳng hình vuông, tất cả các node trong mạng nằm trên cùng mặt phẳng này (trục z luôn bằng 0).

o Tọa độ của các node trong mặt phẳng được tính theo đơn vị mét (m).  Cấu hình về các thiết bị di động:

o Cấu hình lớp MAC: chuẩn 802.11b

o Ăng ten: OmniAntenna (sóng radio được phát tỏa theo mọi hướng)

o Thiết bị thu phát sóng ở mức vật lý được cấu hình mô phỏng theo giao diện sóng radio DSSS Lucent WaveLan 914MHz [7].

o Phạm vi truyền sóng sẽ được thực hiện với hai mức chuẩn là 100m và 250m.

o Băng thông 2Mbps.

 Gói tin broadcast: được thiết kế dành riêng cho chương trình mô phỏng.  Tốc độ di chuyển của các node trong mạng được tính theo đơn vị m/s.

Ngoài ra, mọi node trong mạng sẽ thực hiện broadcast theo cùng một xác suất p được thiết lập sẵn cho mỗi lần thử.

3.4.2. Kết quả đầu ra của mô phỏng

Trong tất cả các thử nghiệm, tác giả sẽ đưa ra kết quả dưới dạng chỉ số tỷ lệ thành công được định nghĩa như sau: tỷ lệ thành công SR là tỷ lệ giữa số node trung

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Broadcast xác suất cho kỹ thuật Flooding trong mạng Manet Luận văn ThS Công nghệ thông tin 1 01 10 (Trang 46)

Tải bản đầy đủ (PDF)

(65 trang)