Nghiên cứu phát triển phần mềm trong thiết bị định tuyến không dây sử dụng công nghệ thông tin di động ad hoc

206 1 0
Nghiên cứu phát triển phần mềm trong thiết bị định tuyến không dây sử dụng công nghệ thông tin di động ad hoc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ỦY BAN NHÂN DÂN TP.HCM SỞ KHOA HỌC VÀ CÔNG NGHỆ ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐH CNTT BÁO CÁO NGHIỆM THU NGHIÊN CỨU PHÁT TRIỂN PHẦN MỀM TRONG THIẾT BỊ ĐỊNH TUYẾN KHÔNG DÂY SỬ DỤNG CÔNG NGHỆ THÔNG TIN DI ĐỘNG AD-HOC CHỦ NHIỆM ĐỀ TÀI: LÊ TRUNG QUÂN THÀNH PHỐ HỒ CHÍ MINH THÁNG _06/2017 _ i TÓM TẮT NỘI DUNG NGHIÊN CỨU Đề tài tập trung vào việc phát triển phần mềm xây dựng thiết bị định tuyến không dây thực sử dụng công nghệ di động ad-hoc, cấu thành từ máy tính để bàn PC hay máy tính xách tay, có gắn card mạng khơng dây, chạy tảng hệ điều hành mã nguồn mở Linux Mục tiêu tạo thiết bị định tuyến không dây ad-hoc, làm chủ công nghệ để triển khai ứng dụng ad-hoc Việt Nam với giá thành hợp lý Trong phạm vi đề tài (06/2015-06/2017), tập trung vào nội dung sau thiết bị định tuyến: i) giao thức tìm đường mạng ad-hoc phiên thực Linux, ii) kỹ thuật tích hợp mạng MANETs với Internet, iii) chế cập nhật bảng tìm đường chuyển tiếp gói tin nhân (kernel) hệ điều hành Linux, iv) trình điều khiển thiết bị cho card mạng không dây, v) xây dựng kịch thử nghiệm thực tế chạy thử nghiệm, đo đạc kết khuôn viên ĐH CNTT, phuc vụ việc xây dựng sở liệu MANETs Một cách cụ thể hơn, tập trung phân tích mã nguồn mở Linux phiên thực giao thức tìm đường aodv-uu (trình aodvd), olsr-unik (trình olsrd), luồng gọi hàm để cập nhật bảng tìm đường FIB nhân Linux, trình điều khiển thiết bị ath5k cho card mạng khơng dây wlan sử dụng atheros chipset, qua trình bày cụ thể vấn đề tích hợp giao thức tìm đường, tích hợp trình điều khiển thiết bị vào nhân hệ điều hành Linux, phân tích dòng gởi (transmission path), dòng nhận (reception path), chuyển tiếp (forwarding) gói tin qua thiết bị định tuyến Quá trình cài đặt, cấu hình mạng thực sử dụng để kiểm tra kết nối multihop mạng ad-hoc, xác thực tính đắn việc phân tích mã nguồn chúng tơi Trong thời gian thực đề tài, đề xuất kiến trúc phần mềm thiết bị định tuyến, tích hợp phần mềm cần thiết để thực kiến trúc, tiến hành đánh giá thực nghiệm hệ thống mạng MANETs testbed kịch truyền nhận liệu mạng MANETs (standalone MANETs), mạng MANETs Internet (Internetworking) Môi trường triển khai đánh giá thử nghiệm khuôn viên Trường ĐH CNTT, indoor outdoor Đối với cộng đồng mã nguồn mở (open-source community), chúng tơi có đóng góp 02 phiên phần mềm định tuyến ad-hoc: i) chuyển phần mềm đính tuyến aodvd làm việc Linux kernel 2.4.x-2.6.x sang Linux kernel 3.13; ii) tích hợp phần aodvd vào phần mềm định tuyến quagga_zebra Về kết quả, đề tài đạt 100% kết đăng ký đề tài Cụ thể, công bố khoa học, chúng tơi có 03 báo xuất Hội nghị quốc tế uy tín (01 hội nghị ACM SoICT 2016, 01 hội nghị IEEE ATC 2016, 01 hội nghị Springer Iniscom 2017 tới) Về đào tạo, hướng dẫn 01 sinh viên Cao học bảo vệ thành công Luận Văn Tốt Nghiệp với nội dung liên quan đến đề tài Ngoài ra, 06 sinh viên Đại học bảo vệ Luận Văn Tốt Nghiệp thành công năm 2016/2017 i SUMMARY OF RESEARCH CONTENT This project concentrates on the software development and implementation of wireless ad-hoc router used the mobile ad-hoc network technologies, built from PC/laptops attached wireless cards, and used the open-source Linux platform Our objective is to be able to create the wireless ad-hoc routers and to deploy ad-hoc applications in Vietnam at the reasonable cost In the scope of this project (06/2015-06/2017), we focus on the following components of the wireless ad-hoc router: i) ad-hoc routing protocols and their implementations in Linux, ii) techniques for the integration of MANETs with the Internet, iii) routing updates and packet forwarding in the Linux kernel, and iv) device drivers for wireless cards, and v) build the real-time testing scenarios and measure the numerical data over the UiT Campus, to be served as our MANETs datasets In particular, we have focused on analyzing the open-source code on the Linux platform the implementation versions of ad-hoc routing protocol aodv-uu (aodvd daemon), olsr-unik (olsrd daemon), flows of function calls in updating routes into the routing tables (FIB) of Linux kernel, and ath5k device driver for wlan cards using Atheros chipsets, to understand how to integrate ad-hoc routing protocols and device drivers into the Linux kernel, as well as to analyze transmission path, reception path, and forwarding path of packets via the wireless ad-hoc router Installation process, real network topologíe are used to test the multihop connections in ad-hoc networks, as well as for the verification of the correctness of our open-source code analysis Also in this project, we have carried out and finished all the registered work/modules In particular, we have designed the software architecture of the wireless ad-hoc router, together with the required packages for the integration Different real-time scenarios to be deployed over the real MANETs tesbed have also built for the performance evaluation of transmission/reception data either in standalone MANETs, or in the internetworking MANETs with the Internet, over the UiT Campus, both indoor and outdoor enrivonment To the open-source community, we have contribute two software versions of ad-hoc routing daemons: i) port the aodvd routing software worked on Linux kernel 2.4.x-2.6.x to kernel 3.13; and ii) integrate partly aodvd software into the quagga/zebra routing suites This project has achieved 100% the registered results in this project In particular, there are 03 published papers in the proceedings of well-known international conferences (one published in the ACM SoICT‘2016, one published in the IEEE ATC‘2016, and one will be published in Springer Iniscom 2017) Additionally, we have also supervised successfully 01 Master students doing and defending their Graduate Theses in 2016 with contents related to those of this project Finally, 06 under-graduate students have successfully defensed and got their Bachelor of Engineering degree in 2016/2017 ii MỤC LỤC PHẦN MỞ ĐẦU - CHƯƠNG I: TỔNG QUAN TÀI LIỆU - 12 CHƯƠNG II: NỘI DUNG NGHIÊN CỨU - 13 2.1 Nội dung 1: Công nghệ MANETs vấn đề định tuyến - 13 2.1.1 Công nghệ mạng thông tin di động ad-hoc MANETs - 13 2.1.2 Các giao thức định tuyến mạng MANETs - 13 2.1.2.1 Giao Thức Tìm Đường Theo Yêu Cầu AODV - 14 2.1.2.2 Giao Thức Tìm Đường Theo Bảng OLSR - 17 2.2 Nội dung 2: Vấn đề giải pháp tích hợp MANETs với Internet - 22 2.2.1 Các chức quản lý tính di động mạng MANET - 24 2.2.1.1 Xác định vị trí node - 24 2.1.1.2 Khám phá lựa chọn cổng Internet (Internet Gateway Discovery/Selection)- 25 2.1.1.3 Chiến lược Internet Gateway Forwarding - 26 2.2.2 Các vấn đề giải pháp quản lý tính di động MANET - 27 2.2.2.1 Vấn đề với default route forwarding - 28 2.2.2.2 Giải pháp với đefault route forwarding - 30 2.2.2.3 Giải pháp đường hầm (tunneling) - 32 2.3 Nội dung 3: Kỹ thuật cập nhật định tuyến nhân Linux - 33 2.3.1 Nguồn cập nhật thông tin bảng tìm đường Linux - 33 2.3.2 Cơ chế tìm đường thực Linux - 35 2.3.2.1 Các cấu trúc liệu (Main data structures) - 35 2.3.2.2 Quá trình khởi động hệ thống tìm đường (Routing subsystem initialization) - 37 2.3.2.3 Cấu trúc bảng tìm đường nhân hệ điều hành Linux - 40 2.4 Nội dung 4: Trình điều khiển thiết bị Atheros ath5k - 51 2.4.1 ath5k MAC controller trình khởi động - 51 2.4.2 Cấu trúc trình điều khiển thiết bị ath5k - 54 CHƯƠNG III: KẾT QUẢ VÀ THẢO LUẬN - 59 3.1 Nội dung 1: Công nghệ MANETs vấn đề định tuyến - 59 3.1.1 Cấu trúc AODV-UU - 59 3.1.2 Cấu trúc OLSR-UniK - 64 3.1.3 Kiểm thử kết nối multihop với AODV-UU - 67 3.1.4 Kiểm thử kết nối multihop với OLSR-UniK - 71 3.2 Nội dung 2: Vấn đề giải pháp tích hợp MANETs với Internet - 77 3.2.1 Kết nối Internet sử dụng giao thức định tuyến chủ động (OLSR) - 77 3.2.1.1 Kết nối Internet với lưu lượng gửi từ MANET - 78 3.2.1.2 Kết nối Internet với lưu lượng đến từ Internet - 78 3.2.1.3 Dynamic Internet Gateway Plugin OLSR - 79 3.2.1.4 Kiểm tra hoạt động Internet Access OLSR - 81 3.2.2 Kết nối Internet sử dụng giao thức định tuyến theo yêu cầu AODV - 82 3.2.2.1 Các luồng gọi hàm - 85 3.2.2.2 Kiểm tra hoạt động Internet Access AODV - 97 3.3 Nội dung 3: Kỹ thuật cập nhật định tuyến nhân Linux - 99 3.4 Nội dung 4: Trình điều khiển thiết bị Atheros ath5k - 100 3.4.1 Cấu trúc trình thiết bị sử dụng - 100 3.4.2 Kiểm tra hoạt động trình điều khiển ath5k - 100 3.5 Nội dung 5: Bộ phần mềm nhúng Quagga giao tiếp Zebra trình định tuyến adhoc linux kernel-FIB - 104 iii 3.5.1 Khái quát Quagga - 104 3.5.2 Các thư viện Quagga - 105 3.5.3 Giao thức zebra - 122 3.5.4 Trình zebra daemon - 126 3.6 Nội dung 6: Kiến trúc phần mềm thiết bị tìm đường khơng dây ad-hoc - 131 3.6.1 Kiến trúc phần mềm thiết bị đề xuất - 131 3.6.2 Giải pháp tích hợp trình olsrd vào phần mềm Quagga - 132 3.6.2.1 Dòng liệu OLSR - 132 3.6.2.2 Xử lý tin điều khiển - 134 3.6.2.3 Khởi tạo tập chuyển tiếp đa điểm - 147 3.6.2.4 Khởi tạo tin điều khiển - 150 3.6.2.5 Tính tốn bảng định tuyến - 156 3.6.2.6 Cập nhật bảng định tuyến Kernel - 160 3.7 Nội dung 7-8: Hiện thực giải pháp xây dựng mạng thử nghiệm MANET testbed kịch phục vụ đo đạc số liệu, đánh giá hệ thống - 161 3.7.1 Môi trường kiểm tra - 161 3.7.2 Các thông số hiệu suất công cụ dùng đề đánh giá hiệu - 162 3.7.3 Xây dựng ngữ cảnh đánh giá hiệu - 165 3.7.3.1 Standalone ad-hoc networks - 165 3.7.3.2 Internetworking - 167 3.8 Nội dung 9: Phân tích đánh giá hiệu - 169 3.8.1 Các kịch mạng standalone MANETs - 169 3.8.1.1 2-hop chain standalone manets - 169 3.8.1.2 3-hop chain standalone manets - 172 3.8.1.3 2-hop mesh standalone manets - 175 3.8.2 Các kịch liên mạng (Internetworking) - 179 3.8.2.1 2-hop chain internetworking - 179 3.8.2.2 3-hop chain internetworking - 184 3.8.2.3 2-hop tree internetworking - 190 3.8.3 Đánh giá mức độ sử dụng RAM CPU hai phiên thực - 196 3.8.4 Nhận xét - 197 CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ NGHỊ - 199 TÀI LIỆU THAM KHẢO - 201 - iv DANH SÁCH CÁC CHỮ VIẾT TẮT VIẾT TẮT FIB THUẬT NGỮ TIẾNG VIẾT Forwarding Information Base (Bảng chuyển tiếp gói tin) IGW Internet Gateway (Cổng Internet) MANETs Mobile Ad-Hoc Networks (Mạng thông tin di động adhoc) NAT Network Address Translation (Dịch địa mạng) -1- DANH SÁCH BẢNG SỐ TÊN BẢNG SỐ LIỆU TRANG Bảng Danh sách cấu trúc liệu, files thư mục mã 37 nguồn Linux tham khảo Bảng Các cờ cho tác vụ điều khiển fn_hash_insert() 46 Bảng 3: Danh sách lệnh giao thức Zebra 122 Bảng 4: Loại định tuyến giá trị khoảng cách hành 128 thư viện Zebra Bảng 5: Các thông số hiệu suất phục vụ cho việc đánh giá -2- 162 DANH SÁCH HÌNH Hình Định dạng gói tin RREQ - 15 Hình Ví dụ q trình tìm đường aodv - 16 Hình Ví dụ MPR olsr - 17 Hình Định dạng chung gói tin điều khiển olsr - 18 Hình Trao đổi gói tin HELLO hai nốt láng giềng - 19 Hình Quá trình lựa chọn tập MPR Set - 20 Hình Quá trình trao đổi thơng tin cập nhật bảng tìm đường olsr - 21 Hình Kết nối mạng adhoc internet - 22 Hình Một kịch quản lý tính di động MANET - 23 Hình 10 Các vấn đề Internet Gateway Forwarding Strategies - 27 Hình 11 Ngữ cảnh không thống chuyển tiếp tuyến đường mặc định - 28 Hình 12 Ngữ cảnh 2/3 không thống chuyển tiếp tuyến đường mặc định - 29 Hình 13 Kỹ thuật sử dụng đường hầm (tunneling) - 33 Hình 14 Giao tiếp giao thức bảng tìm đường Linux - 34 Hình 15 Thứ tự gọi hàm trình khởi động chế tìm đường - 38 Hình 16 Cơ chế gọi hàm với fib_netdev_event fib_inetaddr_event - 39 Hình 17 Cấu trúc tổ chức bảng tìm đường Linux - 42 Hình 18 Thứ tự tìm kiếm đường bảng tìm đường - 44 Hình 19 Sơ đồ tác vụ luận lý hàm fn_hash_insert() - 47 Hình 20 Sơ đồ gọi hàm fn_hash_insert() - 48 Hình 21 Sơ đồ luận lý tác vụ hàm fn_hash_delete() - 49 Hình 22 Thao tác bảng tìm đường thơng qua giao tiếp ioctl Netlink - 50 Hình 23 Ví dụ sử dụng lệnh ip route monitor - 51 Hình 24 Các tác vụ trình điều khiển card mạng khơng dây Linux - 53 Hình 25 Cấu hình callbacks trình điều khiển thiết bị ath5k - 54 Hình 26 Các gọi hàm trình điều khiển ath5k để thay đổi mode hoạt động - 55 Hình 27 Dịng nhận gói tin từ trình điều khiển ath5k đến mac80211 - 57 Hình 28 Dịng truyền gói tin từ mac80211 đến trình điều khiển ath5k - 58 Hình 29 Các netfilter hook linux cho giao thức IP - 60 Hình 30 Cơ chế điều khiển gói tin giao thức AODV-UU - 60 Hình 31 Cơ chế xử lý gói điều khiển AODV-UU nhận từ network driver - 61 Hình 32 Cơ chế xử lý gói tin điều khiển AODV-UU gởi - 62 Hình 33 Tổng quan kiến trúc thực olsrd - 64 Hình 35 Cấu trúc plugin để thêm chức olsrd - 67 Hình 36 Mơ hình mạng kiểm tra kết nối multihop dùng aodv-uu - 68 Hình 37 Xác lập ad-hoc mode thiết bị định tuyến dùng iwconfig - 68 Hình 38 Xác lập địa IP thiết bị định tuyến dùng ifconfig - 69 Hình 39 Thêm đường vào bảng định tuyến thiết bị định tuyến A - 69 Hình 40 Kết nối thiết lập hai thiết bị định tuyến kiểm tra A B - 69 Hình 41 Thiết bị định tuyến A loại bỏ đường khỏi bảng tìm đường - 70 Hình 42 Kết nối bị ngắt hai thiết bị định tuyến A B - 70 Hình 43 Các đường thêm vào bảng tìm đường thiết bị định tuyến C - 70 Hình 44 Kết nối multihop thiết bị A B thiết lập lại qua thiết bị C - 71 Hình 45 Thơng tin khai báo essid bên olsrd-adhoc-setup - 72 Hình 46 Thơng tin khai báo net bên olsrd-adhoc-setup - 72 -3- Hình 47 Sơ đồ kiểm tra hoạt động phiên thực - 76 Hình 48 Khởi động olsrd - 76 Hình 49 Kết kiểm tra hoạt động - 77 Hình 50 Mơ hình thực internetworking - 81 Hình 51 Kiểm tra hoạt động Internet Access olsrd - 82 Hình 52 Chồng giao thức sử dụng Internetworking với AODV - 83 Hình 53 Cấu trúc gói tin RREQ mở rộng - 83 Hình 54 Cấu trúc gói tin RREQ mở rộng - 83 Hình 55 Tiến trình giao tiếp với gateway - 84 Hình 56 Gọi hàm route request cho đích đến Internet - 85 Hình 57 Quá trình xử lý node trung gian - 88 Hình 58 Process Route Request cho đích đến Internet - 89 Hình 59 Hàm gọi routing table - 92 Hình 60 Mơ hình sử dụng Gateway truy cập Internet AODV - 97 Hình 61 Truy cập mạng nội Internet node B - 97 Hình 62 Bảng định tuyến kernel node B - 98 Hình 63 Truy cập internet node A - 98 Hình 64 Thơng điệp AODV node A - 98 Hình 65 Thơng điệp AODV node B - 99 Hình 66 Bảng định tuyến AODV node A - 99 Hình 67 Menu cấu hình chế độ debugging/tracer cho trình điều khiển ath5k - 100 Hình 68 Chế độ debugging kích hoạt cho trình điều khiển ath5k - 101 Hình 69 Dữ liệu log lại việc thay đổi chế mode hoạt động xem với lệnh dmesg - 102 Hình 70 Kiến trúc hệ thống Quagga - 104 Hình 71 Header phổ biến giao thức Zebra - 122 Hình 72 Dịng cập nhập định tuyến Kernel Quagga - 130 Hình 73 Kiến trúc thiết bị tìm đường khơng dây - 131 Hình 74 Dịng liệu OLSR - 132 Hình 75 Dịng xử lý tin HELLO - 138 Hình 76 Dịng xử lý tin TC - 142 Hình 77 Dịng xử lý tin MID - 146 Hình 78 Khởi tạo tin HELLO - 150 Hình 79 Khởi tạo tin TC - 153 Hình 80 Khởi tạo tin MID - 154 Hình 81 Tính tốn bảng định tuyến - 156 Hình 82 Sơ đồ tòa nhà C thuộc ĐH CNTT - 162 Hình 83 Sơ đồ khn viên trường ĐH CNTT - 162 Hình 84 Mơ hình mạng 2-hop chain - 166 Hình 85 Mơ hình mạng 3-hop chain - 166 Hình 86 Mơ hình mạng 2-hop mesh - 167 Hình 87 Mơ hình mạng 2-hop chain - 168 Hình 88 Mơ hình mạng 3-hop chain - 168 Hình 89 Mơ hình mạng 2-hop tree - 169 Hình 90 Biểu đồ băng thơng đo Iperf node - 169 Hình 91 Biểu đồ độ trễ đo Ping node - 170 Hình 92 Biều đồ tỉ lệ gói tin đo Ping node - 171 Hình 93 Biểu đồ băng thông đo Iperf node - 172 Hình 94 Biểu đồ độ trễ đo Ping node - 173 Hình 95 Tỉ lệ gói tin đo Ping node - 174 -4- Hình 96 Biểu đồ băng thông đo Iperf node - 176 Hình 97 Biểu đồ độ trễ đo Ping node - 177 Hình 98 Biểu đồ tỉ lệ gói tin đo Ping node - 178 Hình 99 Biểu đồ băng thơng đo node - 179 Hình 100 Biểu đồ độ trễ đo node - 181 Hình 101 Biểu đồ độ trễ tải nội dung số trang node - 182 Hình 102 Biểu đồ tỉ lệ gói tin node - 183 Hình 103 Biểu đồ băng thơng đo node - 185 Hình 104 Biểu đồ độ trễ đo node - 186 Hình 105 Biểu đồ độ trễ tải nội dung số trang web node - 188 Hình 106 Biểu đồ tỉ lệ gói tin node - 189 Hình 107 Biều đồ băng thơng đo node - 191 Hình 108 Biểu đồ độ trễ đo node - 193 Hình 109 Biểu đồ độ trễ tải nội dung số trang web node - 194 Hình 110 Biểu đồ tỉ lệ gói tin node - 195 - -5- Xét mơi trường Indoor, vị trí 10 mét, độ trể đo trang speed.io OLSRd 380.67 ms – tăng 7% trang pingtest.net 487 ms – tăng 690% so với độ trễ đo gateway Còn với OLSRd plugin for Quagga, độ trễ đo trang speed.io 384.33 ms – tăng 8% trang pingtest.net 417.33 ms – tăng 611% Tại vị trí 20 mét, OLSRd có độ trễ đo trang speed.io pingtest.net tăng 7% 760% so với độ trễ ban đầu; với OLSRd plugin for Quagga 91% 670% Trong ngữ cảnh này, OLSRd cho độ trễ tốt trang speed.io; OLSRd plugin for Quagga cho độ trễ tốt trang pingtest.net Có thể coi OLSRd OLSRd plugin for Quagga có hiệu suất độ trễ tương đương trường hợp Trong mơi trường Outdoor, vị trí 10 mét, độ trễ đo trang speed.io tăng 9% trang pingtest.net 27% OLSRd; OLSRd plugin for Quagga có tỉ lệ tăng độ trễ đo trang speed.io pingtest.net 460% 22% Khi di chuyển tới vị trí 60 mét, OLSRd có độ trễ tăng 70% đo trang speed.io 150% trang pingtest.net Về phía OLSRd plugin for Quagga, độ trễ trang speed.io đo tăng 70% trang pingtest.net 116% Tương tự trườn hợp Indoor, OLSRd OLSRd cho độ trễ tốt với trang web đo Nên coi độ trễ hai cho hiệu suất gần giống - 187 - Hình 105 Biểu đồ độ trễ tải nội dung số trang web node Theo biểu đồ 16, thấy chêch lệch độ trễ tải nội dung số trang web OLSRd OLSRd plugin for Quagga khơng có khác nhiều Ở trang web có nội dung Google độ trễ đo gần Đối với trang web lớn có thấy chêch lệch Tuy nhiên chêch lệch khơng hồn tồn, có thời điểm OLSRd cho độ trễ thấp hơn, có lúc cho độ trễ cao Như vậy, ta coi OLSRd OLSRd plugin for Quagga có hiệu suất hai mơi trường - 188 - Hình 106 Biểu đồ tỉ lệ gói tin node Tronng mội trường Indoor, vị trị 10 mét, tỉ lệ gói tin OLSRd giao động khoảng từ 3.33% đến 13.33% cho gói ICMP, cịn với OLSRd plugin for Quagga tỉ lệ gói tin dao động khoảng từ 3.33% đến 56.67% Ở vị trí trí xa 20 mét, OLSRd có tỉ lệ gói tin khoảng từ 23.33% đến 46.67%; OLSRd plugin for Quagga có tỉ lệ gói tin khoảng 20% đến 30% Tỉ lệ gói tin OLSRd tăng cách bình thường, cịn với OLSRd plugin for Quagga có thay đơi - 189 - khơng ổn định OLSRd đạt hiệu suất tỉ lệ gói tin tốt so với OLSRd plugin for Quagga trường hợp Trong môi trường Outdoor, xét vị trí 10 mét, OLSRd có tỉ lệ gói tin 3.33% - 23.33%; OLSRd plugin for Quagga cho tỉ lệ gói tin 0% - 36.67% Khi di chuyển vị trí xa 60 mét, tỉ lệ gói tin OLSRd plugin for Quagga dao động từ 13.33% đến 43.33%; với OLSRd số nằm khoảng từ 23.33% đến 46.67% Có thể thấy, OLSRd plugin for Quagga cho tỉ lệ gói tin thấp so với OLSRd Trong ngữ cảnh này, OLSRd OLSRd plugin for Quagga cho hiệu suất độ trễ Trong môi trường Indoor, OLSRd cho băng thơng cao tỉ lệ gói tin thấp so với OLSRd plugin for Quagga Còn với môi trường Outdoor, OLSRd cho băng thông cao, tỉ gói tin cao so với OLSRd plugin for Quagga Nên môi trường này, việc sử dụng OLSRd OLSRd plugin for Quagga thích hợp 3.8.2.3 2-hop tree internetworking - 190 - Hình 107 Biều đồ băng thông đo node Trong môi trường Indoor, vị trí mét, tốc độ download đo đượct rên trang speed.io OLSRd 1863 kbps – giảm 67% trang ping.eu 751 kbps – giảm 10% so với tốc độ download đo gateway Tương tự với OLSRd plugin for Quagga, tốc độ đo trang speed.io 5227 kbps – giảm 5%, trang ping.eu 1150 kbps – giảm 7% Tại vị trí đo 30 mét, OLSRd có tốc độ download đo trang speed.io giảm 89% ping.eu 40% so với tốc độ ban đầu đo gateway Trong đó, độ suy hao tốc độ download OLSRd plugin for Quagga đo trang speed.io 70% trang ping.eu 76% Xét tốc độ upload đo được, vị trí mét, OLSRd có tốc độ 203 Kbps – giảm 20%; OLSRd plugin for Quagga có tốc độ 366 kbps – giảm 5% Ở vị trí 30 mét, số 80% với OLSRd 88% với OLSRd plugin for Quagga OSLRd có độ suy giảm băng thơng lớn so với OLSRd plugin for - 191 - Quagga Do đó, OLSRd plugin for Quagga đạt hiệu suất băng thông tốt trường hợp Trong mơi trường Outdoor, vị trí 10 mét, OLSRd có độ suy giảm tốc độ download đo trang speed.io 65% trang ping.eu 3%; 9% 7% số tương úng thu OLSRd plugin for Quagga Khi di chuyển tới vị trí 60 mét, tốc độ download đo trang speed.io 2154.67 kbps – giảm 80% trang ping.eu 741 kbps – giảm 25% so với tốc độ đo gateway OLSRd; với OLSRd plugin for Quagga, tốc độ đo trang speed.io 1749.33 kbps – giảm 60% trang pingtest.net 744.33 kbps – giảm 40% Độ suy giảm tốc độ upload đo đươc vị trí 10 mét OLSRd OLSRd plugin for Quagga 50% 0%; vị trí 60 mét 20% 40% OLSRd có độ suy giảm băng thông lớn so với OLSRd plugin for Quagga Hiệu suất băng thông trường hợp OLSRd plugin for Quagga tốt OLSRd - 192 - Hình 108 Biểu đồ độ trễ đo node Xét vị trí đo mét mơi trường Indoor, độ trễ đo speed.io OLSRd 346.67 ms – tăng 14%, với pingtest.net 79.33 ms – tăng 22% so với độ trễ đo gateway Tương tự với OLSRd plugin for Quagga, độ trễ đo speed.io 344 ms – tăng 0% đo pingtest.net 59 ms – tăng 2% Tiếp tục xét vị trí xa 30 mét, OLSRd có độ trễ tăng 45% với speed.io 204% với pingtest.net; OLSRd plugin for Quagga cho độ trễ đo trang speed.io tăng 10% trang pingtest.net 317% Phần trăm tăng độ trễ OLSRd cao so với OLSRd plugin for Quagga Có thể rút OLSRd plugin for Quagga cho hiệu suất tốt độ trễ - 193 - Xét vị trí đo 10 mét mơi trường Outdoor, OLSRd có độ trễ đo trang speed.io pingtest.net tăng 0% Đối với OLSRd plugin for Quagga, 2% 65% so với độ trễ đo gateway Tại vị trí xa 60 mét, speed.io cho kết 369.33 ms – tăng 0.5% pingtest.net cho kết 235.67 ms – tăng 313% OLSRd Tương tự với OLSRd plugin for Quagga, speed.io cho kết 388 ms – tăng 14% pingtest.net cho kết 149 ms – tăng 62% Với trang speed.io OLSRd có độ tăng độ trễ thấp hơn, với trang pingtest.net tỉ lệ tăng độ trệ OLSRd plugin for Quagga tốt Như có kết xem OLSRd OLSRd plugin for Quagga đạt hiệu suất ngang độ trễ trường hợp Delay Load Website (s) - Node B 70 60 50 40 30 20 10 Node A Node B 1m Node B 10m Node B 30m Node A Node B 10m Node B 30m Node B 60m Google.com-Kernel-Indoor Facebook.com-Kernel-Indoor Mp3.zing.vn-Kernel-Indoor Vnexpress.vn-Kernel-Indoor Google.com-Quagga-Indoor Facebook.com-Quagga-Indoor Mp3.zing.vn-Quagga-Indoor Vnexpress.vn-Quagga-Indoor Google.com-Kernel-Outdoor Facebook.com-Kernel-Outdoor Mp3.zing.vn-Kernel-Outdoor Vnexpress.vn-Kernel-Outdoor Google.com-Quagga-Outdoor Facebook.com-Quagga-Outdoor Mp3.zing.vn-Quagga-Outdoor Vnexpress.vn-Quagga-Outdoor Hình 109 Biểu đồ độ trễ tải nội dung số trang web node - 194 - Theo biểu đồ 20, thấy hai mơi trường, với trang web có nội dung OLSRd OLSRd plugin cho độ trễ gần Tuy nhiên trang web có nội dung nhiều OLSRd cho độ trễ tải trang thấp so với OLSRd plugin for Quagga Vậy đánh giá OLSRd có dộ trễ nơi dung số trang web tốt Hình 110 Biểu đồ tỉ lệ gói tin node Trong mơi trường Indoor, vị trí đo mét, tỉ lệ gói tin OLSRd nằm khoảng từ 0% đến 3.33%; tỉ lệ gói tin OLSRd plugin for Quagga 0% Khi di chuyển đến vị trí 30 mét, OLSRd cho tỉ lệ gói tin dao động khoảng từ - 195 - 6.67% đến 23.33%; với OLSRd plugin for Quagga tỉ lệ nằm khoảng từ 6.67 đến 23.33% Có thể thấy OLSRd plugin for Quagga có tỉ lệ gói tin thấp trường hợp Trong môi trường Outdoor, xét vị trí đo 10 mét, OLSRd có tỉ lệ gói tin nằm khoảng 0% đến 3.33%, OLSRd plugin for Quagga nằm khoảng Tuy nhiên vị trí 60 mét, OLSRd plugin for Quagga cho tỉ lệ gói tin gần 0%, OLSRd dao dộng khoảng từ 0% đến 3.33% Trong trường hợp OLSRd plugin for Quagga cho tỉ lệ gói tin thấp so với OLSRd Dựa đánh giá thông số, ta thấy ngữ cảnh OLSRd plugin chiếm hiệu suất cao OLSRd hầu hết thông số hai môi trường Indoor Outdoor Việc sử dụng OLSRd plugin for Quagga ngữ cảnh phù hợp so với OLSRd 3.8.3 Đánh giá mức độ sử dụng RAM CPU hai phiên thực Bên cạnh thông số hiệu suất, trình kiểm tra thực tế có hai thơng số theo dõi ghi lại mức độ chiếm dụng CPU RAM phiên thực Việc đanh giá thực máy tính sử dụng CPU Inter Core i3-4030U có tần số 1.9 GHz dung lượng RAM 4Gb - CPU: Trong suốt trình kiểm tra, hai phiên chiếm 0.3% CPU Tuy có mức chiếm dụng CPU nhau, OLSRd có thời gian sử dụng CPU nhiều so với OLSRd plugin for Quagga Khơng có số thời điểm, mức chiếm dụng CPU OLSRd lên đến 0.7%, số xuất thời gian ngăn sau lại trở 0.3% Cịn với OLSRd plugin for Quagga, số 0.3% giữ nguyên ổn định suốt trình đo Lý giải cho việc OLSRd chạy trực tiếp Kernel hệ điều hành, OLSRd plugin for Quagga deamon/plugin chạy Quagga, mực độ chiếm dụng thời gian sử dụng CPU thấp so với OLSRd - RAM: - 196 - Khi bắt đâu trình đo, OLSRd OLSRd plugin for Quagga có mức chiếm dụng RAM 0.1% Theo thời giàn khoảng cách di chuyển số có thay đổi OLSRd plugin for Quagga Càng di chuyển xa hay nhiếu kết nối cần xử lý mức độ chiếm dụng RAM tăng lên Cụ thề khoảng cách từ < 60 mét, OLSRd plugin for Quagga chiểm 0.1% RAM, với khoảng cách > 60 mét số thay đổi 0.2%, có lúc 0.3% Cịn OLSRd mức độ chiếm dụng RAM không thay đổi Như biết OLSRd plugin for Quagga plugin/deamon chạy Quagga, trình xử lý tăng lên cần thêm nhiều RAM để xử lý, chất khơng u cầu thêm quyền xử lý CPU Khác với OLSRd, chạy trực tiếp Kernel, nên yêu cầu xử lý tăng lên, yêu cầu thêm CPU 3.8.4 Nhận xét Giữa hai phiên thực OLSRd OLSRd plugin for Quagga có mặt mạnh yếu khác thích hợp sử dụng trường hợp khác OLSRd plugin for Quagga đặc biệt thích hợp sử dụng ngữ cảnh internetworking 2hop mesh Với ngữ cảnh standalone ad-hoc network 2-hop mesh sử dụng hai phiên thích hợp Với ngữ cảnh cịn lại việc sử dụng OLSRd mang lại hiệu tốt OLSRd plugin for Quagga phát huy hiệu qủa mạng vừa lớn, có nhiều node nhiều kết nối Trong đó, OLSRd lại tương thích với hầu hết tất mạng có kích thước khác Ngun nhân khác biệt bắt nguồn từ việc OLSRd phiên đời trước, cập nhật tối ưu thường xuyên có cộng đồng tương đối lớn phát triển Với OLSRd plugin for Quagga tích hợp phát triển – năm trở lại đây, phiên OLSRd tích hợp có từ lâu Hơn số người phát triển vào khoảng vài cá nhân Một số chức phát triển tối ưu hóa Do đó, so sánh hiệu suất khả hoạt động so với phiên OLSRd có chêch lệch định Mặc dù OLSRd phiên thực hoàn thiện sử dụng rộng rãi so với OLSRd plugin for Quagga Tuy nhiên, OLSRd plugin for Quagga hướng nghiên cứu triển vọng Nếu phát triển cách hoàn thiện, hồn tồn thay OLSRd Bởi vì, chêch lệch hiệu suất hai phiên không - 197 - phải lớn, khoảng cách hồn tồn thu hẹp Hơn nữa, sử dụng hạn chế tình trạng q tải máy tính OLSRd plugin for Quagga gián tiếp chạy Kernel thông Quagga Không tốn nhiều dung lượng xử lý CPU thời gian xử lý OLSRd Trong ngữ cảnh kiểm tra số lượng máy nên ta chưa thấy điều GIả sử mơi trường có nhiều máy tính mức chiếm dụng CPU OLSRd lớn, vượt khả CPU Trong với OLSRd plugin Quagga, có nhiều node khơng yêu cầu CPU, thay vào cần RAM Giữa việc nâng cấp CPU RAM cơng việc đơn giản Thêm dung lượng RAM việc làm nhanh ảnh hưởng đến hệ thống - 198 - CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ NGHỊ Với việc phân tích mã nguồn mở giao thức định tuyến ad-hoc, luồng gọi hàm chế cập nhật bảng định tuyến, chế truyền/nhận chuyển tiếp gói tin nhân hệ điều hành Linux, trình điều khiển thiết bị, việc tích hợp giao thức định tuyến ad-hoc trình điều khiển thiết bị vào nhân hệ điều hành mã nguồn mở Linux để xây dựng thiết bị định tuyến không dây, chúng tơi hướng tới việc hồn tồn làm chủ cơng nghệ ad-hoc để chuyển giao cơng nghệ triển khai ứng dụng ad-hoc Việt Nam lĩnh vực cứu hộ cứu nạn, phòng chống thiên tai, giám sát môi trường, với giá thành chi phí hợp lý Kết đề tài giai đoạn đặt móng để biết rõ điểm cần thiết nhân hệ điều hành Linux cho việc tích hợp giao thức mới, ứng dụng mới, thay đổi giao thức, ứng dụng có nhằm đáp ứng yêu cầu phát triển ứng dụng thời gian ngắn Cũng trình thực đề tài, thực hoàn tất nội dung đăng ký đề tài (06/2015-06/2017) Cụ thể, thực hoàn tất nội dung 19 đăng ký thuyết minh đề tài, với trọng tâm việc đề xuất kiến trúc phần mềm thiết bị định tuyến khơng dây ad-hoc (wireless ad-hoc router), tích hợp phần mềm cần thiết Qua kịch thực nghiệm hệ thống MANETs testbed thực tế xây dựng để đánh giá hiệu suất việc sử dụng thiết bị định tuyến ad-hoc dùng giao thức định tuyến ad-hoc trình truyền/nhận liệu Các kịch đánh giá xây dựng theo hai hướng: i) truyền/nhận liệu mạng MANETs (standalone MANETs), ii) truyền/nhận liệu MANETs Internet (Internetworking) Từ kết đo đạc thực tế, xây dựng biểu đồ so sánh cụ thể hai phiên Từ đưa kết luận, phiên thực có ưu khuyết điểm khác Và sử dụng với ngữ cảnh thích hợp hoạt động mạng người dùng đạt mức tốt Cụ thể nên sử dụng phiên OLSRd plugin Quagga trường hợp mạng lớn, phức tạp có kết nối với mạng Internet bên Ở trường hợp khác mạng vừa, nhỏ, kết nối mạng local, nên sử dụng OLSRd Chúng công bố kết đo đạc được, kiến trúc phần mềm hoạt động thiết bị hội nghị quốc tế uy tín, thơng qua 03 báo xuấ kỷ yếu hội nghị ACM SoICT‘2016, IEEE ATC‘2016, Springer Iniscom‘2017 Đối với đào tạo, - 199 - hướng dẫn thành công 01 Luận Văn Cao Học, 06 sinh viên Đại học CNTT bảo vệ Luận Văn Tốt Nghiệp thành công năm 2016, với nội dung liên quan đến đề tài Một số hướng phát triển đề tài sau: • Đối tượng để xây dựng wireless router đề tài máy tính PC (Desktop/Laptop) có gắn card mạng WLAN sử dụng Atheros/Broadcom wireless transceiver chipsets, sử dụng phiên Linux distro đa mục đích (general purposes) phổ biến Ubuntu Do đó, kết đề tài phục vụ tốt cho định hướng phát triển phiên wireless router tối ưu cho tảng phần cứng hệ thống nhúng, sản phẩm thông dụng wireless router bán thị trường • Hệ điều hành mã nguồn mở Linux sử dụng làm tảng phần mềm để phát triển wireless router đề tài này, đố chạy tảng phần cứng hỗ trợ Linux, mơi trường ảo hóa (virtualization) hỗ trợ cài đặt Linux drivers để truy cập điều khiển thiết bị mạng vmWare Tuy nhiên, sản phẩm wireless router đề tài tương thích làm việc với sản phẩm wireless router (sử dụng công nghệ di động ad-hoc) thực xây dựng tảng phần mềm phần cứng khác, với điều kiện sản phẩm wireless router khác phải thực tích hợp giao thức định tuyến ad-hoc theo chuẩn IETF (Internet Engineering Task Force) tương ứng, định chuẩn IETF MANETs Charter Internet-Drafts, RFCs (Request for Comments) • Một hướng phát triển khác đề tài xây dựng mạng thử nghiệm với số lượng nốt lớn (scalability) Hướng phát triển khả thi với khả phát triển giải pháp tích hợp cloud, kịch triển khai hỗn hợp: số thiết bị wireless router thiết bị thật phát triển tù đề tài tham gia vào kịch bản, phần lớn thiết bị wireless router lại sử dụng máy ảo môi trường cloud để giả lập Với công nghệ Linux Docker triển khai môi trường Điện toán đám mây mã nguồn mở OpenStack, chúng tơi dự kiến triển khai kịch với hang ngàn nốt để đánh giá khả rộng mở (Scalability) tính sẵn sàng (Availability) hệ thống - 200 - TÀI LIỆU THAM KHẢO [1] Conti M., and Giordano S.: Multihop Ad Hoc Networking: The Theory IEEE Communications Magazine, pp.78-86, April (2007) [2] Conti M., and Giordano S.: Multihop Ad Hoc Networking: The Reality IEEE Communications Magazine, pp.88-95, April (2007) [3] Ha-Son H., Le-Trung Q., and Nguyen M.-S.: ManetPRO: A Protocol Evaluation Testbed over mPlatforms ACM iiWAS, Ho Chi Minh city, Vietnam (2011) [4] Le-Trung Q., and Nguyen M.-S.: "Towards a Real Architecture of Wireless Ad-Hoc Router on Open-Source Linux Platform In the 13th International Conference on Computational Science and Its Applications (ICCSA), LNCS Vol 7973, Ho Chi Minh city, Vietnam, Jun.24-27 2013, pp 271-286 (2013) [5] Nguyen, M.-S., and Le-Trung Q.: Integration of Atheros ath5k Device Driver on Wireless AdHoc Router IEEE ATC/REV, ISBN: 978-1-4799-1088-5, ISSN: 2162-1020, HCM city, Vietnam, Oct.16-18 2013, pp.609-613 (2013) [6] IETF MANET charter, http://datatracker.ietf.org/wg/manet/charter/ [7] aodv-uu open-source project, http://sourceforge.net/projects/aodvuu/ [8] Wiberg B.: Porting AODV-UU Implementation to ns-2 and Enabling Trace-based Simulation Master Thesis at Uppsala University, Sweden (2002) [9] The netfilter/iptables project, http://www.netfilter.org/ [10] olsrd, an adhoc wireless mesh routing daemon, http://www.olsr.org/ [11] Tønnesen A.: Impementing and Extending the Optimized Link State Routing Protocol Master Thesis at UniK, University of Oslo, Norway (2004) [12] Navid N., Christian B., and Neda N.: HARP: Hybrid Ad Hoc Routing Protocol International Symposium on Telecommunications, September 1-3, 2001, Teheran, Iran (2001) [13] Haas Z J., Pearlman M R., and Samar P.: The Zone Routing Protocol (ZRP) for Ad Hoc Networks Internet Draft draft-ietf-manet-zone-zrp-04.txt, july (2002) [14] The madwifi/ath5k project, http://madwifi-project.org/ [15] The OpenHAL, http://madwifi-project.org/wiki/About/OpenHAL [16] Linux wireless mac80211, http://wireless.kernel.org/en/developers/Documentation/mac80211 [17] Linux wireless cfg80211, http://wireless.kernel.org/en/developers/Documentation/cfg80211 [18] Tourrilhes J.: Wireless Extensions for Linux, http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless Extensions.html [19] Linux wireless nl80211, http://wireless.kernel.org/en/developers/Documentation/nl80211 [20] Linux programmer’s manual: ioctl – control device, http://www.kernel.org/doc/manpages/online/pages/man2/ioctl.2.html [21] The Linux ORiNOCO driver, http://www.nongnu.org/orinoco/ [22] The linux-wlan-ng driver, http://www.linux-wlan.org/ [23] The host AP driver, http://hostap.epitest.fi/ [24] The Symbol Spectrum driver, http://sourceforge.net/projects/spectrum24/ [25] The Atmel USB WLAN driver, http://at76c503a.berlios.de/ [26] The Intel driver, http://sourceforge.net/projects/ipw2200/ [27] trace-cmd: A front-end for Ftrace, https://lwn.net/Articles/410200/ [28] Debugging the kernel using Ftrace, http://lwn.net/Articles/365835/, http://lwn.net/Articles/366796/ [29] The dmesg command, http://www.linfo.org/dmesg.html - 201 -

Ngày đăng: 05/10/2023, 19:40

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan