Nghiên cứu và mô phỏng giao thức định tuyến pegasis trong mạng cảm biến (đh bk hn)

Mục lục DANH SÁCH HÌNH VẼ iii DANH SÁCH BẢNG BIỂU v DANH SÁCH CÁC TỪ VIẾT TẮT vi Chương 1. Tổng quan về mạng cảm biến 1 1.1. Giới thiệu .1 1.2. Cấu trúc mạng cảm biến 2 1.2.1. Các yếu tố ảnh hưởng đến cấu trúc mạng cảm biến 2 1.2.2. Kiến trúc giao thức mạng .8 1.2.3. Hai cấu trúc đặc trưng của mạng cảm biến .10 1.2.3.1. Cấu trúc phẳng .10 1.2.3.2. Cấu trúc tầng .10 1.3. Ứng dụng .13 1.3.1. Ứng dụng trong quân đội 14 1.3.2. Ứng dụng trong môi trường 16 1.3.3. Ứng dụng trong chăm sóc sức khỏe 17 1.3.4. Ứng dụng trong gia đình 18 1.4. Kết luận .18 Chương 2. Các giao thức đặc trưng của mạng cảm biến .19 2.1. Giới thiệu về giao thức đặc trưng trong mạng cảm biến .19 2.2. Giao thức đồng bộ thời gian 19 2.2.1. Đồng hồ các nút cảm biến và sự chính xác 21 2.2.2. Đồng bộ thời gian trong mạng cảm biến 22 2.2.2.1. Giao thức đồng bộ giữa bên nhận và bên phát 24 2.2.2.2. Giao thức đồng bộ giữa bên nhận và bên nhận .30 2.3. Giao thức vị trí .34 2.3.1. Định vị dựa vào mốc có sẵn .35 2.3.2. Định vị dựa vào vị trí tương đối .36 2.4 Kết luận 37 Chương 3. Định tuyến trong mạng cảm biến 38 3.1. Giới thiệu .38 3.2. Thách thức trong vấn đề định tuyến 38 3.3. Các vấn đề về thiết kế giao thức định tuyến 39 3.3.1. Đặc tính thay đổi thời gian và trật tự sắp xếp của mạng .39 3.3.2. Ràng buộc về tài nguyên .39 3.3.3. Mô hình dữ liệu trong mạng cảm biến 40 3.3.4. Cách truyền dữ liệu 40 3.4. Phân loại và so sánh các giao thức định tuyến 42 3.5. Giao thức trung tâm dữ liệu .44 3.5.1. Flooding và Gossiping 44 3.5.2. SPIN 45 3.5.3. Directed Diffusion 47 3.6. Giao thức phân cấp 50 3.6.1. LEACH 50 3.6.2. PEGASIS .53 3.7. Giao thức dựa trên vị trí 54 3.7.1. GAF .55 3.7.2. GEAR 57 3.8. Kết luận .59 Chương 4. Mô phỏng PEGASIS bằng Mobility Framework của OMNeT++ 60 4.1. Giới thiệu về OMNeT++ và Mobility Framework 60 4.1.1. Giới thiệu về OMNeT++ 60 4.1.2. Giới thiệu về Mobility .64 4.2. Giới thiệu về PEGASIS .71 4.2.1. PEGASIS cơ bản .72 4.2.2. PEGASIS cải tiến 73 4.3. Mô phỏng .76 4.3.1. Mô hình năng lượng .76 4.3.2. Giả thiết và thiết lập thông số ban đầu cho quá trình mô phỏng .82 4.3.3. Kết quả mô phỏng .89 4.4. Kết luận và hướng nghiên cứu tiếp theo 91 KẾT LUẬN .92 Tài liệu tham khảo .93 TÓM TẮT ĐỒ ÁN Ngày nay nhờ tiến bộ vượt bậc trong khoa học và công nghệ, mạng cảm biến đã trở thành đề tài nghiên cứu nóng bỏng và nhận được sự tiến bộ đáng kể trong vài năm qua. Mạng cảm biến là mạng vô tuyến bao gồm các thiết bị cảm biến được phân bố một cách ngẫu nhiên trong không gian, nhằm quan sát các hiện tượng vật lý , hay điều kiện môi trường như nhiệt độ, âm thanh, sự chấn động, áp suất, sự chuyển động, ô nhiễm ở các vị trí khác nhau. Sự phát triển của mạng cảm biến mở đầu là các ứng dụng trong quân đội ví dụ như giám sát chiến trường. Tuy nhiên bây giờ mạng cảm biến còn được sử dụng trong nhiều lĩnh vực dân dụng bao gồm: quan sát môi trường sống, chăm sóc sức khỏe, nhà tự động hay điều khiển giao thông. Các con cảm biến là các thiết bị điện tử nhỏ, thông thường được trang bị bộ thu phát vô tuyến hoặc các thiết bị không dây khác, một bộ vi xử lý nhỏ và một nguồn năng lượng. Các con cảm biến này có khả năng thu thập, xử lý và truyền thông thông tin đến các nút khác và ra thế giới bên ngoài. Mạng cảm biến là một lĩnh vực rất sâu rộng, đồ án này sẽ giới thiệu một cách khái quát nhất về các đặc điểm của mạng cảm biến. Sau đó phần cuối sẽ nghiên cứu và đưa ra giải thuật định tuyến PEGASIS nhằm cải thiện đáng kể thời gian sống của mạng.

pdf108 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3734 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Nghiên cứu và mô phỏng giao thức định tuyến pegasis trong mạng cảm biến (đh bk hn), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nút này lại cần yêu cầu công suất cao để truyền đến trạm cơ sở. Việc tập trung dữ liệu trong mạng dọc theo chuỗi. Đầu tiên chain leader sẽ gửi một thẻ bài tới nút cuối cùng bên phải cuối chuỗi. Trong khi nhận được tín hiệu này nút cuối sẽ gởi dữ liệu nó thu lượm được đến nút lân cận theo chiều xuôi trong chuỗi, sau đó nút này tập trung dữ liệu và lại tiếp tục gửi đến nút lân cận gần nó nhất, cứ như vậy cho đến khi gửi đến nút chủ. Sau đó nút chủ sẽ lại tập trung dữ liệu và gửi đến sink. Mặc dù đơn giản nhưng mô hình tập trung dạng chuỗi dễ gây ra trễ trước khi dữ liệu tập trung được truyền đến sink. Một phương pháp để giảm độ trễ này là tập trung dữ liệu song song dọc theo chuỗi, và sẽ càng giảm nhiều hơn nếu các nút được trang bị bộ thu phát sử dụng CDMA. Dùng PEGASIS sẽ giải quyết được vấn đề về mào đầu gây ra bởi việc hình thành các cụm động trong LEACH và giảm được số lần truyền và nhận bằng việc tập hợp dữ liệu. Tuy nhiên PEGASIS lại có độ trễ đường truyền lớn đối với các nút ở xa trong chuỗi. Hơn nữa ở nút chính có thể xảy ra hiện tượng thắt cổ chai. 3.7. Giao thức dựa trên vị trí Mục tiêu chính của giải thuật định tuyến này là dựa vào các thông tin về vị trí của các nút cảm biến để tìm một đường đi hiệu quả đến đích. Loại định tuyến này rất phù hợp với mạng cảm biến nơi mà việc tập trung dữ liệu là kỹ thuật hữu ích để giảm thiểu việc truyền bản tin đến trạm cơ sở bằng cách loại bỏ sự dư thừa giữa các gói đến từ các nguồn khác nhau. Loại định tuyến này còn yêu cầu sự tính toán và lượng mào đầu truyền dẫn thấp. Ta sẽ xem xét một số giao thức định tuyến dựa trên vị trí như sau: Đồ án tốt nghiệp Chương 3 Định tuyến trong mạng cảm biến Đỗ Thị Tuyết ĐT6-K48 55 3.7.1. GAF Giải thuật chính xác theo địa lý (GAF) dựa trên vị trí có hiệu quả về mặt năng lượng được thiết kế chủ yếu cho các mạng ad hoc di động, nhưng cũng có thể áp dụng cho mạng cảm biến. GAF khai thác việc dư thừa dữ liệu trong mạng bằng cách coi một tập hợp các nút con trong mạng là tương đương nhau khi nhìn từ giao thức lớp trên. GAF chia vùng quan sát thành các hình vuông đủ nhỏ, bất kỳ các nút nào trong hình vuông cũng đều có thể giao tiếp vô tuyến với bất kỳ nút nào nằm trong hình vuông bên cạnh.GAF dự trữ năng lượng bằng cách tắt các nút không cần thiết trong mạng mà không ảnh hưởng đến mức độ chính xác của định tuyến. Nó tạo ra một lưới ảo cho vùng bao phủ. Mỗi nút dùng GPS của nó – vị trí xác định để kết hợp với cùng một điểm trên lưới mà được coi là tương đương khi tính đến giá của việc định tuyến gói. Sự tương đương như vậy được tận dụng để giữ các nút định vị trong vùng lưới xác định trong trạng thái nghỉ để tiết kiệm năng lượng. Vì vậy GAF có thể tăng đáng kể thời gian sống của mạng cảm biến khi mà số lượng các nút tăng lên. Một ví dụ cụ thể được đưa ra ở hình (3.7). Trong hình vẽ này, nút 1 có thể truyền đến bất kì nút nào trong số các nút 2, 3 và 4 và các nút 2, 3, 4 có thể truyền tới nút 5. Do đó các nút 2, 3, và 4 là tương đương và 2 trong số 3 nút đó có thể ở trạng thái nghỉ. Các nút chuyển trạng thái từ nghỉ sang hoạt động lần lượt để cho các tải được cân bằng. Có ba trạng thái được định nghĩa trong GAF, đó là phát hiện (discovery), để xác định các nút lân cận trong lưới, hoạt động (active), thể hiện sự tham gia vào quá trình định tuyến và nghỉ (sleep) khi sóng được tắt đi. Sự chuyển trạng thái trong GAF được miêu tả ở hình (3.8) . Nút nào nghỉ trong bao lâu liên quan đến các thông số được điều chỉnh trong quá trình định tuyến. Để điều khiển độ di động, mỗi nút trong lưới ước đoán thời gian rời khỏi lưới của nó và gửi thông tin này đến nút lân cận. Đồ án tốt nghiệp Chương 3 Định tuyến trong mạng cảm biến Đỗ Thị Tuyết ĐT6-K48 56 Hình 3.7 Ví dụ về lưới ảo trong GAF Các nút đang không hoạt động điều chỉnh thời gian nghỉ của chúng phù hợp các thông tin nhận được từ các nút lân cận đó để giữ cho việc định tuyến được chính xác. Trước khi thời gian rời khỏi lưới của các nút đang hoạt động quá hạn, các nút đang nghỉ thoát khỏi trạng thái đó và một trong số các nút đó trở nên hoạt động. GAF được triển khai cho cả những mạng bao gồm các nút không di động (GAF cơ bản) và mạng bao gồm các nút di động (GAF thích ứng di động). Hình 3.8 Sự chuyển trạng thái trong GAF GAF cố gắng giữ mạng hoạt động bằng cách giữ cho các nút đại diện luôn ở chế độ hoạt động trong mỗi vùng ở lưới ảo của nó. Các kết quả mô phỏng đã chỉ ra rằng GAF thực hiện tối thiểu sẽ được như giao thức định tuyến trong mạng ad hoc thông Đồ án tốt nghiệp Chương 3 Định tuyến trong mạng cảm biến Đỗ Thị Tuyết ĐT6-K48 57 thường khi nói đến tổn thất gói và làm tăng thời gian sống của mạng bằng cách tiết kiệm năng lượng. Mặc dù GAF là một giao thức dựa trên vị trí, nó cũng có thể được coi là như một giao thức phân cấp khi mà các cụm dựa trên vị trí địa lý. Đối với mỗi vùng lưới xác định, mỗi nút đại điện hoạt động như một nút chủ để truyền dữ liệu đến các nút khác. Tuy nhiên nút chủ này không thực hiện bất cứ một nhiệm vụ hợp nhất hay tập trung dữ liệu nào như trong các giao thức phân cấp thông thường. 3.7.2. GEAR Yu et al. đã đưa ra việc sử dụng thông tin về địa lý trong khi phổ biến các yêu cầu đến các vùng thích hợp vì các yêu cầu dữ liệu thường bao gồm các thuộc tính địa lý. Giao thức GEAR (Geographic and Energy-Aware Routing) dùng sự nhận biết về năng lượng và các phương pháp thông báo thông tin về địa lý tới các nút lân cận. Việc định tuyến thông tin theo vùng địa lý rất có ích trong các hệ thống xác định vị trí, và đặc biệt là trong mạng cảm biến. Ý tưởng này hạn chế số lượng các yêu cầu ở Directed Diffusion bằng cách quan tâm đến một vùng xác định hơn là gửi các yêu cầu tới toàn mạng. GEAR cải tiến hơn Directed Diffusion ở điểm này và vì thế dự trữ được nhiều năng lượng hơn. Trong giao thức GEAR, mỗi một nút giữ một estimated cost và một learned cost trong quá trình đến đích qua các nút lân cận. Estimated cost là sự kết hợp của năng lượng còn dư và khoảng cách đến đích. Learned cost là sự cải tiến của estimated cost giải thích cho việc định tuyến xung quanh các hốc trong mạng. Hốc xảy ra khi mà một nút không có bất kì một nút lân cận nào gần hơn so với vùng đích hơn là chính nó. Trong trường hợp không có một hốc nào thì estimated cost bằng với learned cost. Learned cost được truyền ngược lại 1 hop mỗi lần một gói đến đích làm cho việc thiết lập đường cho gói tiếp theo được điều chỉnh. Có 2 pha trong giải thuật này: Đồ án tốt nghiệp Chương 3 Định tuyến trong mạng cảm biến Đỗ Thị Tuyết ĐT6-K48 58 Chuyển tiếp gói đến vùng đích: GEAR dùng cách tự chọn nút lân cận dựa trên sự nhận biết về năng lượng và vị trí địa lý để định tuyến gói đến vùng đích. Có 2 trường hợp cần quan tâm: khi tồn tại nhiều hơn một nút lân cận gần hơn so với đích: GEAR sẽ chọn hop tiếp theo trong số tất cả các nút lân cận gần đích hơn. Khi mà tất cả các nút đều xa hơn: trong trường hợp này sẽ có một lỗ hổng. GEAR chọn hop tiếp theo mà làm tối thiểu giá chi phí của nút lân cận này. Trong trường hợp này, một trong số các nút lân cận được chọn để chuyển tiếp gói dựa trên learned cost. Lựa chọn này có thể được cập nhật sau theo sự hội tụ của learned cost trong suốt quá trình truyền gói. Chuyển tiếp gói trong vùng Nếu gói được chuyển đến vùng, nó có thể truyền dữ liệu trong vùng đó có thể bằng cách chuyển tiếp địa lý đệ quy hoặc flooding có giới hạn. Flooding có giới hạn áp dụng tốt trong trường hợp các sensor triển khai không dày đặc. Ở những mạng có mật độ sensor cao, flooding địa lý đệ quy lại hiệu quả về mặt năng lượng hơn là flooding có giới hạn. Trong trường hợp đó, người ta chia vùng thành 4 vùng nhỏ và tạo ra 4 bản copy của gói đó. Việc chia nhỏ này và quá trình chuyển tiếp tiếp tục cho đến khi trong vùng chỉ còn 1 nút, ví dụ như hình (3.9). Để thỏa mãn các điều kiện chúng ta dùng giải thuật chuyển tiếp địa lý đệ qui để truyền gói trong vùng này. Tuy nhiên, với những vùng mật độ thấp, chuyển tiếp địa lý đệ quy đôi khi không hoàn thành, định tuyến vô tác dụng trong một vùng đích rỗng trước khi số hop gói đi qua vượt quá giới hạn. Trong trường hợp này chúng ta dùng flooding có giới hạn. Đồ án tốt nghiệp Chương 3 Định tuyến trong mạng cảm biến Đỗ Thị Tuyết ĐT6-K48 59 Hình 3.9 Chuyển tiếp địa lý đệ quy trong GEAR 3.8. Kết luận Chương này đã tổng kết và đưa ra khá nhiều các giao thức định tuyến. Mỗi giao thức đều có những ưu và nhược điểm riêng. Hiện nay, đã có rất nhiều các cải tiến của các loại giao thức này được đưa ra, và cho kết quả rất khả quan. Việc lựa chọn loại giao thức nào hoàn toàn phụ thuộc vào ứng dụng mà chúng ta triển khai. Mặc dù sự hoạt động của các giải thuật định tuyến này đầy hứa hẹn trong vấn đề sử dụng hiệu quả năng lượng, các nghiên cứu sau này cần phải xác định rõ các vấn đề như chất lượng dịch vụ của các ứng dụng của các cảm biến hình ảnh và các ứng dụng thời gian thực. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 60 Chương 4. Mô phỏng PEGASIS bằng Mobility Framework của OMNeT++ 4.1. Giới thiệu về OMNeT++ và Mobility Framework 4.1.1. Giới thiệu về OMNeT++ OMNeT++ là viết tắt của cụm từ Objective Modular Network Testbed in C++. OMNeT++ là một ứng dụng cung cấp cho người sử dụng môi trường để tiến hành mô phỏng hoạt động của mạng. Mục đích chính của ứng dụng là mô phỏng hoạt động mạng thông tin, tuy nhiên do tính phổ cập và linh hoạt của nó, OMNeT++ còn được sử dụng trong nhiều lĩnh vực khác như mô phỏng các hệ thống thông tin phức tạp, các mạng kiểu hàng đợi (queueing networks) hay các kiến trúc phần cứng... OMNeT++ cung cấp sẵn các thành phần tương ứng với các mô hình thực tế. Các thành phần này (còn được gọi là các module) được lập trình theo ngôn ngữ C++, sau đó được tập hợp lại thành những thành phần hay những mô hình lớn hơn bằng một ngôn ngữ bậc cao (NED). OMNeT++ hỗ trợ giao diện đồ hoạ, tương ứng với các mô hình cấu trúc của nó đồng thời phần nhân mô phỏng (simulation kernel) và các module của OMNeT++ cũng rất dễ dàng nhúng vào trong các ứng dụng khác. Một mô hình trong OMNeT++ bao gồm các module lồng nhau có cấu trúc phân cấp. Độ sâu của của các module lồng nhau là không giới hạn, điều này cho phép người sử dụng có thể biểu diễn các cấu trúc logic của các hệ thống trong thực tế bằng các cấu trúc mô hình. Các module trao đổi thông tin với nhau thông qua việc gửi các message (message). Các message này có thể có cấu trúc phức tạp tuỳ ý. Các module có thể gửi các message này theo hai cách, một là gửi trực tiếp tới địa chỉ nhận, hai là gửi đi theo một đường dẫn được định sẵn, thông qua các cổng và các kết nối. Các module có thể có các tham số của riêng nó. Các tham số này có thể được sử dụng để chỉnh sửa các thuộc tính của module và để biểu diễn cho topology của mô hình. Các module ở mức thấp nhất trong cấu trúc phân cấp đóng gói các thuộc tính. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 61 Các module này được coi là các module đơn giản, và chúng được lập trình trong ngôn ngữ C++ bằng cách sử dụng các thư viện mô phỏng. Cấu trúc phân cấp của các module Một mô hình trong OMNeT++ chứa các module lồng nhau có cấu trúc phân cấp, trao đổi thông tin với nhau bằng cách gửi các message. Cấu trúc của mô hình có thể được mô tả bằng ngôn ngữ NED của OMNeT++. Hình 4.1 Cấu trúc phân cấp module trong OMNeT++ Các module có thể chứa nhiều module con và được gọi là module kết hợp. Các module đơn giản là các module có cấp thấp nhất trong cấu trúc phân cấp. Các module đơn giản chứa các thuật toán của mô hình. Người sử dụng triển khai các module đơn giản bằng ngôn ngữ C++, sử dụng các thư viện mô phỏng của OMNeT++. Message, cổng, liên kết Các module trao đổi thông tin bằng việc gửi các message.Trong thực tế, message có dạng khung (frame) hoặc là các gói tin (packet) được truyền đi trong mạng. Các message có thể có cấu trúc phức tạp tuỳ ý. Các module đơn giản có thể gửi các message đi một cách trực tiếp đến vị trí nhận hoặc gửi đi theo một đường dẫn định sẵn thông qua các cổng và các liên kết. “Thời gian mô phỏng địa phương” (local simulation time) của một module tăng lên khi module nhận được một message. Message có thể đến từ một module khác hoặc đến từ cùng một module (message của chính bản thân module - self-message được dùng để thực hiện bộ định thời). Cổng (gate) là các giao tiếp vào ra của module. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 62 Message được gửi đi qua các cổng ra và được nhận vào thông qua các cổng vào. Mỗi kết nối (connection) hay còn gọi là liên kết (link) được tạo bên trong một mức đơn trong cấu trúc phân cấp của các module: bên trong một module kết hợp, một kết nối có thể được tạo ra giữa các cổng tương ứng của hai module con, hoặc giữa cổng của module con với cổng của module kết hợp. Hình 4.2 Các kết nối trong OMNeT++ Mô hình truyền gói tin: Một kết nối có thể có ba tham số đặc trưng. Những tham số này rất thuận tiện cho các mô hình mô phỏng mạng thông tin nhưng không hữu dụng lắm cho các kiểu mô hình khác. Ba tham số này bao gồm: ¾ Độ trễ đường truyền (propagation delay) tính bằng s - giây. ¾ Tỉ số lỗi bit, được tính bằng số lỗi/bit. ¾ Tỉ số dữ liệu, được tính bằng số bit/s. Các tham số này là tuỳ chọn. Giá trị của các tham số này là khác nhau trên từng kết nối, phụ thuộc vào kiểu của liên kết (hay còn gọi là kiểu của kênh truyền - channel type). Độ trễ đường truyền là tổng thời gian đến của message bị trễ đi khi truyền qua kênh. Tỉ số lỗi bit ảnh hưởng đến quá trình truyền message qua kênh. Tỉ số này là xác suất các bit bị truyền sai. Do đó xác suất để một message độ dài n bit truyền đi chính xác là: Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 63 P(message gửi đi được nhận chính xác) = (1 - ber)n Trong đó ber là tỉ số lỗi bit và n là số bit của message. Các message truyền đi đều có một cờ lỗi, cờ này sẽ được thiết lập khi việc truyền message có lỗi. Tỉ số dữ liệu được tính theo đơn vị bit/s, và nó được sử dụng để tính thời gian để truyền một gói tin. Khi tỉ số này được sử dụng, quá trình gửi message đi trong mô hình sẽ tương ứng với việc truyền bit đầu tiên và message được tính là đến nơi sau khi bên nhận đã nhận được bit cuối cùng. Xây dựng và chạy thử các mô hình mô phỏng Một mô hình OMNeT++ bao gồm những phần sau: ¾ Ngôn ngữ mô tả topology - NED (file có phần mở rộng .ned): mô tả cấu trúc của module với các tham số, các cổng... Các file .ned có thể được viết bằng bất kỳ bộ soạn thảo hoặc sử dụng chương trình GNED có trong OMNeT++. ¾ Định nghĩa cấu trúc của các message (các file có phần mở rộng .msg): Người sử dụng có thể định nghĩa rất nhiều kiểu messsage và thêm các trường dữ liệu cho chúng. OMNeT++ sẽ dịch những định nghĩa này sang các lớp C++ đầy đủ. ¾ Mã nguồn của các module đơn giản. Đây là các file C++ với phần mở rộng là .h hoặc .cc. Quá trình tiếp theo giống như biên dịch mã nguồn C/C++: ¾ Trong Linux: các file .cc liên kết thành file .o. ¾ Trong Windows: các file .cpp lien kết thành file .obj. 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 . Chạy các ứng dụng mô phỏng bằng OMNeT++: Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 64 Ta thực hiện đánh hai lệnh sau: opp_nmakemake để tạo ra Makefile.vc Để tạo file chạy ta gõ: nmake -f Makefile.vc. 4.1.2. Giới thiệu về Mobility Mobility là frame work được xây dựng trên OMNeT++ để nhằm hỗ trợ mô phỏng mạng vô tuyến và di động. Phần lõi của frame work hỗ trợ di động của các nút, quản lý kết nối động và mô hình kênh vô tuyến. Thêm vào đó, phần lõi này còn cung cấp các module cơ bản mà ta có thể dựa vào đó mà xây dựng module của mình. Với khái niệm này người lập trình dễ dàng mô phỏng được giao thức của mình dựa trên Mobility frame work. Frame work này chủ yếu được dùng để mô phỏng: ¾ Mạng vô tuyến cố định. ¾ Mạng vô tuyến di động. ¾ Mạng tập trung và phân bố. ¾ Mạng cảm biến. ¾ Mạng vô tuyến đa kênh. ¾ Nhiều sự mô phỏng khác mà cần hỗ trợ di động và giao diện vô tuyến. Các khái niệm cơ bản của Mobility FW: Channel control : Hỗ trợ di động và quản lý kết nối động. Điều khiển và duy trì các kết nối tiềm ẩn giữa các host trong mạng. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 65 Host: Cấu trúc của một host di động được miêu tả như hình vẽ dưới đây. Host là module kết hợp gồm có các lớp(chính là các module) cơ bản sau: lớp ứng dụng appl, lớp mạng Net, lớp Nic. Trong đó module nic bao gồm các module con là: Mac, decider, snrEval. Tương ứng với các lớp là các module được tạo ra trongthư mục / template. Hình 4.3 Cấu trúc của host di động Cấu trúc này cũng dựa trên một phần của tiêu chuẩn ISO/OSI. Tuy nhiên host còn có thêm hai module nữa là: blackboard và mobility. Mobility cung cấp thông tin về vị trí địa lý và điều khiển sự di chuyển của host. Blackboard được sử dụng qua các lớp giao tiếp. Nó cung cấp thông tin qua một hay nhiều lớp và rất có ích khi ta đánh giá giao thức. Cài đặt Mobility FW: Ban đầu bạn down Mobility FW trên trang web của OMNeT++ và để chúng vào thư mục cài đặt OMNeT++. Sau đó bạn làm theo các bước sau: Sửa biến OMNETPP_ROOT trong file mkmk.cmd chỉ đến thư mục bạn cài OMNeT++. Chạy mkmk.cmd Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 66 Sau đó bạn cần lien kết các thư viện của Mobility bằng cách vào cmd chỉ đến thư mục Mobility chạy lệnh sau: nmake /f Makefile.vc core_dir && nmake /f Makefile.vc contrib_dir && nmake /f Makefile.vc networks_dir Đến đây thì bạn có thể sử dụng được Mobility và sẵn sàng xây dựng một chương trình của chính mình. Mobility FM cung cấp các module cơ bản tương ứng với các lớp của host. Module cung cấp các khai báo hàm cần thiết, các hướng dẫn cơ bản để tạo module của chính bạn. Hoặc bạn có thể tham khảo các module trong thư mục /core hoặc /contric. Bạn cũng có thể kế thừa các Module này. Sau khi xây dựng các module cần thiết cho mô phỏng, bạn cần copy file Makefile.gen.vc vào thư mục Yournetwork mà bạn tạo ra, thay đổi biến MOBFW chỉ đến đường dẫn của mobility. Và cuối cùng bạn vẫn phải tạo file Omnetpp.ini để thiết lập các tham số đầu vào cho mô phỏng. Mobility chỉ cung cấp các module cần thiết cho quá trình mô phỏng. Tuy nhiên nếu bạn cũng có thể tạo ra một module mới mà phù hợp với mục đích của bạn. Module mới được tạo ra phải bao gồm 3 file: a.cc,a.h, a.ned. Module cơ bản Module cơ bản sử dụng khởi tạo nhiều giai đoạn của OMNeT++ cho nên các module của MF khởi tạo bằng hai giai đoạn. Trong trường hợp bạn sử dụng Blackboard thì bạn phải public ở giai đoạn 0 và subcribe ở giai đoạn 1. Điều này để tránh trường hợp việc miêu tả một tham số trước khi tham số ấy được public Trong các file ở phần template có chứa hàm initialize(int) của module đơn giản . Bạn không được xóa dòng này vì nó được coi như là điều bắt buộc của giai đoạn khởi tạo module cơ bản. Khái niệm địa chỉ Chúng ta sử dụng id() của module để đánh địa chỉ trong MF. Id() của lớp Nic được dùng để đánh địa chỉ lớp Mac và id() của lớp Net được dùng để đánh địa chỉ lớp Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 67 mạng và lớp ứng dụng. Để lấy được địa chỉ của các module này MF cung cấp các hàm cơ bản để lấy địa chỉ: myApplAddr(), myNetwAddr() và myMacAddr() đối với các lớp BasicApplLayer, BasicNetwLayer và BasicMacLayer tương ứng. Hàm netw2mac() của module Channel Control cung cấp giao thức ARP đơn giản để chuyển đổi địa chỉ giữa lớp mạng và lớp Mac. Tuy nhiên bạn cũng có thể định nghĩa lại hàm getMacAddr() của lớp BasicNetwLayer để thực hiện chức năng này. Quy ước đặt tên Có một số các quy ước đặt tên trong các module file .ned và bạn phải tuân theo. Tất cả các module của host phải chứa từ Host hoặc host trong tên của module. Ví dụ: BaseStationHost hoặc MobileHost. Ngoài ra còn có một số module ned bạn không thể thay đổi tên được như channelcontrol, blackboard, net, phy, snrEval. Module *Basic MF cung cấp cho mỗi lớp một module tương ứng lấy từ lớp module cơ bản. Bạn cũng có thể mở rộng các module này. Cấu trúc kế thừa module của MF được thể hiện như hình vẽ. Hình 4.4 Cấu trúc kế thừa module trong MF Khái niệm bản tin : Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 68 Để cung cấp các chức năng cơ bản như là đóng gói(encapsulate) và dỡ gói (decapsulate) trong module *Basic chúng ta cần thiết phải có những header cho mỗi lớp tương ứng. Những bản tin này có những trường bắt buộc và quan trọng cần thiết cho mô phỏng. Bạn chỉ có thể mở rộng các loại bản tin này. Sau đây là một số loại bản tin tương ứng với các lớp: Bảng 4.1 Các loại bản tin tương ứng của các lớp Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 69 Blackboard Khi bạn muốn đánh giá hoạt động một giao thức, bạn cần thiết phải biết thông tin về trạng thái bên trong một giao thức. Khi đó bạn cần sử dụng Blackboard. Sự thay đổi trạng thái được publish trên Blackboard, và đơn giản bạn chỉ cần đăng ký tham số đó với Blackboard và sau đó truy cập đến tham số này. Ngoài ra Blackboard còn cho phép bạn trao đổi thong tin giữa các lớp mà không cần sử dụng biến con trỏ để liên lạc vòng quanh giữa các module. Ví dụ lớp vật lý có thể cảm nhận xem kênh bận hay rỗi. Nếu giao thức lớp mạng dựa trên cảm nhận sóng mang thì nó cần thong tin này từ lớp vật lý. Blackboard là một module mà các thong tin tương ứng có thể publish trên nó và sau đó có thể truy cập bởi bất kỳ module nào mà đăng ký với nó. BasicModule cung cấp mọi thứ cần thiết để tương tác với lớp Blackboard. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 70 Nếu bạn muốn subcribe() một tham số, bạn bắt buộc phải làm điều này ở giai đoạn 0 khi khởi tạo module: void YourClass::initialize(int stage) { BaseClass::initialize(stage); if (stage == 0){ SomeBBItem item; catItem = bb->subscribe(this, &item, -1); ... } else if(stage == 1) { ... Biến item của lớp SomeBBItem thể hiện cho tham số mà bạn muốn đăng ký. Ví dụ bạn muốn đăng ký thông tin về vị trí của host bạn có thể khai báo biến: SomeBBItem catHostMove. Tiếp theo đó bạn cần phải thực hiện đăng ký biến này với module Blackboard như sau: catItem = bb->subscribe(this, &item, -1); catItem trả về kiểu số nguyên, this là con trỏ đến module mà bạn sau này bạn muốn lấy thông tin về sự thay đổi của tham số item, -1 là phạm vi của tham số. Hủy đăng ký: unsubscribe() Muốn hủy đăng ký bạn làm như sau: bb->unsubscribe(this, catItem); Lấy thông tin đăng ký: bạn sử dụng hàm receiveBBItem: void YourClass::receiveBBItem(int category, \ const BBItem *details, int scopeModuleId) { // in case you want to handle messages here Enter_Method_Silent(); // in case not you but your base class subscribed: BaseClass::receiveBBItem(category, details, scopeModuleId); // react on the stuff that you subscribed if(category == catItem) { someBBItemPtr = static_cast(details); // do something } Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 71 Tham số đầu tiên của hàm này là category là số nguyên mà hàm đăng ký trả lại , tham số thứ hai là đối tượng của lớp mà bạn đăng ký và tham số thứ ba là phạm vi của tham số này. Bạn cũng có thể đặt hai macro Enter_Method or Enter_Method_Silent ở đầu. Điều này cho phép bạn sắp xếp hoặc hủy bản tin. Bạn cũng nên thông báo cho lớp cơ sở. Bây giờ bất kỳ sự thay đổi nào cua tham số này, lớp cơ sở sẽ thong báo cho bạn. Phần này chỉ trình bày tóm tắt về Mobility, bạn có thể tham khảo thêm cách sử dụng các hàm API trong thư mục /doc sau khi cài đặt Mobility. 4.2. Giới thiệu về PEGASIS Mạng cảm biến bao gồm những nút giới hạn năng lượng và truyền thông vô tuyến để thu lượm thông tin hữu ích trong trường cảm biến. Việc hợp nhất dữ liệu cảm nhận được theo một cách có hiệu quả năng lượng là vấn đề then chốt trong hoạt động kéo dài thời gian sống của mạng. Trong bài toán tập hợp dữ liệu, trong mỗi vòng truyền thông mỗi nút sẽ có một gói dữ liệu để truyền đến trạm cơ sở. Nếu mỗi nút truyền trực tiếp dữ liệu đến trạm cơ sở thì nó sẽ nhanh chóng bị tiêu hao năng lượng. Giao thức LEACH khắc phục bằng cách tạo ra các cụm, trong mỗi cụm sẽ bầu chọn một nút chủ để tập hợp dữ liệu từ các nút thành viên và truyền đến đến trạm cơ sở. Bằng cách ngẫu nhiên lựa chọn nút chủ, LEACH đạt được sự cải thiện 8 lần so với cách truyền trực tiếp khi đo tỷ lệ nút chết. Mặc dù đạt được những cải thiện đáng kể nhưng LEACH vẫn còn một số giới hạn sau: ¾ Tiêu tốn lượng mào đầu để thiết lập các cụm. ¾ Truyền dữ liệu trức tiếp từ mỗi cụm chủ đến trạm cơ sở ở xa. ¾ Số lượng các lần truyền ở khoảng cách xa sẽ tăng khi kích thước mạng tăng và tiêu hao tổng năng lượng của mạng. Giao thức PEGASIS em đưa ra ở đây có sự cải thiện đáng kể hơn so với LEACH. PEGASIS (Power-Efficient Gathering in Sensor Information Systems) là giao thức dựa trên xây dựng chuỗi gần tối ưu. Tức là mỗi nút chỉ giao tiếp với một nút lân Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 72 cận gần nó nhất, và lần lượt truyền dữ liệu đến trạm cơ sở, do đó nó làm giảm tối thiểu năng lượng sử dụng trong một vòng. 4.2.1. PEGASIS cơ bản PEGASIS hỗ trợ tối thiểu hóa khoảng cách truyền trong mạng, tối thiểu hóa lượng mào đầu quảng bá, tối thiểu hóa khối lượng bản tin truyền đến trạm cơ sở và phân bố năng lượng đồng đều giữa các nút trong mạng. Ý tưởng của PEGASIS là tạo một chuỗi các nút cảm biến để mỗi nút có thể nhận và truyền dữ liệu tới nút bên cạnh, việc truyền dữ liệu từ nút đến nút, tập hợp lại và sau cùng truyền đến trạm cơ sở. Các nút này sẽ thay nhau truyền dữ liệu đến trạm cơ sở, để năng lượng trung bình được sử dụng bởi mỗi nút được giảm ở mỗi vòng. Để thực hiện thuật toán chúng ta giả sử tất cả các nút cảm biến đều có hiểu biết toàn cục về mạng và đều có thể sử dụng thuật toán Greedy. Thuật toán greedy thực hiện rất tốt và việc xây dựng chuỗi được thực hiện trước khi một vòng truyền dữ liệu bắt đầu. Để xây dựng một chuỗi chúng ta bắt đầu từ nút xa trạm BS nhất. Chúng ta làm điều này để đảm bảo các ở xa BS đều có nút lân cận gần nó, vì trong thuật toán greedy khoảng cách giữa các nút sẽ tăng dần vì các nút nằm trong chuỗi sẽ không được thăm lại. Hình (4.5) chỉ ra thứ tự liên kết, nút 0 nối với nút 3, nút 3 nối với nút 1, nút 1 nối với nút 2. Khi một nút chết, các nút sẽ phải xây dựng lại chuỗi và bỏ qua nút chết ấy. Hình 4.5 Xây dựng chuỗi sử dụng thuật toán Greedy Để tập hợp dữ liệu mỗi vòng, mỗi nút sẽ nhận dữ liệu từ nút hàng xóm và hợp nhất với dữ liệu nó cảm nhận được và truyền đến nút hàng xóm tiếp theo trong chuỗi. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 73 Sau khi chuỗi được thành lập, bước tiếp theo là chọn nút chủ. Nút chủ được chọn bằng cách sau: ở vòng thứ i thì nút thứ i mod N (N là số nút trong mạng ) sẽ làm chủ. Như vậy năng lượng sẽ được san sẻ giữa các nút. Khi một nút chết, chuỗi sẽ được cập nhật lại bằng cách bỏ qua nút đó trong chuỗi. Như hình 4.6 khi nút 7 chết , nút 8 sẽ cố gắng liên lạc với nút 6. Hình 4.6 Xử lý lỗi khi một nút trong chuỗi chết. 4.2.2. PEGASIS cải tiến Trong giải thuật PEGASIS cơ bản, chúng ta thấy rằng mặc dù năng lượng đã được chia sẻ cho các nút nhưng các nút ở xa trạm BS sẽ bị tiêu thụ năng lượng nhiều hơn và do đó nhanh chóng chết đi. Như vậy sẽ ảnh hưởng đến thời gian sống của toàn mạng. Sau đây, ta đưa ra một cải tiến trong quá trình chọn nút chủ để làm tăng thời gian sống của mạng. Chúng ta sẽ không cho các nút ở xa trạm BS và có năng lượng thấp làm nút chủ. Chúng ta chọn nút chủ như sau: ¾ Tất cả các nút sẽ tính toán tỉ số Ri như sau: Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 74 Ri=Pai/PTxi Trong đó: Pai : năng lượng của nút i tại thời điểm hiện tại. PTxi : năng lượng cần thiết để nút i truyền đến trạm cơ sở. ¾ Nút cuối chuỗi sẽ bắt đầu gửi gói chứa giá trị Ri của nó về phía nút hàng xóm trong chuỗi. Mỗi nút nhận gói này sẽ so sánh giá trị hiện tại trong gói với giá trị R của nó. Nếu cao hơn, nó đơn giản sẽ chuyển tiếp gói, còn nếu nhỏ hơn, nó sẽ biến đổi gói với giá trị hiện tại của nó và chuyển tiếp đến nút cạnh nó trong chuỗi. ¾ Nút có giá trị R cao nhất sẽ là nút chủ. Nút chủ sẽ thông báo cho cách thành viên trong chuỗi biết. ¾ Việc bầu chọn nút chủ được thực hiện theo một số vòng nào đó. Số vòng để lựa chọn nút chủ thay đổi thích ứng theo mức năng lượng hiện tại của mỗi nút. Tại thời điểm bắt đầu, mức năng lượng của mỗi nút khác nhau tương đối nhỏ và các nút vẫn có mức năng lượng rất cao. Một khi được lựa chọn làm nút chủ, nút sẽ giữ vai trò này trong một số vòng. Sau đó nó khỏi tạo chu kỳ lựa chọn nút chủ khác và do đó làm giảm số mào đầu liên kết với nút chủ. Khi mức năng lượng của các nút giảm thì số vòng để chọn lại nút chủ cũng giảm và do đó tránh được một nút tiêu thụ năng lượng quá nhiều khi làm nút chủ. Khi mức năng lượng của nút trở nên quá thấp, việc chọn nút chủ sẽ diễn ra thường xuyên ở mỗi vòng. Kỹ thuật này đảm bảo các nút có năng lượng cao và gần trạm BS sẽ có nhiều cơ hội làm nút chủ hơn. Việc chọn nút gần trạm BS làm nút chủ sẽ giảm tổng chi phí truyền trong mạng. Sau khi chọn nút chủ. Nút chủ sẽ truyền thẻ bài dọc theo chuỗi đến nút cuối chuỗi. Nút này bắt đầu cảm nhận dữ liệu và truyền đến nút bên cạnh nó trong chuỗi. Nút này sẽ tập hợp dữ liệu của nó và dữ liệu nhận được trong một gói và truyền đến nút bên cạnh nó trong chuỗi. Cứ như thế, dữ liệu được truyền đến trạm cơ sở. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 75 Như vậy về mặt thuật toán chúng ta thấy rằng PEGASIS có những cải tiến đáng kể hơn so với LEACH về thời gian sống. PEGASIS tiết kiệm năng lượng ở một số giai đoạn. Cụ thể như sau: ¾ Đầu tiên, việc tập hợp dữ liệu cục bộ, khoảng cách mà hầu như các nút trong mạng truyền dữ liệu nhỏ hơn nhiều so với việc truyền dữ liệu của các nút thành viên đến nút chủ trong cụm của LEACH. ¾ Thứ hai, khối lượng dữ liệu nút chủ trong PEGASIS nhận được nhiều nhất là hai bản tin trong khi đó của LEACH là 20 (nếu mạng có 100 nút), nhiều hơn rất nhiều. ¾ Thứ ba, chỉ có một nút trong mạng truyền dữ liệu đến trạm cơ sở trong khi đó ở LEACH có 5% số nút truyền đến trạm cơ sở. Mặc dù có những cải tiến đáng kể so với LEACH, nhưng PEGASIS vẫn tồn tại một số hạn chế như sau: ¾ Trễ trong mạng khá lớn, đặc biệt là nếu kích thước mạng lớn thì chuỗi sẽ rất dài và số lượng bước nhảy rất cao khi truyền dữ liệu từ cuối chuỗi đến trạm cơ sở. ¾ Thêm vào đó, các nút trong chuỗi phải biết cấu hình mạng và điều này không phải luôn luôn dễ dàng đối với mạng cảm biến. ¾ Xảy ra hiện tượng thắt cổ chai tại nút chủ. Tức là dữ liệu tập hợp được đến nút chủ thì nút chủ không còn đủ năng lượng truyền đến trạm BS nữa. Khắc phục: Để khắc phục trễ chúng ta có thể chia mạng ra thành nhiều khu vực con, mỗi khu vực con này sẽ thiết lập nên một chuỗi. Tương ứng với mỗi chuỗi con sẽ có một nút chủ. Các nút chủ này lại có thể liên kết với nhau tạo thành chuỗi cấp cao hơn và chuỗi này sẽ lại chọn nút chủ để truyền đến trạm BS. Mô tả như hình (4.7) sau: Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 76 Hình 4.7 Khắc phục của PEGASIS 4.3. Mô phỏng 4.3.1. Mô hình năng lượng Đặc điểm của kênh vô tuyến Trong kênh vô tuyến, quá trình truyền sóng điện từ có thể được mô hình bằng quy luật hàm giảm công suất ở khoảng cách giữa bộ phát và bộ thu. Thêm vào đó, nếu giữa bộ phát và bộ thu không truyền theo đường truyền thẳng mà bị cản trở bởi chướng ngại vật thì khi đó song điện từ sẽ đến bộ thu bằng các đường khác nhau tại thời điểm khác nhau. Điều này gây ra hiện tượng phading đa đường. Vấn đề là ta sử dụng mô hình nào (mô hình đường truyền thẳng hay mô hình phading đa đường) trong mạng cảm biến. Ta biết công suất thu được tại bộ thu sẽ giảm khi khoảng cách giữa bên phát và bên nhận tăng lên. Theo “Wendi” thì cả hai mô hình này đều được sử dụng tùy thuộc vào khoảng cách giữa bên truyền và bên phát. Nếu khoảng cách giữa bên phát và bên thu nhỏ hơn khoảng cách dcross-over thì mô hình không gian được sử dụng (suy hao d2) và nếu ngược lại thì mô hình 2 đường dẫn được sử dụng (suy hao d4). Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 77 Điểm cắt (cross-over) được định nghĩa như sau: λ π tr crossover hhL d 4= (4.1) Trong đó: L 1≥ : hệ số suy hao hệ thống không liên quan đến quá trình truyền hr: chiều cao của ănten bên nhận so với mặt đất ht: là chiều cao của ăn ten phát so với mặt đất λ: là bước song của tín hiệu song mang Nếu khoảng cách truyền nhỏ hơn dcross-over thì công suất truyền suy hao được tính như sau : Ld GGPdP rttr 2 2 )4( )( π λ= (4.2) Trong đó : Pr(d) : công suất nhận được ở khoảng cách d Pt : công suất bên truyền Gt : hệ số khuếch đại của anten bên truyền Gr hệ số khuếch đại của anten bên nhận λ: là bước song của tín hiệu sóng mang L 1≥ : hệ số suy hao hệ thống không liên quan đến quá trình truyền d : khoảng cách giữa bên truyền và bên nhận Phương trình này mô hình sự suy hao khi bên phát và bên thu có sự thông tin tầm nhìn thẳng (truyền thẳng không có chướng ngại vật), điều này chỉ xảy ra nếu như bên phát và bên thu gần nhau(d dcross-over thì ta có công thức sau : Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 78 4 22 )( d hhGGP dP rtrttr = (4.3) Trong đó : Pr(d) : công suất nhận được ở khoảng cách d Pt : công suất bên truyền hr: chiều cao của ănten bên nhận so với mặt đất ht: là chiều cao của ăn ten phát so với mặt đất d : khoảng cách giữa bên truyền và bên nhận Gt : hệ số khuyêch đại của anten bên truyền Gr hệ số khuyêch đại của anten bên nhận Trong trường hợp này tín hiệu nhận được theo cả hai hướng, hướng trực tiếp và hướng phản xạ. Vì có một hay nhiều đường truyền mà tín hiệu đến, nên tín hiệu sẽ suy giảm theo d4. Ví dụ : Cho Gt=Gr=1, ht=hr=1.5m, hệ thống không suy hao L=1, f=914 MHZ Suy ra : λ =3*108 /914*106 =0.328m, thay giá trị này vào hai biểu thức trên Ta có: md md d PP t d P r t 2.86 2.86 : : 25.2 1082.6 4 4 2 ≥ < ⎪⎩ ⎪⎨ ⎧ ×= − (4.4) Trong phần này, chúng ta sẽ xem xét một mô hình đơn giản sẽ áp dụng trong phần mô phỏng. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 79 Hình 4.8 Mô hình năng lượng đơn giản Như thảo luận ở trên sự suy giảm công suất trong quá trình truyền phụ thuộc vào khoảng cách giữa bên phát và bên thu, nếu khoảng cách tương đối ngắn, ta có thể áp dụng mô hình tỉ lệ nghịch với d2, và ngược lại nếu khoảng cách dài ta áp dụng mô hình tỉ lệ với d4. Bộ điều khiển công suất có thể đảo ngược sự suy hao này bằng cách thiết lập khuếch đại công suất để đảm bảo mức công suất nào đó tại bên nhận, do đó để truyền một bản tin dài l bit, ở khoảng cách d ta có: ( ) ( ) ( )dlElEdlE ampTxelecTxTx ,, −− += (4.5) ( ) ⎪⎩ ⎪⎨ ⎧ ≥+ <+= −− − crossoverampdraytwoelec crossoverampfrisselec Tx ddllE dddllE dlE : : , 4 2 ε ε (4.6) Bên nhận: ( ) ( )lElE elecRxRx −= (4.7) ( ) elecRx lElE = (4.8) Trong đó năng lượng điện tử, Eelec phụ thuộc vào các hệ số như: mã hóa số, điều chế, lọc tín hiệu trước khi được gửi đến bộ khuyêch đại.Thêm vào đó việc sử dụng kỹ thuật trải phổ năng lượng điện tử phải tính đến cả năng lượng trải phổ tín hiệu khi Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 80 truyền và tương quan dữ liệu với mã trải phổ khi nhận. Các nhà nghiên cứu đã thiết kế chip thu phát baseband hỗ trợ thông tin trải phổ đa người dùng và hoạt động ở 165mW ở chế độ truyền và 46.5 mW ở chế độ nhận, theo “windy”, người ta đã tập hợp năng lượng tiêu thụ trên 1 bit dữ liệu ở bộ thu phát là Eelec=50nJ/bit đối với bộ thu phát tốc độ 1Mpbs. Điều này có nghĩa là phần điện tử sẽ tiêu tán 50mW khi hoạt động (thu hoặc phát dữ liệu). Hai tham số: €friss-amp và €two-ray-amp tùy thuộc vào độ nhạy máy thu yêu cầu, và nhiễu tạp âm máy thu, do đó công suất truyền cần phải điều chỉnh để công suất máy thu lớn hơn một mức ngưỡng PR-thresh. Chúng ta có thể làm ngược lại từ ngưỡng của công suất máy thu để tính toán công suất truyền tối thiểu. Nếu tốc độ truyền là Rb thì công suất truyền Pt sẽ bằng năng lượng truyền trên bit ETx-amp(1,d) nhân với tốc độ: Pt= ETx-amp(1,d)*Rb. (4.9) Khi đó ta có : ⎪⎩ ⎪⎨⎧ ≥ <= −− − crossoverbampraytwo crossoverbampfruss t dddR dddR P : : 4 2 ε ε (4.10) Sử dụng mô hình kênh truyền ở trên chúng ta sẽ có : ( )⎪⎩ ⎪⎨ ⎧ ≥ <= −− − crossoverrtrtbampraytw crossover rtbampfriss r ddhhGGR dd GGR P : : 4 22 0 2 2 ε π λε (4.11) Và ( ) 2 24 λ πε rtb threshr ampfriss GGR P − − = (4.12) 22 rtrtb threshr ampraytwo hhGGR P − −− =ε (4.13) Do đó công suất truyền Pt sẽ là hàm của ngưỡng công suất bên thu và khoảng cách d Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 81 ⎩⎨ ⎧ ≥ <= − − crossoverthreshr crossoverthreshr t dddP dddP P : : 4 2 2 1 α α (4.14) Với ( ) 2 2 1 4 λ πα rtGG = ; 222 1 rttt hhGG =α (4.15) Chúng ta có thể xác định mức ngưỡng ở máy thu sử dụng việc đánh giá nhiễu ở máy thu. Nếu nhiễu sàn nhiệt là 99dBm và tạp âm nhiễu máy thu là 17dB2 và chúng ta yêu cầu tỉ số tín hiệu trên nhiễu ít nhất là 30dB để nhận tín hiệu k nhiễu, thì công suất nhận tối thiểu là : PR-thresh > 30 + (-82)=-52 dBm (4.16) Do đó công suất nhận được ít nhất phải là -52dBm hay 6.3 nW để nhận thành công gói. Thay các giá trị vào (Gt=Gr=1, ht=hr=1.5m, L=1, f=914 MHZ, λ=0.328m, Rb=1Mbps). Ta có: 2//10 mbitpJampfriss =−ε (4.17) 4//0013.0 mbitpJampraytwo =−−ε (4.18) Chúng ta sẽ sử dụng mô hình vô tuyến đơn giản kiểu thứ nhất như sau: Truyền bản tin k bit ở khoảng cách d sử dụng mô hình vô tuyến. ETx-elec : năng lượng/bit truyền ERx-elec: năng lượng /bit nhận €amp : hệ số của bộ khuêch đại Phương trình bên truyền: ( ) ( ) ( )dkEkEdkE ampTxelecTxTx ,, −− += ( ) 2, dkkEdkE ampelecTx ∗∗+∗= ε Phương trình bên nhận: Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 82 ( ) ( )kEkE elecRxRx −= ( ) kEkE elecRx ∗= Việc nhận bản tin cũng tiêu tốn năng lượng khá cao cho nên chúng ta cũng cần tối thiểu số lần truyền và nhận ở mỗi nút. 4.3.2. Giả thiết và thiết lập thông số ban đầu cho quá trình mô phỏng Chúng ta có một số các giả thiết ban đầu như sau: ¾ Các nút trong mạng đều biết về topology của mạng ¾ Tất cả các nút trong toàn mạng đều có thể truyền dữ liệu trực tiếp đến trạm cơ sở (Sink). Số nút trong mạng N=100 nút. Phạm vi mô phỏng mạng (50m x 50m), trạm BS đặt ở vị trí (25m,150m). Nếu phạm vi mô phỏng mạng là 100m x 100m , trạm BS đặt ở vị trí (50m,300m). Năng lượng ban đầu iniPower =0.25J ; 0.5J Năng lượng tiêu tốn khi xử lý một bit : Eelec=50nJ/bit Hệ số khuêch đại: 2//10 mbitpJampfriss =−ε Chiều dài mỗi bản tin DATA k=2000 bit. Chúng ta sẽ mô phỏng trên Mobility Framework. Các nút trong mạng được phân bố vị trí một cách ngẫu nhiên. Quá trình mô phỏng gồm các bước như sau: ¾ Bước 1: Tìm nút xa trạm BS nhất ¾ Bước 2: Thiết lập chuỗi ¾ Bước 3: Chọn nút chủ Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 83 ¾ Bước 4: Truyền dữ liệu và xử lý lỗi khi nút chết Chúng ta sẽ đi lần lượt từng bước như trên. Bước 1: Tìm nút xa nhất Ban đầu BS sẽ đưa ra lệnh xây dựng mạng thông qua bản tin INITIATE_CONFIGURE_NETWORK. Sau đó BS broadcast bản tin BROADCASTING_POSITION cho toàn bộ nút trong mạng để tính toán khoảng cách từ các nút đó đến BS. Bản tin BROADCASTING_POSITION: cplusplus {{#include "NetwPkt_m.h"}}; class NetwPkt; message BSP extends NetwPkt { fields: int posX; int posY; } Tham số posX và posY chứa tọa độ của trạm BS. Chúng ta có thể lấy được vị trí hiện tại của BS thông qua việc đăng ký biến HostCoor với Blackboard posX = (int)(HostCoor.x) posY = (int)(HostCoor.y) Hình (4.9) là giao diện của Mobility khi mô phỏng, miêu tả quá trình broadcast của trạm cơ sở (BS) đến các nút trong mạng, host[0] trong hình chính là trạm cơ sở. Đường nét đứt là đường truyền vô tuyến của bản tin. Channel control điều khiển việc di động của các host và tính toán khoảng cách giao thoa giữa các nút. Trong phần mô phỏng này ta giả sử các nút cảm biến không di động. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 84 Hình 4.9 Trạm BS gửi broadcast đến cho các nút trong mạng Các nút nhận được bản tin này sẽ tính toán khoảng cách đến BS nhờ thông số tọa chứa trong bản tin. Và sau đó gửi reply lại bằng bản tin REPLY_BROADCASTING_POSITION: cplusplus {{#include "NetwPkt_m.h"}}; class NetwPkt; message RBSP extends NetwPkt { fields: double distance; }; Trong đó: Tham số distance sẽ chứa khoảng cách của các nút đến BS. Sau khi BS nhận được bản tin này, BS sẽ so sánh các giá trị distance và tìm ra MaxDistance, tức là sẽ tìm ra nút xa nhất so với BS. Bước 2: Thiết lập chuỗi Sau khi tìm được nút xa nhất, BS gửi thông báo đến nút đó thông qua bản tin MAX_DISTANCE (hình 4.10). Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 85 Nút xa nhất này chính là nút gốc của chuỗi. Nút này nhận được bản tin MAX_DISTANCE sẽ bắt đầu tìm nút khác gần nó nhất và cho vào chuỗi. Nó sử dụng bản tin FIND_NODE_INTO_CHAIN có các trường giống như bản tin BROADCASTING_POSITION của BS . Hình 4.10 Trạm BS gửi bản tin Max Distance đến nút xa nhất Các nút xung quanh nhận được bản tin này và gửi bản tin đáp trả lại REPLY_FIND_NODE_INTO_CHAIN. Nút này căn cứ vào các giá trị distance trong các bản tin để lựa chọn ra nút gần mình nhất có địa chỉ MinAddr và khoảng cách Min. Sau đó nó gửi bản tin mời gọi vào chuỗi INVITE_INTO_CHAIN như sau: cplusplus {{#include "NetwPkt_m.h"}}; class NetwPkt; message InvitePkt extends NetwPkt { fields: int vitri; int index; }; Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 86 Hình 4.11 Nút xa nhất chuỗi gửi bản tin Invite mời nút gần nhất vào chuỗi Cứ như vậy, sau khi nút này vào chuỗi thì lại tiếp tục mời gọi các nút còn lại trong chuỗi vào chuỗi. Hình 4.12 Các nút kết nối vào nhau tạo thành chuỗi Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 87 Chú ý: Ta nên khai báo thêm một biến vaoChuoi kiểu bool để đánh dấu khi một nút đã vào chuỗi rồi. Điều này sẽ rất thuận lợi và các nút một khi đã vào chuỗi rồi sẽ không tính toán khoảng cách khi nhận được bản tin FIND_NODE_INTO_CHAIN. Hình 4.13 Chuỗi sau khi thiết lập xong. Sau khi tất cả các nút đều đã vào chuỗi, nút cuối cùng vào chuỗi sẽ gửi bản tin REQUEST_CHOSING_HEADER đến cho trạm BS. BS sẽ bắt đầu khởi tạo quá trình chọn nút chủ bằng cách gửi đến nút gốc của chuỗi, chính là nút có khoảng cách xa BS nhất. Bước 3: Chọn nút chủ Nút xa nhất bắt đầu tính toán tỉ lệ: Ratio=curPower/distance Với curPower là năng lượng hiện tại của nút và cho vào bản tin truyền dọc theo chuỗi, tại các nút: khi nhận được bản tin cũng tính toán giá trị này và sau đó gửi so sánh giá trị Ratio của nó và của bản tin nhận được. Nếu nhỏ hơn nó đơn giản sẽ foreward đi còn ngược lại sẽ thay thế bằng Ratio của mình và lại truyền đi. Nút có giá Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 88 trị Ratio cao nhất sẽ được chọn làm nút chủ. Nút chủ sẽ thông báo cho các nút khác biết vị trí của các nút và nó là nút chủ. Bước 4: Truyền dữ liệu và xử lý lỗi khi một nút chết Nút chủ bắt đầu gửi TOKEN đến nút gốc chuỗi để bắt đầu một vòng truyền dữ liệu, sau đó như thuật toán đã nêu ở trên, các nút sẽ lần lượt tích hợp dữ liệu của nó và truyền đến nút chủ. Sau đó nút chủ sẽ tập hợp dữ liệu của nó và hai bản tin từ hai phía truyền về và truyền đến Sink. Mỗi bản tin có kích thước k=2000 bit. Tại các nút mỗi khi nhận được bản tin sẽ tính toán năng lượng nhận và truyền theo công thức đã đề cập ở mô hình mô phỏng. Phương trình tính toán năng lượng khi truyền bản tin: ( ) ( ) ( )dkEkEdkE ampTxelecTxTx ,, −− += ( ) 2, dkkEdkE ampelecTx ∗∗+∗= ε Phương trình tính toán năng lượng khi nhận bản tin: ( ) ( )kEkE elecRxRx −= ( ) kEkE elecRx ∗= Sau mỗi lần nhận gói tin, các nút sẽ kiểm tra xem còn đủ năng lượng để truyền và nhận không? Nếu không đủ năng lượng thì nó sẽ không truyền gói đi và cũng sẽ không nhận gói tin. Lúc này một nút coi như là đã chết, các nút khác dựa vào thời gian timeout, không thấy nút đó gửi dữ liệu đến sẽ thông báo đến nút chủ để cập nhật lại chuỗi. Chuỗi mới sẽ bỏ qua nút chết. Sau đó nút chủ lại gửi TOKEN để bắt đầu thu thập dữ liệu. Khi nút chết, nút chủ có nhiệm vụ gửi thông báo đến BS, BS đếm số nút chết và sau đó BS đưa ra kết quả. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 89 4.3.3. Kết quả mô phỏng Sau đây ta sẽ đưa ra kết quả mô phỏng của ba giao thức: truyền tin trực tiếp, LEACH, PEGASIS. Trong bảng (4.10) là kết quả khi mô phỏng, phần đậm ứng với kích thước mạng là (50m,50m), phần còn lại là kết quả mô phỏng ứng với mạng có kích thước (100m, 100m). Trong bảng (4.2) ta thấy, các nút bắt đầu chết đồng loạt sau khi 20% nút chết. Bởi vì khoảng cách giữa các nút lúc này lớn hơn rất nhiều, việc lựa chọn nút chủ diễn ra thường xuyên mỗi vòng và các nút cũng nhanh chóng tiêu hao năng lượng hơn. Bảng 4.2 Số vòng khi 1%, 20%, 50%, và 100% nút chết Hình (4.14) và (4.15) chỉ ra số vòng khi 1% , 20%, 50% và 100% nút chết với kích thước mô phỏng mạng là (50m,50m) và (100m,100m). Từ kết quả ta nhận thấy rằng, số vòng PEGASIS đạt được gấp 2 lần so với LEACH với kích thước mạng là (50m,50m). Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 90 Hình 4.14 Kết quả khi mô phỏng mạng có kích thước (50m,50m) với năng lượng ban đầu của nút là 0.25 J Hình 4.15 Kết quả mô phỏng khi kích thước mạng là (100m.100m) với năng lượng của nút ban đầu là 0.5J Năng lượng ban đầu của nút trong hình (4.9) là 0.25J và hình (4.10) là 0.5J . Mức năng lượng tăng gấp đôi dẫn đến số vòng cũng tăng gấp đôi . Với kích thước mạng (100m,100m) thì số vòng khi thực hiện PEGASIS gấp ba so với LEACH. Đồ án tốt nghiệp Chương 4 Mô phỏng PEGASIS Đỗ Thị Tuyết ĐT6-K48 91 4.4. Kết luận và hướng nghiên cứu tiếp theo Trong chương này đã đưa ra kết quả mô phỏng của PEGASIS. Kết quả đã cho thấy PEGASIS khắc phục được nhược điểm của LEACH bằng cách loại bỏ lượng mào đầu của thông tin các cụm động, tối thiểu hóa khoảng cách truyền và nhận giữa các nút trong mạng, và chỉ sử dụng một lần truyền dữ liệu hợp nhất trên mỗi vòng đến trạm cơ sở. Các nút thay nhau truyền dữ liệu hợp nhất đến trạm cơ sở làm cân bằng năng lượng tiêu tán trong mạng và tăng khả năng chống lại lỗi khi các nút chết ở vị trí ngẫu nhiên. Việc phân bố năng lượng trong mạng tải làm tăng thời gian sống và chất lượng của mạng. Việc mô phỏng cho thấy giao thức PEGASIS tốt hơn LEACH và thậm chí cải thiện hơn khi kích thước mạng tăng. Tuy nhiên, một vấn đề nổi trội trong PEGASIS là trễ truyền, nút chủ phải đợi nhận được bản tin dữ liệu hợp nhất của các nút sau đó mới truyền đến trạm cơ sở. Hơn nữa thường xảy ra hiện tượng nút cổ chai tại nút chủ. Hướng nghiên cứu tiếp theo cần khắc phục được các nhược điểm này. Đỗ Thị Tuyết ĐT6-K48 92 KẾT LUẬN Khái niệm mạng cảm biến tương đối còn lạ lẫm đối với nhiều người làm việc trong lĩnh vực viễn thông. Đồ án này em đã trình bày một cách tổng quan nhất về mạng cảm biến. Với tính năng ưu việt và ứng dụng đa dạng mà không phải mạng nào cũng có, trong tương lai không xa mạng cảm biến sẽ được phát triển rộng rãi và nhanh chóng. Em hy vọng với đồ án này, sẽ góp phần vào việc nghiên cứu về lĩnh vực còn tương đối mới mẻ này ở Việt Nam. Trong phạm vi đồ án tốt nghiệp này, em đã nghiên cứu được những nét khái quát nhất về mạng cảm ứng và mô phỏng được một giao thức định tuyến thường được dùng trong mạng. Do kiến thức còn hạn chế, nên đồ án tốt nghiệp của em không thể tránh khỏi những thiếu sót, em rất mong nhận được sự phê bình, đóng góp của các thầy trong bộ môn cũng như trong khoa để đồ án của em được hoàn thiện. Một lần nữa em xin chân thành cám ơn TS. Trần Ngọc Lan - 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 giúp đỡ em trong thời gian vừa qua. Hà Nội, Tháng 5 Năm 2008 Sinh viên thực hiện Đỗ Thị Tuyết Đỗ Thị Tuyết ĐT6-K48 93 Tài liệu tham khảo [1]. Holger Karl Andreas Willig, Protocols and Architectures for Wireless Sensor Networks, Wiley, 2005. [2]. S. Linsay, PEGASIS: power-Efficient Gathering in Sensor Information Systems, Computer Systems Reasearch Department The Aerospace Corporation P.O. Box 92957, Los Angeles, CA 90009-2957. [3]. Jamal N. Al-Karaki Ahmed E. Kamal, Routing Techniques in Wireless Sensor Networks, Dept. of Electrical and Computer Engineering Iowa State University, Ames, Iowa 50011. [4]. Armin Veichtlbauer, Peter Dorfinger Salzburg, Modeling of Energy Efficient Wireless Communication, Research Forschungsgesellschaft mbH, Advanced Networking Center Salzburg, Austria. [5]. 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, USA, Received 12 December 2001; accepted 20 December 2001 [6]. truy nhập cuối cùng ngày 10/5/2008.

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

  • pdfNghiên cứu và mô phỏng giao thức định tuyến pegasis trong mạng cảm biến (đh bk hn).pdf