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.
Mai Văn Linh-ĐTVT2-CH2009 86
Hình 4.7 Đánh giá tỉ lệ gói nhận của DSR theo tốc độ phát gói
Mai Văn Linh-ĐTVT2-CH2009 87
Hình 4.9 Đánh giá tỷ lệ gói nhận của OLSR theo tốc độ phát gói
Mai Văn Linh-ĐTVT2-CH2009 88
Tốc độ phát gói tăng lên làm tăng số gói gửi, gây xung đột trên đường truyền và nghẽn mạng trong Bộđệm, gói tin bị hủy nhiều. DYMO có tỷ lệ nhận gói tương
đối ổn định và cao hơn hẳn so với các giao thức còn lại khi thay đổi tốc độ gửi gói.
4.2.5 Đánh giá và kết luận
Trong môi trường kích cỡ trung bình và số lượng nút nhỏ, khi mật độ di chuyển, hay tốc độ phát gói tăng dần thì DYMO là giao thức hoạt động khá ổn định khi có tỉ lệ gói nhận cao hơn so với các giao thức khác. Tuy nhiên, theo một số kết quả nghiên cứu cho thấy DYMO lại tạo ra khá nhiều bản tin định tuyến so với AODV và DSR. Do vậy, không thể khẳng định DYMO là một giao thức tối ưu.
Hiện nay chưa có một giao thức nào có thể đáp ứng đầy đủ yêu cầu với một giao thức định tuyến trong mạng Ad hoc. Các giao thức cần được cải tiến hơn nữa
để có thể đáp ứng được cho mạng Ad hoc đồng thời hỗ trợ multicast, QoS, bảo mật…
Mai Văn Linh-ĐTVT2-CH2009 89
KẾT LUẬN
Mạng Ad hoc hiện đang tham gia vào mọi mặt của cuộc sống và hứa hẹn sẽ
phát triển mạnh mẽ trong tương lai. Do là một phần công nghệ của mạng không dây nên mạng Ad hoc được thừa hưởng nhiều ưu điểm của mạng không dây hiện nay và
đồng thời cũng có những ưu thế đặc biệt mà các mạng khác không có. Luận văn là sự nhìn nhận tổng quan về mạng Ad hoc. Ngoài ra, luận văn cũng tập trung vào nghiên cứu các giao thức định tuyến mạng Ad hoc hiện nay, cụ thể là bốn giao thức DYMO, DSR, AODV, OLSR. Đồng thời sử dụng công cụ mô phỏng OMNET++ để
phân tích đánh giá chất lượng giao thức định tuyến mạng Ad hoc (DYMO, DSR, AODV, OLSR).
Mạng Ad hoc vẫn còn là một công nghệ mới trong vài năm gần đây ở Việt Nam và chưa có nhiều kết quả thử nghiệm, đánh giá về nó. Do đó, việc tham gia rất hạn chế, với người nghiên cứu chỉ có cách dùng mô phỏng. Chính vì vậy, định hướng phát triển của em là ngoài việc nghiên cứu lí thuyết, sẽ tìm hiểu sâu hơn về
công cụ mô phỏng OMNET++ để có kết quả mô phỏng đánh giá các giao thức theo nhiều thông số khác nhau. Qua đó, chúng ta thấy được thế mạnh và hạn chế của từng loại giao thức. Đồng thời em sẽ đi sâu tìm hiểu về khả năng triển khai mạng Ad hoc vào thực tiễn tại Việt Nam. Trong tương lai, em mong muốn sẽ tiếp tục nghiên cứu về vấn đề này cũng như phát triển mở rộng nó.
Cũng do thời gian nghiên cứu nên không tránh khỏi thiếu sót, em rất mong nhận được sự nhận xét, đóng góp ý kiến của các thầy cô trong bộ môn cũng như
trong khoa để luận văn của em và những nghiên cứu sau này sẽ còn thành công hơn nữa.
Mai Văn Linh-ĐTVT2-CH2009 90
Một lần nữa em xin chân thành cảm ơn thầy Nguyễn Quốc Trung – Bộ môn Kỹ thuật thông tin – Khoa Điện tử viễn thông – Trường Đại học Bách Khoa Hà Nội
đã nhiệt tình hướng dẫn, chỉ bảo và định hướng cho chúng em thực hiện thành công
đồ án.
Hà Nội, tháng 4 năm 2012. Sinh viên
Mai Văn Linh-ĐTVT2-CH2009 91
TÀI LIỆU THAM KHẢO
[1] Subir Kumar Sarkar, T G Basavaraju, C Puttamadappa, “Ad hoc Mobile Wireless Network Principles, protocols, and Applications”, Auerbach Publications, 2007.
[2] Amitabh Mishra, “Security and quality of service in Ad hoc wireless networks”, Cambridge University Press, 2008.
[3] Prasant Mohapatra and Srikanth Krishnamurthy, “Ad hoc network Technologies and Protocols”, Spinger Science and Business Media, 2005.
[4] Michel Barbeau and Evangelos Kranakis, “Principles of Ad hoc networking”, Wiley, 2007.
[5] Krishna Gorantala, “Routing Protocols in Mobile Ad hoc network”, June 15, 2006.
[6] Jabson Andres, “ Metric in Ad hoc networks”, Master thesis, 2000.
[7] Narendra Singh Yadav and R.P.Yadav, “The Effects of Speed on the Performance of Routing Protocols in Mobile Ad-hoc Network”.
[8] Azzedine Boukerche, “Algorithms and protocols for wireless and mobile Ad hoc network”, Wiley, 2009.
[9] A. Boukerche, “Performance Evaluation of Routing Protocols for Ad Hoc Wireless Networks”, Mobile Networks and Applications, 9, pp. 333-342, 2004. [10] Samir R. Das, “Performance Comparison of Two On-demand Routing
Protocols for Ad Hoc Networks”, Division of Computer Science The University of Texas at San Antonio San Antonio, TX 78249-066 U.S.A.
[11] Sehrish Abrejo, Asadullah Shah, Kamran Khowaja, Asma Ansari Pakistan
“Analysis of AD HOC Routing Protocols using Scenario Based Mobility Models”,
Department of Computer Science Isra University, Hyderabad.
[12] Ashwini Kumar Pandey,“Study of AD HOC Routing Protocols by Simulation Experiments”,Department of Computer Science Southern Illinois University Edwardsville MAY 2004
Mai Văn Linh-ĐTVT2-CH2009 92
[13] Farooq Anjum and Petros Mouchtaris, “Security for wireless Ad hoc networks” , Wiley, 2007
[14] Georgios Koltsidas and Fotini-Niovi Pavlidou, “Single-path and Multipath Routing Algorithms for Mobile Ad Hoc Networks”, Dept. of Electrical and Computer Engineering, Aristotle University of Thessaloniki, Thessaloniki, Greece
[15] S. Gowrishankar, T.G. Basavaraju, M. Singh, Subir Kumar Sarkar , “Scenario based Performance Analysis of AODV and OLSR in Mobile Ad hoc Networks”, Jadavpur University, Acharya Institute of Technology India
[16] http://tools.ietf.org/html/draft-ietf-Ad hoc-aodv-09
[17] http://tools.ietf.org/html/draft-ietf-Ad hoc-dymo-17
[18] http://hipercom.inria.fr/olsr/draft-ietf-Ad hoc-olsr-11.txt
Mai Văn Linh-ĐTVT2-CH2009 93
BẢNG THUẬT NGỮ VIẾT TẮT
Chữ viết tắt Chữđầy đủ Chữ tiếng Việt
ABR Associativity-Based Routing Định tuyến theo liên kết ACK Acknowledgement Báo nhận
AODV Ad Hoc On-Demand Distance Vector
giao thức định tuyến vector khoảng cách theo yêu cầu Ad hoc
AP Access point Điểm truy cập BS Base station Trạm gốc
CBR Constant Bit Rate Tốc độ bit cốđịnh DEST Destination Đích
DHCP Dynamic host configuration protocol
Giao thức cấu hình host động DSDV Destination sequenced distance
vector
Định tuyến vector khoảng cách tuần tựđến đich
DSR Dynamic source routing Định tuyến nguồn động DYMO Dynamic AD HOC On-demand
FDMA Frequency division multiple access Đa truy cập phân chia theo sóng
Id Identifcation Nhận dạng IEEE Institute of electrical and
electronics engineers
Học viện kĩ sưđiện và điện tử
IN Intermediate Trung gian IP Internet protocol
LAN Local area network Mạng cục bộ
MAC Media access control Điều khiển truy cập đường truyền
Mai Văn Linh-ĐTVT2-CH2009 94
OLSR Optimized Link State Routing Định tuyến trạng thái liên kết tối ưu
OMNET Objective Modular Network Testbed in C++.
PDA Personal digital assistant Máy trợ lý cá nhân dùng kĩ
thuật số
QoS Quality of service Chất lượng dịch vụ
RPC Remote Procedure Call
SRC Source Nguồn
TCP Transmission power control Điều khiển công suất truyền TDMA
TTL Time to Live Thời gian sống VANET Vehicular Ad Hoc Network Mạng xe cộ ad hoc WLAN Wireless local area network Mạng không dây cục bộ
Mai Văn Linh-ĐTVT2-CH2009 95 PHỤ LỤC Mã nguồn chương trình • File omnetpp.ini [General] #debug-on-errors = true sim-time-limit = 300s seed-0-mt = 5 num-rngs = 2 network = inet.examples.adhoc.grid_aodv.Grid_movilidad cmdenv-express-mode = true tkenv-plugin-path = ../../../Etc/plugins #tkenv-default-run=1
description = "Aodv Simple test" **.vector-recording = false cmdenv-express-mode = true *.numHosts =25 *.nodeSeparation = 150 *.playgroundSizeX = 500 *.playgroundSizeY = 500 **.channelNumber = 0 **.numberOfChannels = 1 **.debug = true **.coreDebug = false
Mai Văn Linh-ĐTVT2-CH2009 96
**.channelNumber = 0
**.wlan.mgmt.frameCapacity = 10 # channel physical parameters
*.channelcontrol.carrierFrequency = 2.4GHz *.channelcontrol.pMax = 2.0mW
*.channelcontrol.sat = -110dBm *.channelcontrol.alpha = 2
*.channelcontrol.numChannels = 1 # udp apps (on)
**.host[*].udpAppType="UDPBasicBurst" **.host[*].numUdpApps=1 **.host[0].udpApp[0].destAddresses ="random_name(host)" **.host[1].udpApp[0].destAddresses="random_name(host)" **.host[2].udpApp[0].destAddresses="random_name(host)" **.host[3].udpApp[0].destAddresses="random_name(host)" **.host[4].udpApp[0].destAddresses="random_name(host)" **.host[*].udpApp[0].destAddresses="" **.udpApp[0].localPort=1234 **.udpApp[0].destPort=1234 **.udpApp[0].messageLength=512B # Bytes **.udpApp[0].messageFreq = 0.25s **.udpApp[0].message_freq_jitter=uniform(-0.001s,0.001s,1)
Mai Văn Linh-ĐTVT2-CH2009 97