Các ứng dụng của công nghệ cảm biến không dây và đánh giá bằng mô phỏng

MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY 1.1 Giới thiệu về mạng cảm biến không dây 1.2 Mô tả hệ thống quát 1.3 Các nhân tố ảnh hưởng đến mạng cảm biến không dây 1.3.1 Tiêu thụ nguồn mức thấp 1.3.2 Chi phí thấp 1.3.3 Mức độ khả dụng 1.3.4 Kiểu mạng 1.3.5 Bảo mật 1.3.6 Thông lượng dữ liệu 1.3.7 Trễ bản tin 1.3.8 Tính di động 1.4 Đặc điểm của mạng cẩm biến không dây 1.4.1 Kích thước vật lý nhỏ 1.4.2 Hoạt động đồng thời với độ tập trung cao 1.4.3 Khả năng liên kết vật lý và phân cấp điều khiển hạn chế 1.4.4 Tính đa dạng trong thiết kế và sử dụng 1.4.5 Hoạt động tin cậy 1.5 Kiến trúc và giao thức mạng cảm biến không dây 1.5.1 Lớp ứng dụng 1.5.2 Lớp giao vận 1.5.3 Lớp mạng 1.5.4 Lớp liên kết số liệu 1.5.5 Lớp vật lý 1.6 Các hỗ trợ truyền thông cho mạng cảm biến không dây 1.6.1 Hệ điều hành TinyOS 1.6.2 Hệ thống Cảm biến mạng tích hợp không dây WINS CHƯƠNG 2: CÁC ỨNG DỤNG CỦA MẠNG CẢM BIẾN KHÔNG DÂY 2.1 Các ứng dụng của công nghệ mạng cảm biến không dây 2.1.1 Giám sát và điều khiển công nghiệp 2.1.2 Tự động hoá gia đình và điện dân dụng 2.1.3 Cảm biến trong quân sự 2.1.4 Cảm biến trong y tế và giám sát sức khoẻ 2.1.5 Cảm biến môi trường và nông nghiệp thông minh 2.2 Một ứng dụng giám sát môi trường sống - đảo Great Duck Island 2.4 Kế hoạch thi hành CHƯƠNG 3: MÔ HÌNH HOÁ VÀ PHẦN MỀM MÔ PHỎNG MẠNG CẢM BIẾN KHÔNG DÂY 3.1 Mô hình hoá mô phỏng 3.1.1 Mô hình SWAN theo dõi mức độ ô nhiễm môi trường 3.1.2 Mô hình của trường Đại học Los Angeles California 3.2 Thiết kế phần mềm mô phỏng mạng cảm biến không dây 3.2.1 Phần mềm NS-2 3.2.2 Cơ sở phát triển mô phỏng mạng cảm biến trên nền NS-2 3.2.3 Các bổ sung vào NS-2 3.2.4 Các chỉnh sửa trong NS-2 3.3 Mô tả mã lập trình mô phỏng 3.3.1 Thiết lập kênh hiện tượng và kênh dữ liệu 3.3.2 Thiết lập một giao thức MAC cho kênh Phenomenon 3.3.3 Thiết lập các node Phenomenon 3.3.4 Thiết lập tốc độ và kiểu xung của Phenomenon 3.3.5 Định hình node cảm biến 3.3.6 Thiết lập các node non-sensor (điểm thu thập dữ liệu, Gateway) 3.3.7 Gắn kết các tác nhân cảm biến 3.3.8 Gắn kết một tác nhân UDP và ứng dụng cảm biến cho mỗi node 3.3.9 Khởi động ứng dụng cảm biến CHƯƠNG 4: ĐÁNH GIÁ CHẤT LƯỢNG DỊCH VỤ QoS CỦA MẠNG CẢM BIẾN KHÔNG DÂY 4.1 Mô tả kịch bản mô phỏng 4.2 Thực hiện mô phỏng 4.2.1 Viết mã và chạy mô phỏng 4.2.2 Tính toán kết quả 4.2.3 Tính tỷ lệ mất gói udp tại lớp giao 4.2.4 Tính độ trễ gói (s) 4.2.5 Tính tốc độ gói udp trung bình (kbps) 4.3 Đánh giá kết quả đạt được sau mô phỏng KẾT LUẬN TÀI LIỆU THAM KHẢO Trích dẫn Nội dung Trong quá trình phát triển của con người, những cuộc các mạng về công nghệ đóng một vai trò rất quan trọng, chúng làm thay đổi từng ngày từng giờ cuộc sống của con người, theo hướng hiện đại hơn. Đi đôi với quá trình phát triển của con người, những thay đổi do chính tác động của con người trong tự nhiên, trong môi trường sống cũng đang diễn ra, tác động trở lại chúng ta, như ô nhiễm môi trường, khí hậu thay đổi, v.v . Dân số càng tăng, nhu cầu cũng tăng theo, các dịch vụ, các tiện ích từ đó cũng được hình thành và phát triển theo. Đặc biệt là áp dụng các công nghệ của các ngành điện tử, công nghệ thông tin và viễn thông vào trong thực tiễn cuộc sống con người. Công nghệ cảm biến không dây được tích hợp từ các kỹ thuật điện tử, tin học và viễn thông tiên tiến vào trong mục đích nghiên cứu, giải trí, sản xuất, kinh doanh, v.v ., phạm vi này ngày càng được mở rộng, để tạo ra các ứng dụng đáp ứng cho các nhu cầu trên các lĩnh vực khác nhau. Hiện nay, công nghệ cảm biến không dây chưa được áp dụng một các rộng rãi ở nước ta, do những điều kiện về kỹ thuật, kinh tế, nhu cầu sử dụng. Song nó vẫn hứa hẹn là một đích đến tiêu biểu cho các nhà nghiên cứu, cho những mục đích phát triển đầy tiềm năng. Để áp dụng công nghệ này vào thực tế trong tương lai, đã có không ít các nhà khoa học đã tập trung nghiên cứu, nắm bắt những thay đổi trong công nghệ này. Được sự định hướng và chỉ dẫn của Tiến sĩ Đinh Văn Dũng, phòng Nghiên cứu Phát triển Dịch vụ mới và Tự động hóa, Viện Khoa học Kỹ thuật Bưu Điện, em đã chọn đề tài đồ án: “Các ứng dụng của công nghệ cảm biến không dây và đánh giá bằng mô phỏng”. Với mục đích tìm hiểu về mạng cảm biến không dây, dựa trên công nghệ mạng di động tạm thời, triển khai nhanh không cần một cơ sở hạ tầng trong lĩnh vực cảm biến thu nhận dữ liệu. Trong đồ án còn thực hiện một mô phỏng cho mạng cảm biến không dây với mục đích tìm hiểu phương pháp mô hình hoá, mô phỏng mạng và phân tích đánh giá kết quả từ một chương trình mô phỏng. Nội dung của đồ án được thể hiện qua 4 chương: Chương 1: Tổng quan về mạng cảm biến không dây. Chương 2: Các ứng dụng của mạng cảm biến không dây. Chương 3: Mô hình hoá và phần mềm mô phỏng mạng cảm biến không dây. Chương 4: Đánh giá chất lượng dịch vụ QoS của mạng cảm biến không dây. Do kiến thức và khả năng của em còn hạn chế, nên đồ án tốt nghiệp này không tránh khỏi các sai sót. Mong được sự góp ý của các thầy, các cô và các bạn để nội dung đồ án được hoàn thiện hơn.

doc100 trang | Chia sẻ: banmai | Lượt xem: 2498 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Các ứng dụng của công nghệ cảm biến không dây và đánh giá bằng mô phỏng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
khác. Các liên kết thời gian cung cấp các đầu mối cơ bản cho việc lập trình sự kiện đồng thời để chắc chắn rằng các trạng thái trong tương lai của một thực thể không ảnh hưởng tới các trạng thái trước của thực thể khác. Sự trao đổi số liệu giữa các thực thể được thực hiện thông qua một kênh biểu thị một dòng các sự kiện theo một phương hướng duy nhất giữa hai thực thể. Trong thực tế, kênh là một khái niệm được xây dựng bởi các định nghĩa và ánh xạ của hai lớp đối tượng: kênh ra (outChannel) và kênh vào (inChannel). Trong truyền thông xảy ra giữa hai thực thể, kênh ra của một thực thể phải được ánh xạ tới kênh vào của một thực thể khác. Cơ cấu mô phỏng mở rộng Dartmouth (DaSF) thực thi mô phỏng hệ thống với API của SSF. Từ nguyên dạng ban đầu, DaSSF được thiết kế cho các hệ thống hiệu năng cao, do đó, được áp dụng cho các nền máy tính song song. Tuy nhiên, nó cũng có thể chạy trong các hệ thống xử lý đơn. Qua các thí nghiệm quy mô lớn, DaSSF đã chứng tỏ hiệu năng cao trong các mô hình Internet đa giao thức với mười nghìn thực thể mạng phức tạp tốc độ lên tới một triệu sự kiện mạng một giây. Các thí nghiệm khác cũng chỉ ra rằng DaSSF có thể mô phỏng ba triệu thực thể mạng đơn giản. Trong trường hợp này, tốc độ xử lý gần tỷ lệ với số lượng bộ xử lý. DaSSF đạt được mục tiêu hiệu năng do áp dụng các kỹ thuật giảm đến mức tối thiểu bộ nhớ sử dụng và năng lực xử lý cho tiến trình. c/ Bộ định tuyến WiroKit của BBN WiroKit được phát triển bởi viện công nghệ BBN là một bộ định tuyến di động cho các mạng Ad hoc không dây. Nó được thiết kế để chạy mà không cần sửa chữa trong mô phỏng hay trong nền phần cứng thực tế. Tức là các định nghĩa giao diện giống nhau được sử dụng trong mã chạy một mô phỏng và mã chạy bên trong đơn vị vô tuyến di động. Thiết kế này tuân theo phương pháp hướng đối tượng, trong thực tế, WiroKit được chứa hoàn toàn trong một đối tượng đơn. Đặc trưng này là yếu tố cần thiết cho các môi trường mô phỏng, vì nó cho phép nhiều bản sao của WiroKit thực thi trên một không gian địa chỉ đơn. Yêu cầu về nền máy tính để chạy WiroKit là rất thấp. Nó hoạt động hoàn toàn trên cơ sở mã cho các giao thức định tuyến, cơ chế chuyển tiếp, tiến trình đơn tuyến (thực hiện các công việc lần lượt theo một chuỗi) và quản lý hàng đợi, bộ nhớ. Hầu như không cần đến hệ điều hành mà chỉ cần đặt trong một nền máy tính mà WiroKit được phân một phần bộ nhớ tại thời điểm khởi động, truy nhập theo thời gian thực và một khối lượng nhỏ nhất trong tổng chu trình đơn vị xử lý (CPU) cho việc thực thi chuỗi công việc chính. Đối tượng định tuyến WiroKit nhận các gói từ các lớp giao thức cao hơn, các gói này được tổ chức thành các khung phù hợp với bộ điều giải (Modem: modulator/demodulator) vô tuyến. Ngược lại, WiroKit nhận các khung từ bộ điều giải vô tuyến rồi tách thành các gói phù hợp với các giao thức bậc cao hơn. Trong WiroKit, bất kì giao thức định tuyến nào cũng có thể được sử dụng miễn là cùng một hệ giao tiếp lập trình ứng dụng (API). Tính linh hoạt này cho phép các đối tượng định tuyến này có thể ứng dụng vào mạng cảm biến không dây. Các giao thức định tuyến phân phối thông tin tới mọi nơi (“what is where”) trong mạng cảm biến, các node cảm biến sẽ chuyển tiếp thông báo (Datagrams-Forwarding) qua các liên kết để tới đích. Hiệu quả của hầu hết các giao thức này định tuyến tỷ lệ nghịch với số lượng node mạng. Chi phí của giao thức tăng theo bình phương (hoặc cao hơn) số lượng node mạng. Chi phí này có thể là lưu lượng điều khiển qua không gian, bộ nhớ node hay yêu cầu đơn vị xử lý (CPU) của node. Cơ chế chuyển tiếp các gói phi kết nối chịu trách di chuyển các bản tin qua các liên kết dọc theo đường từ nguồn tới đích. Việc này được hoàn thành nhờ việc phổ biến thông tin đến mọi nơi bởi các giao thức định tuyến. Có nhiều hiệu quả quan trọng trong cơ chế nay. Ví dụ như việc tập hợp các gói tin vào các khung vô tuyến đơn để tăng hiệu quả kênh truyền và giảm công suất tiêu thụ, tiến trình khi nhận tín hiệu vô tuyến có thể đưa vào trạng thái nghỉ để tăng tuổi thọ nguồn acquy và các hiệu quả tương tự. Trong thực tế, vấn đề quan trọng nhất của các cơ chế chuyển tiếp là thuật toán chuyển tiếp theo đường ngắn nhất tức là định hướng bản tin từ nguồn tới điểm thu qua số lượng đường truyền dẫn vô tuyến nhỏ nhất, WiroKit con tập hợp các gói vào một khung vô tuyến đơn. d/ Kiến trúc mô phỏng mạng cảm biến không dây Ad hoc (SWAN) SWAN ra đời từ sự tích hợp của hai thành phần cơ bản là phần mềm DaSSF và WiroKit của BBN. Trong khi WiroKit cung cấp các chức năng định tuyến trong các mô hình mạng Ad hoc không dây thì DaSSF có nhiệm vụ gắn kết cấu trúc các mô hình con với nhau. Hình 3.2 chỉ ra các thành phần chính của SWAN và dòng số liệu giữa các thành phần này. Môi trường mô phỏng có bốn mô hình con chính: mô hình địa lý (Terrain Model), mô hình phân tán chùm (Plume Disperson Model), mô hình kênh vô tuyến (RF Channel Model) và mô hình node (Node Model). Mô hình địa lý là một bản đồ tĩnh thống nhất trong cả mô hình phát tán chùm và mô hình vô tuyến. Vì cả hai mô hình này đều hoạt động trong cùng một môi trường địa lý nên chúng phải được định hướng theo cùng một sự mô tả. Theo đó, các cản trở trên đường truyền sóng vô tuyến cũng có mặt trên đường đi của các chùm tín hiệu từ các hiện tượng mục tiêu. Trong hoạt động hiện tại của SWAN, địa hình phẳng được sử dụng nên cả tín hiệu từ các hiện tượng và tín hiệu vô tuyến đều có thể phát tự do qua không gian giả định. Mô hình địa lý (Terrain Model) giữ vị trí rất quan trọng trong các phát triển xa hơn của cơ cấu này. Hình 3.2: Cơ cấu SWAN Để xây dựng một mô hình node cho các cảm biến thông minh, WiroKit được sử dụng như một mô hình con. Trong cách này, môi trường cần thiết cho hoạt động của WiroKit được đáp ứng. Như một bộ định tuyến, WiroKit nhận các gói số liệu từ mô hình cảm biến không dây, xác định nơi kế tiếp chúng phải chuyển đến để tới được node giám sát (Monitor node) và tạo ra các gói vô tuyến mang theo thông tin định tuyến. Cuối cùng, các gói vô tuyến này được chuyển tới bộ điều giải (modem) vô tuyến để chuyển sang dạng tín hiệu điện từ. Trong mô hình này, modem mô tuyến được bỏ qua vì không cần nghiên cứu chi tiết dạng tín hiệu vô tuyến. Đầu ra từ WiroKit được chuyển thẳng ra mô hình kênh vô tuyến (RF Channnel Model). Ngược lại, WiroKit có thể nhận đầu vào từ mô hình kênh vô tuyến khi các gói vô tuyến được chuyển qua trên đường tới đích, các node trung gian nhận và chuyển chúng theo hướng thích hợp. Hình 3.3: Phân tích các thành phần trong môi trường mô phỏng Mô hình này có thể mô phỏng hoạt động của các mạng cảm biến có số node rất lớn, lên đến 10 nghìn node với thời gian khảo sát tương đối dài (có thể đến 1000s). Một ví dụ về kết quả mô phỏng như hình 3.4. Hình 3.4: Khảo sát thông lượng và độ trễ trung bình trong mạng cảm biến 3.1.2 Mô hình của trường Đại học Los Angeles California Mô hình được xây dựng bởi nhóm nghiên cứu Sung Park, Andreas Savvides, Mani B.Srivastava thuộc phòng thí nghiệm “Networked Emebedded Systems”, khoa Điện tử trường Đại học Los Angeles California. Mô hình này được tham khảo để phát triển phần mềm mô phỏng sử dụng trong đồ án này. MÔ HÌNH CỦA TRƯỜNG ĐẠI HỌC LOS ANGELES CALIFORNIA a/ KỊCH BẢN MÔ PHỎNG Trong kịch bản mô phỏng, một tập các node mạng không dây trang bị các kiểu cảm biến khác nhau được triển khai trong một vùng xác định (trường cảm biến) để thực hiện các nhiệm vụ cảm biến môi trường. Các kết quả cảm biến được xử lý trong mạng và các báo cáo được chuyển đến các node Gateway hay điểm thu thập dữ liệu thông qua các kết nối không dây. Kết quả này có thể chuyển đến trực tiếp người sử dụng hay đưa qua mạng Internet. Kịch bản này được mô tả trên hình 3.5. Node cảm biến Node người sử dụng Node cảm biến Đích Đích Node cảm biến Internet Node người sử dụng Gateway Node cảm biến Hình 3.5: Kịch bản mạng cảm biến Trong môi trường mô phỏng này, một kịch bản mạng cảm biến điển hình bao gồm ba kiểu node : 1) Các node cảm biến, quan sát trực tiếp môi trường; 2) Các node đích (target node) tạo ra các kích thích cảm biến tác động đến các cảm biến bằng các kênh cảm biến thông qua sự biến thiên của các đại lượng vật lý như các chấn động, âm thanh, hồng ngoại, ...Ví dụ, xe cộ đang di chuyển tạo ra các chấn động mặt kích thích các cảm biến địa chấn hay âm thanh kích thích các cảm biến thính giác; 3) Các node người sử dụng (User node) đưa ra kết quả của mạng cảm biến cho người sử dụng. b/ Xây dựng Hình 3.6 chỉ ra kiến trúc mô hình ba kiểu node được xây dựng từ các khối cơ sở của môi trường mô phỏng. Hình 3.6: Kiến trúc mô hình các node: cảm biến, đích, người sử dụng. Trong mô hình này, mỗi node cảm biến được trang bị một ngăn xếp giao thức mạng không dây và một hay nhiều ngăn xếp cảm biến tương ứng với các kiểu cảm biến khác nhau của node cảm biến. Vai trò của ngăn xếp giao thức cảm biến là phát hiện và xử lý các kích thích cảm biến trên kênh cảm biến và hướng chúng tới lớp ứng dụng, nơi xử lý và cuối cùng là chuyển các kết quả tới một node người sử dụng dưới dạng báo cáo cảm biến. Mỗi ngăn xếp cảm biến làm việc với một loại đối tượng cần cảm biến. Ngăn xếp giao thức mạng không dây đảm nhận việc thông tin giữa node cảm biến với các node cảm biến khác và với các node User hay gateway. Mỗi node còn được trang bị bổ xung một mô hình nguồn tương ứng với các phần cứng sản xuất và tiêu thụ năng lượng. Mô hình này bao gồm một bộ cung cấp năng lượng (acquy), và một tập các thành phần tiêu thụ năng lượng (CPU, Bộ thu phát vô tuyến, các cảm biến) . Mỗi thành phần tiêu thụ năng lượng có thể ở một trong các trạng thái và cách thức hoạt động khác nhau tượng ứng với các kiểu tiêu thụ năng lượng khác nhau. Ví dụ, bộ thu phát vô tuyến có thể ở các trạng thái nghỉ (sleep mode), trạng thái nhận tín hiệu (receive mode) hay một trong các trạng thái phát tương ứng với các tốc độ kí hiệu, các phương thức điều chế và công suất phát khác nhau. Tương tự, CPU cũng có thể ở trong trạng thái nghỉ, một trong nhiều trạng thái tích cực tương ứng với điện áp và tần số khác nhau. Các thuật toán trong mạng và ngăn xếp cảm biến điều khiển sự thay đổi kiểu tiêu thụ năng lượng. Ví dụ, giao thức MAC có thể thay đổi kiểu thu phát vô tuyến từ nghỉ sang nhận tín hiệu. Ngược lại, hoạt động của các thuật toán này lại phụ thuộc vào các kiểu hoạt động này. Ví dụ, thời gian được tính bởi lớp vật lý trong ngăn xếp giao thức phụ thuộc vào tốc độ số liệu của phương thức thu phát vô tuyến hiện tại. Tất cả các cơ chế trên được thực hiện nhờ các thuật toán đưa ra các sự kiện thay đổi kiểu hoạt động của các thực thể tiêu thụ năng lượng và thuật toán đọc các giá trị tham số thích hợp từ các thực thể này. Các node đích (Target node) đại diện cho các đối tượng môi trường là mục tiêu cần cảm biến, quan sát như các chất hóa học (ví dụ CO), các vi sinh vật , .v.v. Các node đích được xây dựng trên thành phần cơ bản là ngăn xếp cảm biến. Ngăn xếp cảm biến đảm nhận việc phát các tín hiệu của node đích như âm thanh, chấn động,... quảng bá trong môi trường thông qua kênh cảm biến. Vì việc phát này mô phỏng sự phát tán tự nhiên của tín hiệu từ các hiện tượng nên các giao thức phát không có cơ chế điều khiển tắc nghẽn và chống tranh chấp. Ngăn xếp cảm biến của mỗi node đích tương ứng với một ngăn xếp cảm biến của node cảm biến. Các node User là các điểm thu thập số liệu từ mạng cảm biến để tương tác trực tiếp với người sử dụng hoặc chuyển qua mạng Internet. Các node User được xây dựng trên ngăn xếp giao thức mạng không dây. Ngăn xếp giao thức mạng không dây đảm bảo thông tin giữa node User với các node cảm biến. Hình 3.7: Kiến trúc mô hình mạng cảm biến không dây Hình 3.7 minh hoạ mô hình mạng cảm biến trong môi trường mô phỏng. Trong mô hình tổ chức mạng, kênh không dây (Wireless Channel) và kênh cảm biến (Sensor Channel) được xây dựng với hai cơ chế truyền thông riêng. Trong kịch bản mô phỏng điển hình, một node đích sẽ di chuyển qua một nhóm node cảm biến được triển khai trong trường cảm biến. Các node đích này phát ra các tín hiệu quảng bá trên kênh cảm biến trong một phạm vi xác định. Các node cảm biến nằm trong phạm vi này, có thể nhận được các tín hiệu cảm biến trên cơ sở hoạt động của ngăn xếp cảm biến tương ứng. Khi node cảm biến nhận thấy các tín hiệu cảm biến được là đáng chú ý, nó sẽ chuyển các gói tin về sự kiện này thông qua kênh không dây đến node User. Bằng cách phân tách kênh cảm biến và kênh không dây, mô hình mạng này giúp cho việc mô phỏng và phân tích hoạt động của mạng cảm biến trở lên dễ dàng hơn khi các sự kiện cảm biến hiện tượng mục tiêu và các sự kiện phát và nhận gói trong truyền thông không dây có thể diễn ra đồng thời. Ngoài ra, với việc cho phép một node cảm biến có thể liên kết tới nhiều kênh cảm biến, môi trường mô phỏng có khả năng cung cấp các phân tích về hoạt động phức tạp của node cảm biến khi chúng phản ứng lại nhiều tín hiệu cảm biến nhận được đồng thời như chấn động, nhiệt độ, âm thanh,... c/ TỔ CHỨC NODE VÀ TẠO LƯU LƯỢNG Trong việc nghiên cứu hoạt động của một mạng cảm biến không dây, yếu tố cốt yếu là kịch bản triển khai toàn bộ bao gồm hình trạng mạng, phạm vi vô tuyến, phạm vi cảm biến, quỹ đạo của các mục tiêu cảm biến và các lưu lượng sự kiện kết quả, quỹ đạo của các node User và các lưu lượng truy vấn. Tất cả các yếu tố này góp phần tạo lên các thiết kế với sự thoả hiệp tốt nhất, từ đó có thể đánh giá hiệu quả của các thuật toán hay giao thức mới dưới các kịch bản triển khai khác nhau. Để nghiên cứu các hiệu quả này, cần phải phát triển các công cụ tạo lập và quan sát các kịch bản mô phỏng chi tiết cung cấp khả năng xây dựng hình trạng và lưu lượng mạng. Các công cụ này có thể được phát triển trên nền phần mềm mô phỏng mạng NS (Network Simulator) vì phần mềm này đã có sẵn cơ sở để mô phỏng các mạng IP nói chung (cả mạng có dây và không dây) và có tính mở rất cao. Việc Tổ chức node cảm biến phụ thuộc vào nhiệm vụ của mạng. Ví dụ, để theo dõi các loài thú hoang dã trong một khu rừng, các cảm biến có thể được triển khai đồng đều trong khu rừng. Tuy nhiên, với mạng cảm biến được triển khai cho nhiệm vụ phòng thủ đường biên thì các cảm biến phải được triển khai theo đường được xác định rõ. Trong một số trường hợp khác, các cảm biến có thể được triển khai tuỳ theo yêu cầu của người sử dụng. Trong môi trường mô phỏng, người sử dụng có thể tổ chức node theo các đồ hình khác nhau tuỳ theo yêu cầu nhiệm vụ của mạng. Ngoài việc tổ chức node, các yêu cầu lưu lượng cũng có nhiều loại khác nhau.Lưu lượng mạng cảm biến được phân thành ba kiểu chính: 1) Lưu lượng Người sử dụng đến node cảm biến: được hình thành từ các lệnh và truy vấn từ người sử dụng đến mạng. 2) Lưu lượng node cảm biến đến người sử dụng: gồm các báo cáo từ cảm biến đến người sử dụng. 3) Lưu lượng node cảm biến đến node cảm biến: hình thành do nhu cầu cộng tác xử lý các sự kiện cảm biến trong mạng trước khi thông báo đến người sử dụng. Kiểu lưu lượng cuối cùng là phức tạp nhất và nó phụ thuộc vào phương pháp cảm biến. d/ NGĂN XẾP CẢM BIẾN VÀ KÊNH CẢM BIẾN Ngăn xếp cảm biến mô phỏng các hoạt động tạo, phát hiện và xử lý các tín hiệu cảm biến. Trong mô hình node cảm biến nêu trên, ngăn xếp cảm biến là một điểm thu số liệu (sink) có nhiệm vụ kích hoạt lớp ứng dụng mỗi khi phát hiện thấy một sự kiện cảm biến. Một tập các chức năng kích hoạt khác nhau từ các phương pháp cảm biến đơn giản đến các chức năng xử lý tín hiệu tinh vi đều được thực hiện bởi ngăn xếp cảm biến. Trong mô hình node đích, ngăn xếp cảm biến hoạt động như một nguồn tín hiệu. Ngăn xếp cảm biến của một node đích chứa dạng tín hiệu đặc trưng cho kiểu mục tiêu cảm biến. Tín hiệu này được phát trong các môi trường khác nhau (mặt đất, không khí, nước,.v.v.), nơi mà các mục tiêu di chuyển. Hình 3.8 chỉ ra dạng tín hiệu thực tế nhận được từ một cảm biến địa chấn và dạng tín hiệu mô phỏng của các chấn động mặt đất do sự di chuyển của xe cộ. Hình 3.8: Ví dụ về mô phỏng dạng tín hiệu. a) Tín hiệu địa chấn thực tế, b) Tín hiệu địa chấn mô phỏng Các môi trường cảm biến trong thực tế được mô hình hoá thành các kênh cảm biến, nơi các sự kiện cảm biến như các tín hiệu địa chấn, âm thanh hoặc hồng ngoại được lưu thông. 3.2 Thiết kế phần mềm mô phỏng mạng cảm biến không dây Trong thiết kế phần mềm (còn được gọi là chuyển đổi mô hình), mô hình mô phỏng được phát triển bằng một ngôn ngữ lập trình nào đó. Trong đồ án này, việc mô phỏng mạng cảm biến được thực hiện trên phần mềm mô phỏng mạng NS-2 đã mở rộng cho môi trường mạng cảm biến. Do đó, phần tiếp theo sẽ trình bày về phần mềm NS-2 và phần mở rộng NRL’Sensorsim trên NS-2 cho mô phỏng mạng cảm biến 3.2.1 Phần mềm NS-2 a/ Giới thiệu NS-2 NS-2 là chương trình mô phỏng mạng theo phương pháp mô phỏng các sự kiện rời rạc. NS-2 hỗ trợ mô phỏng mạng có dây và không dây, TCP, UDP , các giao thức truyền thông điểm-đa điểm và định tuyến khác,.v.v. NS-2 được viết bằng C++ và ngôn ngữ hướng đối tượng Tcl (Otcl: object-oriented tool command language). NS-2 có một lịch sử khá dài, bắt nguồn từ các phần mềm REAL của UCB (1989) và NEST của Colombia (1992). Đến năm 1995, NS-2 được phát triển trong dự án VINT (Virtual InterNet Testbed hay nền kiểm thử Internet ảo). VINT là dự án hợp tác giữa AT&T Reseach, Lawrence Berkeley National Laboratory, ETH TIK, Xerox PARC, UCB-Berkeley và USC/ISI. Hiện nay, Ns đang tiếp tục được phát triển trong các dự án SAMAN và CONSER, cùng với sự hợp tác của nhiều nhà nghiên cứu và ACIRI. Những tổ chức đã đóng góp đáng kể vào NS-2 là UCB Daeledus, UMU Monarch và Sun MicroSystems. So với các phần mềm mô phỏng mạng khác, NS-2 có những ưu thế sau: NS-2 có mã nguồn mở miễn phí. NS-2 có kiến trúc mở, tạo điều kiện thuận lợi cho việc mở rộng NS-2 được phát triển từ các phần mềm nổi tiếng trên thế giới như REAL, NEST nên nó có những điểm mạnh và đã khắc phục được những yếu điểm của các phần mềm này NS-2 hỗ trợ các tính năng cơ bản của mạng IP, từ đó có thể phát triển thêm các phần tử mạng. NS-2 có cấu trúc module, rất thuận tiện cho việc nghiên cứu tìm hiểu và phát triển. Nhìn từ phía người sử dụng , NS-2 là chương trình biên dịch mã Otcl được liên kết tới thư viện C++ . Các đối tượng cơ sở như tcp, CBR,..được xây dựng trong C++. Đầu vào NS-2 là tập mã lệnh Otcl , đầu ra là các tập tin mô phỏng tiến trình theo yêu cầu được thể hiện trong tập lệnh Otcl. NS-2 Tập lệnh Otcl (mã nguồn) Chương trình biên dịch Otcl Kết quả mô phỏng Các thư viện C++ Hình 3.9: Cấu trúc chương trình NS-2 Kết quả mô phỏng có thể quan sát bằng hình ảnh mô tả trực quan với ứng dụng Nam (the Network Animator) , bằng đồ thị (sử dụng Xgraph) hoặc có thể được xử lý bằng các tập lệnh tuỳ chọn. Với cấu trúc này, việc sử dụng NS-2 trở lên đơn giản hơn nhiều so với sử dụng trực tiếp C++ nhưng vẫn có được những tính năng của C++. Với những đặc điểm trên, NS-2 thực sự là một công cụ phần mềm hữu ích cho việc học tập, nghiên cứu mạng thông tin, giúp cho việc thực hành mạng trở lên hiệu quả hơn. b/ Cơ chế hoạt động của phần mềm NS-2 Hoạt động của NS-2 được chia thành hai phần là phần dữ liệu (được xây dựng trong C++) và phần điều khiển (được xây dựng trong Otcl). Để giảm thời gian xử lý gói và sự kiện, thời biểu sự kiện và các đối tượng thành phần mạng cơ bản trong phần số liệu được viết và biên dịch bằng C++. Các đối tượng được biên dịch này được tạo sẵn và được liên kết tới Otcl qua bộ thông dịch Otcl. Mỗi đối tượng C++ này được điều khiển và được thiết lập các tham số thông qua một đối tượng điều khiển tương ứng trong Otcl. Các đối tượng C++ không cần điều khiển hoặc chỉ hoạt động nội tại trong phần C++ thì không cần liên kết đến Otcl. Tương tự, cũng có một số đối tượng (không nằm trong phần dữ liệu) có thể hoạt động hoàn toàn chỉ trong Otcl. Các đối tượng điều khiển trong Otcl được ánh xạ 1-1 tới các đối tượng cần điều khiển trong C++. Như vậy, cấu trúc phân cấp các đối tượng này trong hai phần C++ và Otcl là tương tự nhau. Quan hệ giữa C++ và Otcl được minh họa trên hình 3.10. Hình 3.10: Tính đối ngẫu giữa C++ và Otcl Hình 3.11 chỉ ra kiến trúc NS-2. Trong kiến trúc này, người sử dụng (không phải người phát triển NS-2) ở vị trí góc dưới bên trái. Dữ liệu đầu vào là tập lệnh Otcl được phân tích bởi lớp Tcl. Việc thiết lập và chạy mô phỏng trong Tcl sử dụng các đối tượng trong thư viện Otcl. Thời biểu các sự kiện và hầu hết các thành phần mạng hoạt động trong C++ và được liên kết tới Otcl. Việc này được thực hiện bởi lớp tclcl. Thời biểu các sự kiện NS-2 Các thành phần mạng Tcl 8.0 Otcl tclcl Hình 3.11: Kiến trúc tổng quan của NS-2 Chương trình NS-2 có nhiều phiên bản chạy trên các hệ điều hành khác nhau và với các yêu cầu cài đặt khác nhau. Trong đồ án này, phiên bản ns-allinone-2.27, chạy trên Windows trong môi trường Cygwin/X được sử dụng để tìm hiểu một số các tính chất của mạng cảm biến không dây. Cygwin/X cung cấp một giao diện chương trình ứng dụng (API) giống như hệ điều hành UNIX trên khuôn dạng Windows do NS-2 không chạy trực tiếp trên Windows. Môi trường NS - 2 là công cụ hết sức linh hoạt trong việc nghiên cứu các đặc tính của mạng cảm biến không dây (Wireless Sensor Network) vì nó có sẵn các mô hình cho mạng Ad hoc không dây, có ràng buộc về năng lượng. Trong NS - 2, một mạng cảm biến có thể được xác định với nhiều tổ hợp các đặc tính như thực tế. Môi trường mạng di động trong NS - 2, cung cấp sự hỗ trợ lẫn nhau giữa các giao thức như hình 3.12. Lớp ứng dụng CBR FTP Telnet Lớp giao vận TCP UDP Lớp mạng DSDV DSR TORA AODV OLSR Lớp liên kết số liệu 802.11 TDMA SMAC Lớp vật lý Các kiểu phát vô tuyến với suy giảm bậc 4 : trong không gian tự do, mặt đất hai tia, bóng phủ. Antent độ lợi đơn. Hình 3.12: Các giao thức được hỗ trợ trong NS-2 mô phỏng mạng không dây Với cơ sở này, ta chỉ cần thêm vào NS-2 một số đối tượng và thuộc tính để mô phỏng mạng cảm biến. 3.2.2 Cơ sở phát triển mô phỏng mạng cảm biến trên nền NS-2 Cơ sở duy nhất còn thiếu trong NS-2 cho mô phỏng mạng cảm biến là việc định nghĩa một "Phenomenon" (hiện tượng). Ví dụ như chất hoá học, âm thanh,... các đối tượng này có thể di chuyển và kích hoạt các cảm biến ở gần qua một kênh như phẩm chất không khí hay rung động mặt đất. Khi một cảm biến phát hiện tín hiệu từ một hiện tượng trong kênh này, cảm biến sẽ phản ứng tuỳ theo ứng dụng được định nghĩa bởi người sử dụng NS-2. Các ứng dụng này sẽ quy định việc cảm biến làm gì khi phát hiện ra hiện tượng mục tiêu. Ví dụ, cảm biến có thể định kỳ gửi thông báo đến một số điểm thu thập số liệu nếu nó còn tiếp tục phát hiện thấy hiện tượng, hoặc có thể làm một số việc phức tạp hơn như công tác với các cảm biến lân cận để có được thông tin cụ thể chi tiết hơn về hiện tượng trước khi cảnh báo người giám sát về một hiện tượng giả định. Mỗi mạng cảm biến có một ứng dụng duy nhất như giám sát động đất, môi trường,… Phần mở rộng NS-2 cung cấp các khả năng trình diễn các ứng dụng cảm biến. Với các ứng dụng này, chúng ta có thể nghiên cứu hoạt động của cơ sở hạ tầng mạng dưới các điều kiện khác nhau. Cơ sở của việc xây dựng mô hình mạng cảm biến trong NS-2 được minh hoạ trong hình 3.13. Hình 3.13: Cơ sở xây dựng mô hình mạng cảm biến sử dụng NS-2 Mô hình trình diễn của các hiện tượng trong NS-2 được xác định với các gói quảng bá được chuyển qua một kênh được chỉ định. Phạm vi ảnh hưởng của hiện tượng là tập hợp các node có thể nhận được các gói Phenom quảng bá trên kênh này. Mô hình này sẽ tuân theo quảng bá bất cứ kiểu phát và truyền nào (không gian tự do, mặt đất 2 tia hay bóng phủ, bao gồm cả các cấu hình node hiện tượng. Các kiểu phát này phủ sóng theo dạng gần tròn nhưng các hình dạng khác cũng có thể có được bằng cách thay đổi phạm vi của các gói Phenon và di chuyển một cách thích hợp một tập các node hiện tượng phát cùng kiểu. Việc phát quảng bá các gói Phenom được hoàn thành nhờ "giao thức định tuyến Phenom", quảng bá các gói Phenom với tốc độ xung xác định. Khi một gói Phenom được nhận bởi một node trên kênh Phenomenon (kênh hiện tượng), một thông báo về sự kiện này sẽ được chuyển đến ứng dụng cảm biến của node đó. 3.2.3 Các bổ sung vào NS-2 Giả sử có các node hiện tượng (Phenomenon) kích hoạt các node cảm biến, lưu lượng các node cảm biến tạo ra mỗi khi phát hiện thấy hiện tượng phụ thuộc vào chức năng của mạng. Ví dụ, các mạng thiết kế để để hiệu chỉnh đích bằng hiệu ứng năng lượng sẽ tạo ra nhiều lưu lượng cảm biến đến cảm biến hơn mạng thiết kế để cung cấp cho giám sát viên các dữ liệu chưa qua xử lý. Chức năng này phụ thuộc vào ứng dụng của cảm biến và phụ thuộc vào đặc tính lưu lượng kết hợp với mạng được mô phỏng. Đối tượng và chức năng được định nghĩa trong các file sau: - Phenom/Phenom.cc, h: Chứa giao thức định tuyến Phenom sử dụng cho việc phát tín hiệu từ các hiện tượng. Nó bao gồm các tham số cho tốc độ xung và kiểu hiện tượng (Bụi cabon, động đất mạnh, động đất nhẹ, tiếng ồn hay loại chung). Các kiểu này được đặt tên để nhận dạng các nguồn hiện tượng trong file trace (đầu ra mô phỏng). Tốc độ xung là tham số duy nhất điều khiển việc phát tín hiệu từ một hiện tượng. Hình 3.14: Hình ảnh mô tả mạng cảm biến (được lấy từ ứng dụng NAM trong NS-2) với 25 trạm cảm biến được triển khai theo hình lưới trên diện vuông, 20 node Phenomenon (mô tả đám mây khí gas-hiện tượng cần cảm biến) di động và một trạm thu thập số liệu (ở góc trên bên phải). - Sensornets-NRL/Sensoragent.cc, h: định nghĩa các agent cảm biến, các agent là điểm cuối, nơi các gói thuộc lớp mạng được tạo ra và phân tách, xử lý. Các node cảm biến sử dụng một tác nhân cảm biến liên kết đến kênh Phenomenon để tiếp nhận các gói tin Phenom và sử dụng một tác nhân TCP hay UDP để liên kết đến kênh của mạng vô tuyến để tạo các gói tin được gửi đi từ ứng dụng cảm biến. Các tác nhân cảm biến hoạt động như một ống dẫn, qua đó các gói tín Phenom được nhận và xử lý bởi các ứng dụng cảm biến. Các tác nhân cảm biến không thực sự quan tâm đến nội dung của gói Phenom, nó chỉ đơn giản đánh dấu các gói nhận được và chuyển đến ứng dụng cảm biến. Agent này được định nghĩa trong Sensor agent.cc. - Sensornets-NRL/Sensorapp.cc, h : ứng dụng cảm biến được định nghĩa trong file này tận dụng màu node và tạo ra các thông báo cảm biến để chỉ ra node tương ứng phát hiện ra hiện tượng (4 biến môi trường có thể được sử dụng là: SILENT_PHENOMENON, DISABLE_COLORS, MESG_SIZE và TRANSMIT_FREQ). Cụ thể, khi node đang nhận gói Phenom, ứng dụng này thay đổi màu node thành đỏ, kích thoạt một biến toàn cục "alarm" và gửi một thông báo cảm biến (MESG_SIZE byte) đến node sink (node thu thập số liệu) của kết nối UDP, TCP sau mỗi chu kỳ là TRANSMIT_FREQ giây. Khi một node không nhận được một Phenom packet trong thời gian chờ (SILENT_PHENOMENON giây), thì màu node trở về màu xanh lá cây. Nếu màu node được yêu cầu để biểu thị mức năng lượng thay vì trạng thái cảnh báo cảm biến thì ứng dụng bị tắt với việc đặt DISABLE_COLOR. - Sensornets-NRL/Phenom_packet.h: File này định nghĩa cấu trúc gói Phenom. Có 5 kiểu hiện tượng (CO, HEAVY - GEO, LIGHT - GEO, SOUND, and TEST - PHENOMENON) tương ứng với cacbon monoxide (chất carbon monoxide CO), Heavy Seismic actyvity (động đất mạnh), Light Seismic activy (động đất nhẹ), Audible Sound (âm thanh), sime Phenomenon (kiểu chung). Các kiểu này có thể được sử dụng mô phỏng với nhiều node hiện tượng và có thể dễ dàng nhận ra và phân biệt với các hiện tượng khác mà node cảm biến phát hiện, bằng cách nhìn vào file trace. 3.2.4 Các chỉnh sửa trong NS-2 Hình 3.15 ra sơ đồ cây NS - 2 mở rộng mô phỏng mạng cảm biến với các bổ sung (nhánh bên phải) và hiệu chỉnh (nhánh bên trái). Các chỉnh sửa trong NS-2 được thực hiện trong các file sau : - Trace/cmu-trace.cc, h: Lớp CMUTrace được sử dụng để in các phần quan trọng của một gói vào file trace. Vì phần mở rộng sử dụng kiểu gói mới cho các hiện tượng nên cần phải định dạng gói tương ứng trong file này. - Tcl/lib/ns-lib.tcl: Thành phần này trình bày về cấu hình node được chỉ ra trong tập lệnh NS-2. Phần mở rộng sử dụng kiểu node mới (các node cảm biến và Phenomenon). Vì thế, đã thêm vào một số điểm vào chức năng định cấu hình node (node-configure) để phù hợp với các kiểu này. - Tcl/lib/ns-mobilenode.tcl: Trong NS-2, dung lượng sẵn có cho việc lập mạng không dây đa kênh được sử dụng để phát các loại tín hiệu hiện tượng khác nhau. Bằng việc sử dụng kênh riêng cho các hiện tượng, ta có thể mô phỏng môi trường vật lý riêng cho từng loại hiện tượng như trong thực tế. Như vậy, các node cảm biến cần 2 giao diện: một với kênh 802.11 và một với kênh Phenom. Khả năng đa giao diện ("Multi - homed") được bổ xung trong ns-mobilnode.tcl. - Common/packet-h: Mỗi gói trong NS -2 được liên kết với một kiểu riêng tuỳ thuộc vào giao thức tương ứng như TCP, ARP, AODV, FTP, .v.v..Vì giao thức phát tín hiệu hiện tượng là mới nên phải định nghĩa kiểu gói tương ứng trong file tiêu đề packet.h. - Mac/Wireless-phy.cc: NS -2 có gồm mô hình năng lượng cho các node không dây được sử dụng để nghiên cứu lợi ích của các kỹ thuật duy trì năng lượng khác nhau. Như việc nghỉ hoạt động hay tận dụng các mật độ mạng tối ưu. Mô hình này gồm các đặc tính chỉ ra các yêu cầu công suất của các gói phát và nhận hay trạng thái rỗi trong thời gian mạng không hoạt động tích cực. Việc cảm biến hiện tượng là một quá trình có thể tiêu thụ năng lượng tại một tốc độ khác, nên đây là vấn đề quan trọng cần xem xét. Trong mac/Wireless-phy.cc cung cấp khả năng chỉ ra công suất tiêu thụ của các node trong khi cảm biến các hiện tượng. Một số sửa đổi khác được thực hiện ở mac/mac.cc, tcl/lib/ns-namsupp.tcl và queue/priqueue.cc. Một số sửa chữa trong thủ tục định màu node, bổ sung kiểu gói Phenom vào tổ chức NS-2 được thực hiện để đơn giản hoá giao diện đến kênh Phenomenon trên node cảm biến. NS-2.27/ Hình 3.15: Sơ đồ bổ sung và chỉnh sửa NS-2 3.3 Mô tả mã lập trình mô phỏng 3.3.1 Thiết lập kênh hiện tượng và kênh dữ liệu Các node Phenomenon sẽ phát trên một kênh khác với các node cảm biến để tránh sự tranh chấp tại lớp vật lý. Mọi node Phenomenon cần định cấu hình trên cùng một kênh ngay cả khi chúng phát từ các kiểu hiện tượng khác nhau. Lệnh sau thiết lập kênh vô tuyến và kênh của các hiện tượng (Kênh Phenomenon): set chan 1 [new $val(chan)] set chan 2 [new $val(chan)] 3.3.2 Thiết lập một giao thức MAC cho kênh Phenomenon Chọn một lớp MAC sử dụng cho việc phát Phenomenom qua kênh Phenomenon. Việc sử dụng 802.11 là không thích hợp vì kênh Phenomena là kênh tự nhiên nên nó phát mà không cần điều khiển tắc nghẽn và tranh chấp. Các lệnh sau thiết lập các thủ tục điều khiển truy nhập môi trường vô tuyến và môi trường Phenomenon: set val(mac) Mac/802 11 set val(PHENOMmac) Mac 3.3.3 Thiết lập các node Phenomenon Sử dụng node-config giống như các node di động nhưng chỉ rõ giao thức định tuyến Phenom, các hiện tượng được phát đi theo các phương thức được định nghĩa trong Phenom/Phenom.cc. Ngoài ra phải định hình kênh và lớp MAC trước khi chỉ ra việc quảng bá Phenomenon. Một ví dụ thiết lập cấu hình node Phenomenon mẫu như sau: $ns node-config \ -adhocRouting PHENOM \ -Channel $chan 1 \ -llType LL \ -macType $val(PHENOMmac) \ -ifqType Queue/DropTail/PriQueue \ -ifqLen 50 \ -antType Antenna/OmniAntenna \ -phyType Phy/WirelessPhy \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON \ -propType Propagation/TwoRayGround 3.3.4 Thiết lập tốc độ và kiểu xung của Phenomenon Hai tham số sử dụng để thay đổi tuỳ biến Phenomena được chỉ ra a/ Pulserate Float. Ploat phải là một số thực Mô tả tần số một node Phenomenon quảng bá tín hiệu của nó. Mặc định là một lần phát trên 1 giây b/ Phenomenon Pattern Pattern: kiểu hiện tượng, phải là một trong các từ khoá sau: CO, HEAVE-GEO, LIGHT-GEO, SOUND, TEST-PHENOMENON tương ứng với oxit carbon CO, động đất nặng, động đất nhẹ, tiếng động và một số kiểu hiện tượng chung khác. Tuỳ chọn này được sử dụng chủ yếu cho việc mô phỏng các hiện tượng bội node (nhiều node hiện tượng kết hợp) nên dễ dàng phân biệt việc node cảm biến đang cảm biến hiện tượng nào bằng việc nhìn vào trace file. - Mặc định TEST-PHENOMENON Sau đây, minh hoạ việc đặt tham số để phát tín hiệu từ Carbon Oxit 10 lần/s [$node (0) set ragent ] \ pulserate .1 ; [$node (0) set ragent ] \ Phenomenon CO ; 3.3.5 Định hình node cảm biến Nút cảm biến phải được định hình với thuộc tính “Phenom chanell” và thuộc tính “Wireless Channel”. Kênh Phenom Channel phải cùng loại với kênh mà ta ấn định cho Phenomenon. Kênh còn lại được sử dụng để truyền các báo cáo của cảm biến. Cấu hình node cảm biến cần phải chỉ ra một giao thức MAC cho kênh Phenomenon và một giao thức MAC (như MAC/802-11) cho kênh chia sẻ với các node không dây khác. Điều này được thực hiện với các thuộc tính Phenom mactype và mactype. Phenom mactype phải cùng kiểu với MAC của các node Phenom và Mactype phải cùng kiểu với MAC của các node khác cùng tham gia mạng IP. Các lệnh sau minh họa ví dụ định hình cho một node cảm biến : $ns node-config \ -adhocRouting $val(rp) \ -Channel $chan 2 \ -macType $val(mac) \ -PHENOMChannel $chan 1 \ -PHENOMmacType $val(PHENOMmac) 3.3.6 Thiết lập các node non-sensor (điểm thu thập dữ liệu, Gateway) Các node không phải cảm biến hay Phenomenon node không được định hình với một kênh Phenom Channel vì chúng chỉ có giao diện duy nhất đến mạng MANET (Mobile Ad hoc Network - mạng di động sử dụng giao thức định tuyến Ad hoc) được thực hiện với thuộc tính - Phenom Channel "off". Ví dụ: $ns node-config \ -adhocRouting $val(rp) \ -Channel $chan 2 \ -PHENOMChannel "off" 3.3.7 Gắn kết các tác nhân cảm biến Lệnh này tạo ra một tác nhân cảm biến cho mỗi node cảm biến và gắn kết tác nhân này với node tương ứng. Ngoài ra, phải chỉ ra rằng tất cả các gói tin đến từ kênh Phenome đều được nhận bởi Sensor Agent.Ví dụ: set Sensor ($i) [new \ Agent/SensorAgent] $ns attach-agent $node ($i) \ $Sensor ($i) [$node ($i) set ll (1)] \ up-target $Sensor ($i) 3.3.8 Gắn kết một tác nhân UDP và ứng dụng cảm biến cho mỗi node Việc các node cảm biến phản ứng thế nào khi chúng phát hiện ra hiện tượng mục tiêu được định nghĩa trong ứng dụng cảm biến. Ví dụ như chúng sẽ thông báo thông tin về hiện tượng tới điểm thu thập dữ liệu qua UDP. Thí dụ sau minh hoạ việc thiết lập ứng dụng cảm biến: set src ($i) [new Agent/UDP] $ns attach-agent $node ($i) \ $src ($i) $ns connect $src ($i) $sink set app ($i) [new \ Application/SensorApp] $app ($i) attach-agent $src ($i) 3.3.9 Khởi động ứng dụng cảm biến Nút cảm biến có thể nhận các gói Phenom ngay khi Sensor Agent được gắn tới node. Nhưng node chỉ có phản ứng khi ứng dụng cảm biến được gắn kết và khởi động. $ns at 5.0 "$app ($i) start \ $Sensor ($i)" CHƯƠNG 4 ĐÁNH GIÁ CHẤT LƯỢNG DỊCH VỤ QoS CỦA MẠNG CẢM BIẾN KHÔNG DÂY 4.1 Mô tả kịch bản mô phỏng Mục đích của phần mô phỏng này là đánh giá chất lượng QoS của một mạng cảm biến thông qua việc khảo sát một số tham số QoS của mạng cảm biến không dây theo mật độ. Tức là, khảo sát một số tham số QoS theo số lượng node cảm biến thay đổi trong một vùng khảo sát cố định. Khảo sát tỷ lệ mất gói tại lớp giao vận. Tính toán độ trễ gói tin từ node nguồn cảm biến đến điểm thu Sink. Tính toán tốc độ gói trung bình đến điểm thu Sink. Mô phỏng này được thực hiện với các mạng cảm biến được triển khai theo hình lưới vuông, trong bản đồ hình vuông 1000´1000 m: Số lượng node nguồn hiện tượng là 1. Mẫu chuyển động hiện tượng: Ngẫu nhiên. Dải truyền dẫn và dải hiện tượng là Tx= 218.9 m. Công suất phát của các node cảm biến và node hiện tượng là Pt=0.22960590141841 W (Pt = (1.0e-10) * (Tx)**4) ;. Kiểu hiện tượng mục tiêu được chọn là khí Carbon Monoxit (CO) được biểu diễn bằng một nút hiện tượng Phenomenon đơn di chuyển một cách ngẫu nhiên trong trường cảm biến. Số lượng điểm thu thập số liệu (Sink) là 1, được đặt trên biên của trường cảm biến (góc trái trên cùng của mô hình mô phỏng). Các mạng cảm biến này sử dụng giao thức định tuyến AODV, kiểu hàng đợi Droptail (Kiểu FIFO: vào trước ra trước), kiểu phát vô tuyến mặt hai tia mặt đất (Two Ray Ground), antent có độ lợi đơn. Thời gian mô phỏng là 20 giây. 4.2 Thực hiện mô phỏng 4.2.1 Viết mã và chạy mô phỏng Các tuỳ chọn về môi trường mạng được khai báo như sau: set val(prop) Propagation/TwoRayGround; #Kiểu phát vô tuyến set val(netif) Phy/WirelessPhy ;#Kiểu giao tiếp mạng set val(mac) Mac/802_11 ;#Kiểu MAC set val(PHENOMmac) Mac ;#Kiểu hiện tượng MAC set val(ifq) Queue/DropTail/PriQueue ;#Kiểu hàng đợi set val(ll) LL ;#Kiểu lớp liên kết số liệu set val(ant) Antenna/OmniAntenna ;#Kiểu antent set val(ifqlen) 50 ;#Số gói max trong hàng đợi set val(nn) ", $totalnodes-1," ;#Tổng số node cảm biến, set val(rp) AODV ;#Giao thức định tuyến set val(x) 1000 ;#Chiều dài bản đồ (m) set val(y) 1000 ;#Chiều rộng bản đồ (m) Trong phần chương trình chính (Main Program) sẽ định nghĩa tên File số liệu đầu ra (Trace, NAM) và thực hiện các thiết lập kênh, nút, giao thức, tác nhân, ứng dụng, mô hình Phenomenon như mô tả ở phần 3.3. Các công việc cần thiết khác cần thực hiện trong chương trình chính là thiết lập tọa độ cho các nút và các khai báo thời gian mô phỏng các sự kiện xảy ra trong thời gian mô phỏng. Ví dụ: a) Các lệnh sau thiết lập tọa độ (m) cho các nút node_1 là (x,y) = (1,1) và node_2 là (x,y) = (101,1): $node_(1) set X_ 1 $node_(1) set Y_ 1 $node_(2) set X_ 101 $node_(2) set Y_ 1 b) Lệnh sau khai báo một sự kiện tại thời điểm 0,01 giây, nút node_0 (Phenomenon) di chuyển đến tọa độ (x,y) = (470.316697379992, 107.25415624008) với tốc độ 200,0 (đơn vị tốc độ được định nghĩa trong NS-2): $ns_ at 0.01 "$node_(0) setdest 470.316697379992 107.25415624008 200.0" c) Tính toán khoảng các giữa các node: $cols = floor(sqrt($totalnodes)); $rows = ceil($totalnodes / $cols); $colinterval = floor($width / ($cols-1)) - 1;# Khoảng cách giữa hai node trên cột. $rowinterval = floor($height / ($rows-1)) - 1;# Khoảng cách giữa hai node trên dòng. Ngoài ra, còn có các định nghĩa màu nút, các thông báo ra màn hình công tác, v.v. Sau khi đã có tập mã đầu vào lưu trong file wsnet.tcl , có thể bắt đầu chạy mô phỏng bằng lệnh: ns wsnet.tcl trong cửa sổ công tác. Chương trình có thể chạy trong vài phút đến nhiều giờ tuỳ theo số nút mạng. Sau khi chạy xong, ta có thể quan sát hình ảnh triển khai mạng bằng ứng dụng NAM trong NS-2. Hình 4.1 là cửa sổ quan sát mô phỏng bằng ứng dụng NAM với số nút Sensor được triển khai là 100 trong phạm vi 1000´1000m, 1 node hiện tượng, thời gian mô phỏng 20s với giao thức định tuyến AODV. Hình 4.1: Quan sát mô phỏng bằng ứng dụng NAM 4.2.2 Tính toán kết quả Sau khi chạy xong mô phỏng trong NS-2, việc tiếp theo là phân tích file Trace. Mô phỏng này sử dụng loại Trace với định dạng 7 trường đầu tiên như sau: [sự kiện] [thời gian] [số thứ tự nút] [mức Trace] ---- [số thứ tự gói] [kiểu gói] [kích thước gói]. Trong đó, các sự kiện trong trường sự kiện gồm r (nhận gói), s (gửi gói), D (mất gói), f (chuyển tiếp gói); trường thời gian chỉ ra thời điểm xảy ra sự kiện; trường mức Trace chỉ ra sự kiện này thuộc phạm vi (mức độ) mô phỏng nào (tác nhân (như udp), lớp liên kết số liệu (MAC) hay mức vật lý, ....). Với yêu cầu tính toán trong trường hợp này, ta chỉ cần quan tâm tới 7 trường đầu tiên này, các trường sau có định dạng tuỳ theo mức Trace và kiểu gói. Ví dụ với mức Trace MAC và kiểu gói PHENOM (tín hiệu hiện tượng) thì các trường tiếp theo là [thời gian chuyển] [địa chỉ MAC] [Kiểu hiện tượng]. Ví dụ về một đoạn file Trace của mạng 40 node cảm biến như sau: s 3.340224734 _21_ MAC --- 0 RTS 44 [7de 1b 15 0] r 3.340577284 _27_ MAC --- 0 RTS 44 [7de 1b 15 0] s 3.340587284 _27_ MAC --- 0 CTS 38 [6a4 15 0 0] r 3.340891834 _21_ MAC --- 0 CTS 38 [6a4 15 0 0] s 3.340901834 _21_ MAC --- 24 udp 172 [13a 1b 15 800] ------- [9:1 41:0 26 27] r 3.342278384 _27_ MAC --- 24 udp 120 [13a 1b 15 800] ------- [9:1 41:0 26 27] s 3.342288384 _27_ MAC --- 0 ACK 38 [0 15 0 0] r 3.342303384 _27_ RTR --- 24 udp 120 [13a 1b 15 800] ------- [9:1 41:0 26 27] f 3.342303384 _27_ RTR --- 24 udp 120 [13a 1b 15 800] ------- [9:1 41:0 25 33] Công việc phân tích file Trace được thực hiện qua hai bước: - Tách file Trace: Mục đích của việc tách file Trace là lấy ra các loại gói và trường cần thiết cho việc tính toán kết quả. - Tính toán kết quả: thực hiện tính toán kết quả trên các phần đã tách ra ở bước trên. 4.2.3 Tính tỷ lệ mất gói udp tại lớp giao - Công thức tính tỷ lệ mất gói udp: Tỷ lệ mất gói udp = 1 – (Số gói udp nhận/số gói udp gửi) - Tách số liệu nhận và gửi tại điểm thu Sink: Sử dụng lệnh sau trong cygwin/X để tách lấy các sự kiện nhận gói udp của điểm thu Sink (trong file Trace wsnet.tr) để tính số gói udp nhận được. $ cat wsnet.tr | grep "AGT" | grep "udp" | grep ^r | awk ' { printf ("%c\t%f\t%s\t%s\t%d\t%s\t%d\n",$1,$2,$3,$4,$6,$7,$8)} ' > nhanudp.txt $ cat wsnet.tr | grep "AGT" | grep "udp" | grep ^s | awk ' { printf("%c\t%f\t%s\t%s\t%d\t%s\t%d\n",$1,$2,$3,$4,$6,$7,$8)} ' > guiudp.txt Số lượng node cảm biến Số gói udp gửi từ các node cảm biến Số gói nhận bởi điểm thu Sink Tỷ lệ mất gói udp 40 184 184 0 60 289 288 0.003460 80 441 441 0 100 572 567 0.008741 120 626 621 0.007987 140 754 742 0.015915 160 915 869 0.050273 180 967 904 0.065150 200 1139 503 0.558385 220 1174 646 0.449744 240 1403 384 0.726301 260 1555 114 0.926688 280 1620 26 0.983951 300 1805 73 0.959557 320 1845 4 0.997832 340 2041 14 0.993141 360 2214 47 0.978771 380 2043 139 0.931963 400 2486 11 0.995575 Bảng 4.1: Tỷ lệ mất gói udp theo số lượng node cảm biến Hình 4.2: Đồ thị tỷ lệ mất gói tại lớp giao vận. 4.2.4 Tính độ trễ gói (s) - Công thức độ trễ gói udp: Độ trễ gói = Thời điểm nhận – Thời điểm gửi. Số lượng node cảm biến Độ trễ cực đại Độ trễ cực tiểu Độ trễ trung bình 40 2.118961 0.004831 0.063042 60 2.267924 0.002173 0.067624 80 1.176684 0.002174 0.052597 100 2.257699 0.004896 0.074790 120 1.489998 0.002154 0.044339 140 4.539861 0.007049 0.281901 160 7.988922 0.002154 0.755690 180 10.018941 0.002154 1.127731 200 16.319756 0.002889 3.948794 220 18.401416 0.003889 4.308794 240 18.377152 0.006547 4.930560 260 18.137422 0.039260 7.096495 280 7.069353 0.008996 1.158788 300 18.396197 0.008495 5.775821 320 6.056735 0.284054 3.999372 340 12.326229 0.021033 6.567604 360 17.322686 0.539750 8.373938 380 16.414597 0.009300 7.007174 400 10.592491 0.102936 2.758421 Bảng 4.2: Độ trễ gói cực đại, cực tiểu và trung bình Hình 4.3: Đồ thị độ trễ gói udp cực đại, cực tiểu và trung bình Hình 4.4: Đồ thị độ trễ gói udp trung bình theo số lượng node cảm biến 4.2.5 Tính tốc độ gói udp trung bình (kbps) - Sử dụng lệnh sau trong cygwin/X để tính tốc độ số liệu tức thời và ghi vào file datarate.txt. $ cat nhanudp.txt | awk ' { dif= $2 - old2; if(dif>0) printf("%f\t%f\n",$2,0.960/dif);old2=$2; }' > datarate.txt Số lượng node cảm biến Tốc độ thu số liệu cực đại Tốc độ thu số liệu cực tiểu Tốc độ thu số liệu trung bình 40 345.448003 1.244946 26.608275 60 396.858206 1.276056 47.110937 80 378.250591 0.950297 54.519053 100 393.603936 1.092742 60.582764 120 393.926959 1.377011 89.892454 140 397.186595 0.743840 89.086452 160 397.186595 0.406493 137.254866 180 397.022333 0.352261 127.033017 200 397.022333 0.564392 111.799155 220 397.022333 0.237893 130.268487 240 397.186595 0.475326 155.153009 260 397.022333 0.156104 119.839600 280 225.457961 0.069972 20.238568 300 390.720391 0.257825 45.452702 320 6.973855 0.068026 2.059487 340 34.531132 0.129143 4.443977 360 397.186595 0.150505 113.371593 380 397.186595 0.361451 114.313422 400 58.443930 0.101691 14.407393 Bảng 4.3: Tốc độ cực đại, tốc độ cực tiểu và tốc độ trung bình Hình 4.5: Đồ thị tốc độ số liệu được nhận bởi điểm thu Sink Hình 4.6: Đồ thị tốc độ số liệu trung bình được nhận bởi điểm thu Sink 4.3 Đánh giá kết quả đạt được sau mô phỏng Qua các đồ thị được xây dựng từ mô phỏng trên, ta thấy các tham số của tập tham số chất lượng dịch vụ QoS của mạng cảm biến không dây có độ biến động tương đối lớn khi mật độ tăng (số lượng node tăng). Khi tăng dần số node mạng đến một số lượng nhất định thì độ trễ, tốc độ thu số liệu và tỷ lệ mất gói có xu hướng tăng, nhưng tốc độ thu số liệu cực đại lại rất ổn định. Như vậy, ta có thể nhận thấy có 7 khoảng chính khi tăng số node cảm biến trong mạng (hay chính là tăng mật độ node cảm biến): Khoảng thứ nhất: Khoảng từ 40 đến 120 node (tương đương với 40 – 120 node/km2), độ trễ và tỷ lệ mất gói, tốc độ thu số liệu nhỏ, ổn định nên thông tin cảm biến về hiện tượng ít. Khoảng thứ hai: khoảng từ 120 đến 200 node (120 – 200 node/km2), tốc độ số liệu trung bình, độ trễ và tỷ lệ mất gói nhìn chung là tăng rất nhanh, độ dốc của đồ thị thể hiện độ trễ và tỷ lệ mất gói có giá trị lớn đặc biệt từ 180 - 200 node/km2 tuy rằng ở khoảng này tốc độ trung bình có xu hướng giảm. Khoảng thứ ba: khoảng từ 200 đến 240 node (200 – 240 node/km2), độ trễ tăng chậm, tốc độ thu số liệu tăng nhanh và đạt giá trị cực đại khoảng 155kbps, tỷ lệ mất gói vẫn tiếp tục tăng tuy rằng có xu hướng giảm tại 220 node/km2. Khoảng thứ tư: khoảng 240 đến 280 node (240 – 280 node/km2), độ trễ và tốc độ thu số liệu giảm nhanh chóng, tỷ lệ mất gói vẫn tiếp tục tăng. Khoảng thứ năm: Khoảng 280 đến 340 node (280 – 340 node/km2), tỷ lệ mất gói lại ổn định ở mức cao, độ trễ tăng lên mặc dù có chiều hướng giảm xuống ở khoảng 320 node/km2, tốc độ thu số liệu tăng sau đó giảm nhanh xuống mức thấp nhất khoảng 2- 4.5 kbps. Khoảng thứ sáu: Từ 340 đến 360 node (340 – 360 node/km2), tỷ lệ mất gói lại ổn định ở mức cao, độ và tốc độ thu số liệu tăng, đặc biệt độ trễ đạt cực đại khoảng 8.4s. Khoảng thứ bảy: Từ 360 đến 400 node (360 – 400 node/km2), tỷ lệ mất gói vẫn ổn định ở mức cao, tốc độ thu số liệu và độ trễ có xu hướng giảm xuống. Như vậy, với một diện tích là 1km2, khi triển khai các node cảm biến để đánh giá một số tham số chất lượng dịch vụ QoS theo mật độ, ta thấy với mật độ khoảng từ 40 đến 120node/km2 thì thông tin có độ chính xác là cao nhất. Để đánh giá chính xác số liệu ta phải thực hiện mô phỏng nhiều hơn với các tham số đầu vào (như công suất truyền phát, dải cảm biến, v.v…), vào phải dựa vào nhiều mô hình mô phỏng, các kinh nghiệm thực tế khác. KẾT LUẬN Công nghệ mạng cảm biến không dây hứa hẹn tạo ra những ứng dụng đầy tiềm năng, có thể áp dụng trong nhiều lĩnh vực khác nhau, mà đối với các công nghệ khác còn nhiều hạn chế. Tuy nhiên để triển khai mạng người thiết kế hệ thống yêu cầu phải nắm bắt được những nhân tố tác động đến mạng, những nhược điểm của mạng cần phải được khắc phục. Tức là, người thiết kế cần phải quan tâm đến các tham số mạng, ví dụ như tập các chất lượng dịch vụ QoS. Nhờ quá trình mô phỏng người thiết kế hệ thống có thể đánh giá được chất lượng dịch vụ mạng cung cấp, để từ đó có thể thiết kế hệ thống theo cách tối ưu nhất. Trên đây, em đã hoàn thành nội dung đồ án tốt nghiệp, tuy chưa thực sự hoàn thiện song đạt được những kết quả theo đề cương đã đề ra, được tóm tắt lại như sau: - Giới thiệu tổng quan về mạng cảm biến không dây với những hiểu biết về nền tảng của công nghệ mạng cảm biến không dây, các nhân tố ảnh hưởng đến mạng không dây, đặc điểm và kiến trúc tổng quan mạng cảm biến không dây (chương 1). - Tìm hiểu các ứng dụng của công nghệ cảm biến không dây bằng việc tìm hiểu về các hỗ trợ truyền thông cho mạng cảm biến không dây, các lĩnh vực đã áp dụng công nghệ cảm biến không dây và tìm hiểu chi tiết một ứng dụng (giám sát môi trường sống) đã được triển khai dựa trên công nghệ cảm biến không dây (chương 2). - Thực hiện mô hình hoá và tìm hiểu thiết kế phần mềm mô phỏng mạng cảm biến không dây dựa trên phần mềm mô phỏng mạng NS-2, viết các mô tả mã lập trình cho việc mô phỏng mạng cảm biến không dây (chương 3). - Thực hiện mô phỏng mạng cảm biến không dây, và đánh giá phân tích một số tham số trong tập các tham số QoS của mạng cảm biến không dây nhờ kết quả đã mô phỏng (chương 4). Nội dung đồ án mới chỉ tập trung tìm hiểu một ứng dụng về giám sát môi trường sống nên chưa thể hiện hết được sức mạnh của công nghệ mạng cảm biến không dây, và chưa đánh giá hết được các tham số của mạng, cho việc thiết kế hệ thống. Bản thân em cần phải cố gắng hơn nữa, và sự động viên đóng góp của các thầy cô, các bạn để nội dung đồ án tốt nghiệp hoàn thiện hơn. Một lần nữa, em xin chân thành cảm ơn. TÀI LIỆU THAM KHẢO Anna Ha’c, Wireless Sensor Network Designs, University of Hawaii at Manoa, Honolulu, USA, John Wiley & Sons Ltd, Copyright 2003. Edgar H.Callaway, Jr. Wireless Sensor Networks: Architectures and Protocols, A CRC Press Company, Copyright © 2004 CRC Press LLC. I.F. Akyildiz, W. Su*, Y. Sankarasubramaniam, E. Cayirci, Wireless sensor networks: A survey, Broadband and Wireless Networking Laboratory, School of Electrical and Computer Engineering, Georgia Institute of Technology, Atlanta, GA 30332, Received 12 December 2001; accepted 20 December 2001.. Mainwaring, Polastre, et al. Wireless Sensor Networks For Habitat Monitoring, online posting. 2002 ACM International Workshop on Wireless Sensor Networks and Applications September 28, 2002. Atlanta, GA. (also Intel Research, IRB-TR-02-006, June 2002.) 12 Dec 2002. . Jason Liu, L. Felipe Perrone, David M. Nicol, Michael Liljenstam, Chip Elliott, David Pearson, Simulation Modeling of Large-Scale Ad-hoc Sensor Networks, Institute for Security Technology Studies (ISTS), Dartmouth College and BBN Technologies. Sung Park, Andreas Savvides, Mani B. Srivastava. “SIMULATING NETWORKS OF WIRELESS SENSORS” Networked Emebedded Systems Laboratory Electrical Engineering Departments University of California, Los Angeles Los Angeles, CA, 90095, U.S.A. The Network Simulator - ns-2. The ns Manual. NRL’s Sensor Network Extension to ns-2. NS-2 by Example . NS by Example, Jae Chung and Mark Claypool. Ian Downard, SIMULATING SENSOR NETWORKS IN NS-2, Naval Research Laboratory Code 5523, 4555 Overlook Ave, Washington DC, 20375-5337. .

Các file đính kèm theo tài liệu này:

  • docDO AN TOT NGHIEP DAI HOC.doc
Tài liệu liên quan