Công nghệ mạng không dây Ad hoc đang ngày càng phát triển và có nhiều ứng dụng trong thực tiễn. Đồ án tổng hợp các kiến thức cơ bản về mạng không dây nói chung, mạng Ad hoc nói riêng và các đặc điểm, ứng dụng của các giao thức định tuyến. Trong đó, đồ án đi sâu vào nghiên cứu phương thức hoạt động, định dạng các bản tin của giao thức định tuyến AODV giao thức được sử dụng phổ biến trong mạng Ad hoc ngày nay đồng thời tìm hiểu hai giao thức cải tiến từ giao thức AODV gốc là AODVERS và AODVEERS. Và cuối cùng chúng em thực hiện ý tưởng chỉnh sửa giao thức AODVEERS. Ý tưởng này thực hiện việc đưa yếu tố năng lượng vào quá trình định tuyến của giao thức AODVEERS nhằm cải thiện thông số thời gian sống của mạng và tỷ lệ phân phát gói tin thành công. Kết quả của chỉnh sửa được kiểm tra bằng công cụ mô phỏng mạng Network Simulator 2(NS2). Quá trình mô phỏng được thực hiện với nhiều kịch bản để có thể đánh giá đúng về giao thức sau khi chỉnh sửa.
lOMoARcPSD|18351890 LỜI NÓI ĐẦU Ngày nay, với phát triển không ngừng công nghệ, thiết bị di động máy tính xách tay, smartphone, tablet…ngày có bước tiến dài phần cứng tốc độ CPU, nhớ lớn, khả tryền tải nội dung đa phương tiện trở nên phổ biến đời sống hàng ngày công việc Do nhu cầu kết nối lúc, nơi nên với phát triển thiết bị đầu cuối công nghệ mạng không dây phát triển mạnh mẽ có nhiều ứng dụng thiết thực đời sống Với khả động cao, thuận tiện sử dụng, công nghệ thay cơng nghệ mạng có dây truyền thống Song di chuyển thiết bị di động mạng làm cho topo mạng thay đổi, với tỷ lệ lỗi cao giới hạn băng thông, lượng so với mạng có dây, nên giao thức định tuyến mạng không dây trở nên phức tạp Mạng Ad hoc mạng không dây mềm dẻo với khả tự tổ chức, hoạt động mà khơng cần có sở hạ tầng hỗ trợ thu hút nhiều quan tâm vài năm trở lại Đồ án thực tìm hiểu mạng Ad hoc, cách thức hoạt động giao thức định tuyến mạng, sâu vào giao thức AODV phát triển AODV-ERS AODV-EERS Phần trọng tâm chúng em tiến hành chỉnh sửa giao thức AODV-EERS giúp cải thiện mốt số thông số làm việc môi trường mạng Ad hoc Mặc dù nhiều nỗ lực đồ án chắn không tránh khỏi thiếu sót, nên mong đóng góp thẳng thắn từ thầy, giáo bạn Trong trình thực đồ án, chúng em gặp khơng khó khăn Tuy nhiên giúp đỡ tận tình thầy giáo Nguyễn Trung Dũng, nhóm nghiên cứu Ad hoc, chúng em hoàn thành đồ án Phạm Trọng Hiếếu- Nguyếễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Chúng em xin gửi lời cảm ơn chân thành tới: Thầy giáo Nguyễn Trung Dũng Nhóm nghiên cứu Ad hoc K52 thầy Nguyễn Trung Dũng Viện Điện tử - Viễn thông, Trường Đại học Bách Khoa Hà Nội Cùng tồn thể gia đình bạn bè hỗ trợ Hà Nội, tháng năm 2012 Nhóm sinh viên thực Phạm Trọng Hiếu Nguyễn Minh Đức Phạm Trọng Hiếếu- Nguyếễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 TÓM TẮT ĐỒ ÁN Tối ưu giao thức AODV-EERS mạng Ad-hoc Công nghệ mạng không dây Ad hoc ngày phát triển có nhiều ứng dụng thực tiễn Đồ án tổng hợp kiến thức mạng khơng dây nói chung, mạng Ad hoc nói riêng đặc điểm, ứng dụng giao thức định tuyến Trong đó, đồ án sâu vào nghiên cứu phương thức hoạt động, định dạng tin giao thức định tuyến AODV- giao thức sử dụng phổ biến mạng Ad hoc ngày đồng thời tìm hiểu hai giao thức cải tiến từ giao thức AODV gốc AODV-ERS AODV-EERS Và cuối chúng em thực ý tưởng chỉnh sửa giao thức AODV-EERS Ý tưởng thực việc đưa yếu tố lượng vào trình định tuyến giao thức AODV-EERS nhằm cải thiện thông số thời gian sống mạng tỷ lệ phân phát gói tin thành cơng Kết chỉnh sửa kiểm tra công cụ mô mạng Network Simulator 2(NS2) Q trình mơ thực với nhiều kịch để đánh giá giao thức sau chỉnh sửa Phạm Trọng Hiếếu- Nguyếễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 ABSTRACT Optimize AODV-EERS protocol in Ad hoc network Adhoc wireless technology has been developing strongly in the last decade and playing an important role in our lives In this paper, we summarize the basic knowledge of wireless network in general, and Adhoc network specifically in term of its characteristics, application and routing protocols Particularly, we study process method and packet format of routing protocol AODV- which is used widely today Also we study two other revised AODV protocols, which are AODV-ERS and AODV-EERS Furthermore, we acctuate the idea of revising the AODV-EERS protocol This idea aims to take energy into consideration of routing in AODVEERS protocol in order to improve time-to-live component of netowrk and packet delevery ratio The simulation process is run on NS2 with many different scenarios Phạm Trọng Hiếếu- Nguyếễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 MỤC LỤC LỜI NÓI ĐẦU TÓM TẮT ĐỒ ÁN .3 ABSTRACT .4 MỤC LỤC DANH SÁCH HÌNH VẼ DANH SÁCH BẢNG BIỂU 11 DANH SÁCH CÁC TỪ VIẾT TẮT .12 MỞ ĐẦU 13 CHƯƠNG 1: TỔNG QUAN VỀ MẠNG AD HOC 14 1.1 Giới thiệu chung mạng Ad hoc 14 1.2 Đặc điểm mạng Ad hoc .15 1.3 Phân loại mạng Ad hoc 16 1.4 Ứng dụng thực tế mạng Ad hoc .23 CHƯƠNG 2: CÁC GIAO THỨC ĐỊNH TUYẾN TRONG MẠNG AD HOC 25 2.1 Các vấn đề định tuyến mạng Ad hoc 25 2.2 Phân loại giao thức định tuyến mạng Ad hoc .26 2.3 Các thông số quan trọng giao thức hoạt động 30 Phạm Trọng Hiếu- Nguyễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 CHƯƠNG 3: GIAO THỨC ĐỊNH TUYẾN AODV .32 3.1 Định dạng tin sử dụng giao thức AODV .32 3.2 Nguyên lý hoạt động giao thức 36 CHƯƠNG 4: GIAO THỨC ĐỊNH TUYẾN AODV-ERS, AODV-EERS 54 4.1 Giao thức định tuyến AODV-ERS 54 4.2 Giao thức định tuyến AODV-EERS .58 CHƯƠNG 5: ĐỊNH TUYẾN CÓ DỰA TRÊN NĂNG LƯỢNG 64 5.1 Khái quát 64 5.2 Giải pháp 64 5.3 Xây dựng thuật toán 66 5.4 Sửa code 68 CHƯƠNG 6: PHẦN MỀM MÔ PHỎNGNS2 70 6.1 Giới thiệu công cụ mô mạng NS2 70 6.2 Tạo kịch mô 75 6.3 Phân tích kết mô 77 6.4 Build lại giao thức sau sữa chữa 82 CHƯƠNG 7: MÔ PHỎNG 83 7.1 Danh sách ý nghĩa file mô 83 7.2 Các tham số mô 83 7.3 Kết mô 84 7.4 Nhận xét 86 Phạm Trọng Hiếu- Nguyễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 CHƯƠNG 8: KẾT LUẬN 87 8.1 Các vấn đề tồn .87 8.2 Hướng giải .87 LỜI KẾT 88 DANH SÁCH TÀI LIỆU THAM KHẢO 89 Phạm Trọng Hiếu- Nguyễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 DANH SÁCH HÌNH VẼ Hình 1.1 Một mạng ad-hoc điển hình 15 Hình 1.2: Phân loại mạng Ad hoc 17 Hình 1.3: Mối quan hệ mạng BAN (hình a) PAN (hình b) .18 Hình 1.4: Mơ hình WLAN : (a) mạng ad hoc, (b) mạng sở hạ tầng 19 Hình 1.5: Mơ hình mạng theo giao thức single hop .20 Hình 1.6: Mơ hình mạng theo định tuyến multihop .21 Hình 1.7: Mơ hình mạng MANET phân cấp 22 Hình 1.8: Ứng dụng ad-hoc lĩnh vực quân .24 Hình 2.1: Các giao thức định tuyến mạng ad-hoc 27 Hình 3.1: Ví dụ tin RREQ phần 41 Hình 3.2: Ví dụ tin RREQ phần 42 Hình 3.3: Ví dụ tin RREQ phần 42 Hình 3.4: Ví dụ tin RREQ phần 43 Hình 3.5: Ví dụ tin RREQ phần 43 Hình 3.6: Ví dụ tin RREQ phần 44 Hình 3.7: Ví dụ tin RREQ phần 44 Hình 3.8: Ví dụ tin RERR phần 47 Phạm Trọng Hiếu- Nguyễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Hình 3.9: Ví dụ tin RERR phần 48 Hình 3.10: Ví dụ tin RERR phần 48 Hình 3.11: Ví dụ tin RERR phần 49 Hình 3.12: Ví dụ tin RERR phần 49 Hình 3.13: Ví dụ q trình sửa cục phần 50 Hình 3.14: Ví dụ q trình sửa cục phần 51 Hình 3.15: Ví dụ q trình sửa cục phần 51 Hình 3.15: Ví dụ trình sửa cục phần 52 Hình 3.16: Ví dụ q trình sửa cục phần 52 Hình 3.17: Ví dụ q trình sửa cục phần 53 Hình 4.1: Quá trình tìm đường AODV-ERS 55 Hình 4.2: Quá trình xử lý thông tin node nguồn .56 Hình 4.3: Q trình xử lý thơng tin node trung gian 57 Hình 4.4: Giá trị Predecessor 59 Hình 4.5: Node A quảng bá tin RREQ 60 Hình 4.6: Node B chuyển tiếp tin 60 Hình 4.8: Node C D quảng bá tin RREQ 61 Hình 4.9: Trạng thái node sau tìm đường 61 Phạm Trọng Hiếu- Nguyễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Hình 5.1: Node Trung Gian 67 Hình 5.2: Node Đích 67 Hình 5.3: Minh Họa Thuật Tốn 67 Hình 6.1: Tổng quan NS góc độ người dùng 70 Hình 6.2: Luồng kiện cho file Tcl chạy NS .72 Hình 6.3: C++ Otcl : Sự đối ngẫu .73 Hình 6.4: TclCL hoạt động liên kết A B .73 Hình 6.5: Kiến trúc NS-2 NAM môi trường Linux 75 DANH SÁCH BẢNG BIỂ Phạm Trọng Hiếu- Nguyễn Minh Đức Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Phần Mềm Mô Phỏng NS2 source $opt(sc) puts "Loading connection pattern " source $opt(cp) 6.3 Phân tích kết mơ 6.3.1 Cấu trúc file trace Một ví dụ đường dấu vết đầu r 40.649943289 _1_ AGT - 1569 tcp 1032 [a2 800] - [0:0 1:0 32 1] [35 0] • Tham số chữ giá trị r, s, f , D thay cho “received”, “sent”, “forward” “dropped” Nó M để ám địa điểm di chuyển, miêu tả sau • Tham số thứ hai thời gian • Thứ ba số thứ tự nút mạng • Thứ tư MAC để biểu thị gói tin có liên quan đến lớp MAC, AGT thể gói tin lớp Transport (chẳng hạn TCP), RTR gói tin đính tuyến Giá trị IFQ để kiện liên quan đến hàng đợi ưu tiên (như gói tin bị rớt chẳng hạn) • Ở phía sau dấu gạch ngang số thứ tự gói tin (là global sequence number tcp sequence number) • Tại trường thơng tin bổ sung gói tin (chẳng hạn tcp, ack udp) • Tiếp đến kích cỡ gói tin (tính theo bytes) • Trong ngoặc vng thông tin lớp MAC Số thập lục phân a2 (tương đương với 162 hệ thập phân) miêu tả số thời gian tính theo giây mong đợi gửi xong gói tin qua kênh vơ tuyến Số thứ hai có giá trị để thay cho MAC-id node gửi gói tin, số thứ ba có giá trị – MAC-id nút mạng nhận gói tin Trường cuối cùng, 800, để loại MAC ETHERTYPE_IP Phạm Trọng Hiếếu- Nguyếễn Minh Đức 77 Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Phần Mềm Mơ Phỏng NS2 • Trong ngoặc vuông thứ địa chỉa IP nguồn đích, ttl (Time To Live) gói tin (trong trường hợp 32) • Ngoặc vuông thứ ba đề cập đến thông tin tcp: số thứ tự số chứng thực (acknowledgement number) Có nhiều kiểu định dạng khác liên quan đến kỹ thuật định tuyến khác loại gói tin khác Một câu lệnh di chuyển có dạng sau: M 10.00000 (5.00, 5.00, 0.00), (250.00, 250.00), 3.00 Con số thời gian, thứ hai số node, sau vị trí nguồn đích, cuối tốc độ Khi mơ giao thức định tuyến AODV, DSDV, tin định tuyến giao thức thường có thêm loại tin dùng trình định tuyến REQUEST, REPLY, ERROR, v v , File trace kết mơ nên ghi lại thơng tin tất tin gửi nhận node mạng, thông tin cần thiết nghiên cứu vấn đề cụ thể phần nhỏ nên q trình trích xuất liệu cần thiết từ file trace cần thiết Sau cơng cụ thực việc trích xuất liệu từ file trace 6.3.2 Sử dụng grep Lệnh grep unix cho phép “lọc” file Chúng ta tạo file chứa số dòng chứa chuỗi ký tự định lấy từ file gốc Ví dụ: ta muốn lấy dịng ghi thơng tin node ta thực hiên lệnh: grep _1_ adhoc2.tr > node1 Muốn lấy cách dòng send thực lệnh: grep "^s" adhoc2.tr > send 6.3.3 Sử dụng awk AWK ngơn ngữ lập trình nhằm mục đích xử lý file chữ (text file) theo nguyên lý khớp mẫu (pattern matching); đồng thời tên gọi chương trình hệ điều hành UNIX Dạng cú pháp Awk là: Phạm Trọng Hiếếu- Nguyếễn Minh Đức 78 Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Phần Mềm Mô Phỏng NS2 mẫu_1 { câu lệnh_1 }; mẫu_2 { câu lệnh_2 }; Theo máy tính dị dịng file chữ so sánh với mẫu Nếu khớp, câu lệnh thực Tiếp theo máy tính so sánh dòng chữ với mẫu Nếu khớp, câu lệnh thực hiện; Câu lệnh Các câu lệnh thường gặp awk: + In cột 1: {print $1} + Lệnh điều kiện: if ($4 == "AGT" && $1 == "s" && $8 >= 512) { if (time < startTime) { startTime = time } } File awk hay dùng xử lý kết NS2 getColumn.awk Đây awk dùng để tách cột cần thiết từ file trace, getColumn đơn giản sau: BEGIN {FS=" "} {n1++} {print $2 " " $14} END {} Chúng ta thêm cột khác vào, lấy cột $2 $4 cột thời gian cột lượng file trace Ngồi tham khảo awk script mạng, trình làm đồ án em sử dụng số awk script tham khảo mạng giữ nguyên hay có sửa chữa 6.3.4 Sử dụng Shell Script: Trong trình xử lý kết có tập lệnh lặp lại nhiều lần giống với topo khác hay giao thức khác Việc sử dụng Shell Script tiết kiệm thời gian tránh sai sót Shell Script file có sh lưu trữ Phạm Trọng Hiếếu- Nguyếễn Minh Đức 79 Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Phần Mềm Mô Phỏng NS2 lệnh cần chạy theo thứ tự Ví dụ sau tạo file sh lấy lượng node 1,2,3 từ file trace adhoc2.tr : Tạo file tên energy.sh (Chuột phải Create Document → Empty File) Các lệnh cần: grep _1_ adhoc2.tr > grep _2_ adhoc2.tr > grep _3_ adhoc2.tr > grep energy node1 > grep energy node2 > grep energy node3 > awk -f getColumn.awk awk -f getColumn.awk awk -f getColumn.awk node1 node2 node3 energy1 energy2 energy3 energy1 > out.1 energy2 > out.2 energy3 > out.3 Ghi lệnh vào file energy.sh lưu lại Nhấp chuột phải vào file energy.sh vừa tạo chọn Properties, chọn thẻ permissions, tích vào Allow executing file as program File awk getColumn.awk lấy cột 14 file adhoc2.tr, getColumn.awk energy.sh phải đặt thư mục Bây thay gõ lệnh ta nhấp đúp vào file energy.sh chọn run có file out1, out2, out3 lưu lượng node 1,2,3 Khi có yêu cầu tương tự với topo hay giao thức khác ta không cần gõ lại lệnh mà dùng lại file energy.sh 6.3.5 Lấy số kết mô trực tiếp không qua file trace Một số kết mơ có kết thúc mơ mà không qua file trace out.tr cách cho in giá trị file C+ + aodv.cc, energy_model.cc, v v Các kết thường biến có sẵn file C++ latency, current_time, v v Phương pháp giúp có số kết mơ mong muốn mà thơng qua file trace khơng có hay Phạm Trọng Hiếếu- Nguyếễn Minh Đức 80 Downloaded by MAI ??I CÁT (maingoc0911.minhhungland@gmail.com) lOMoARcPSD|18351890 Phần Mềm Mô Phỏng NS2 phức tạp; hay dùng để theo dõi giá trị biến mong muốn q trình mơ - Current_time: Ta có thời điểm mà hàm giao thức gọi tới sendRequest, sendReply, sendError, recvReply, v v , đồ án em có thời điểm mà node hết lượng, từ có Lifetime file energy-model.cc: #include void EnergyModel::DecrRcvEnergy(double rcvtime, double P_rcv) { double dEng = P_rcv * rcvtime; if (energy_