3.6.1 Cải tiến giao thức LEACH
Có hai ý tƣởng để cải tiến giao thức định tuyến LEACH nhƣ sau: [4]
3.6.1.1 Tiêu chuẩn chọn nút chủ
Giao thức LEACH sẽ chọn ngẫu nhiên nút chủ tại mỗi vòng. Do đó, một số nút có thể cạn kiệt về năng lƣợng nhanh chóng do đƣợc chọn làm nút chủ nhiều lần. Giao thức LEACH cải tiến không chọn nút chủ một cách ngẫu nhiên nữa mà thay đổi tiêu chuẩn chọn. Một trong những cải tiến là làm cho các node có năng lƣợng còn lại nhiều hơn có nhiều cơ hội trở thành nút chủ hơn vì thế sẽ hiệu quả về năng lƣợng hơn LEACH.
Ví dụ: Giao thức E-LEACH
Giao thức Energy-LEACH cải tiến thủ tục chọn nút chủ. Nó làm cho năng lƣợng còn lại của node thành một ma trận chính để quyết định là các nút này có trở thành nút chủ hay không ở vòng tiếp theo. Trong vòng truyền thông đầu tiên, mỗi nút có cùng xác suất để trở thành nút chủ. n (n=pxN) nút đƣợc chọn ngẫu nhiên làm nút chủ, và sau đó năng lƣợng còn lại của mỗi nút sẽ khác nhau sau mỗi vòng truyền thông. Lựa chọn n nút với năng lƣợng còn lại nhiều hơn trở thành nút chủ ở vòng truyền thông tiếp theo, và cứ tiếp tục nhƣ vậy cho đến khi tất cả các nút chết đi.
Giống nhƣ giao thức LEACH, giao thức Energy-LEACH cũng chia thành nhiều vòng, và mỗi vòng gồm pha hình thành cụm và pha ổn định của cụm (để truyền dữ liệu).
(1)Trong pha hình thành cụm, mỗi nút sẽ quyết định trở thành nút chủ hay không bằng cách so sánh năng lƣợng còn lại.
(2)Các nút với năng lƣợng còn lại nhiều hơn sẽ trở thành nút chủ và gửi thông tin nút chủ để thông báo cho các nút khác. Các nút khác với năng lƣợng còn lại ít hơn sẽ trở thành các nút bình thƣờng, và gửi thông tin về việc gia nhập cụm đến nút chủ.
(3)Trong giai đoạn ổn định cluster, các nút trong một cụm gửi dữ liệu theo bảng TDMA, và các nút chủ sẽ nhận, tập hợp và gửi dữ liệu đến trạm gốc. Sau một khoảng thời gian, mạng thực hiện lại quá trình chọn nút chủ trong một vòng mới.
Trong giai đoạn hình thành cụm, biểu đồ luồng của một nút có trở thành nút chủ hoặc một nút bình thƣờng nhƣ trong hình 3.13.
Hình 3.13: Biểu đồ giao thức E-LEACH
3.6.1.2 Truyền thông đa HOP giữa các nút chủ CH
Các nút chủ CH trực tiếp truyền thông với trạm gốc trong giao thức LEACH. Tiêu tốn năng lƣợng giữa nút chủ và trạm gốc lớn hơn năng lƣợng tiêu thụ trong truyền thông giữa các nút chủ với nhau, do đó nút chủ sẽ cạn kiệt năng lƣợng sớm hơn. Giao thức LEACH cải tiến sẽ sử dụng truyền thông đa HOP giữa các nút chủ có thể tránh toàn mạng chết sớm và kéo dài thời gian sống của mạng bằng cách cân bằng năng lƣợng tiêu thụ trong mạng.
Ví dụ: Giao thức Multihop-LEACH
Trong giao thức LEACH, mỗi nút chủ trực tiếp truyền thông với trạm gốc bất kể là khoảng cách giữa nút chủ và trạm gốc là xa hoặc gần. Việc truyền này sẽ tiêu tốn nhiều năng lƣợng nếu khoảng cách xa. Một giao thức LEACH đƣợc sửa đổi (gọi là Multihop-LEACH) sẽ chọn đƣờng đi tối ƣu và thực hiện cơ chế truyền đa HOP
Là node thƣờng
Gửi thông tin tham gia Cluster đến Cluster Head Chọn Cluster Head
Quảng bá thông tin của Cluster Head
Bắt đầu một vòng
Tiếp nhận các nodes có mức năng lƣợng còn lại cao hơn
Mỗi node tự tính mức năng lƣợng còn lại Sai Đúng Nhiều năng lƣợng hơn mức giới hạn ?
(multi-Hop) giữa nút chủ và trạm gốc đƣợc thực hiện nhƣ sau: Trƣớc hết, truyền thông multi-hop thực hiện giữa các nút chủ với nhau. Sau đó, theo đƣờng dẫn tối ƣu đƣợc chọn thì các nút chủ này truyền dữ liệu đến nút chủ tƣơng ứng gần với trạm gốc nhất. Cuối cùng, nút chủ này gửi dữ liệu đến trạm gốc.
Hình 3.14: Giao thức M-LEACH
Giao thức Multihop-LEACH gần nhƣ giống với giao thức LEACH, nó chỉ thực hiện chế độ truyền thông từ đơn HOP sang đa HOP giữa các nút chủ và trạm gốc.
Thuật toán định tuyến đa HOP trong một vòng nhƣ trong hình 3.15.
Hình 3.15: Định tuyến của giao thức Multihop-LEACH
Chọn node gần nhất làm node đích
Gửi dữ liệu đến node đƣợc chọn Mỗi node gửi dữ liệu
Chọn node có năng lƣợng hiệu quả trong dãy 1 hop
3.6.2 Cải tiến giao thức PEGASIS
3.6.2.1 Phương pháp chọn nút chủ
Trong giao thức PEGASIS cơ bản, ta thấy rằng mặc dù năng lƣợng đã đƣợc chia sẻ cho các nút nhƣng các node ở xa trạm gốc sẽ bị tiêu thụ năng lƣợng nhiều hơn và 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. Một trong những ý tƣởng cần cải tiến là trong quá trình chọn nút chủ, 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 node chủ. Nhƣ vậy giao thức PEGASIS cải tiến sẽ hiệu quả hơn PEGASIS cơ bản.Trong giao thức PEGASIS cơ bản việc tập trung dữ liệu trong mạng dọc theo chuỗi. 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 trạm gốc. PEGASIS cải tiến sử dụng 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 node đƣợc trang bị bộ thu phát sử dụng CDMA.[4][5]
3.6.2.2 Phương pháptruyền dữ liệu đi song song
Trong giao thức PEGASIS cơ bản nếu mạng lớn thì chuỗi sẽ khá dài và số bƣớc nhảy lớn khi truyền dữ liệu từ cuối chuỗi đến trạm gốc, điều này sẽ làm trễ truyền lớn. Một vấn đề nữa là xảy ra hiện tƣợng thắt cổ chai tại nút chủ. Để khắc phục các khuyết điểm trên 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 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 gốc. [5][12]
Ví dụ: Giao thức Hierarchical PEGASIS
Giao thức Hierarchical PEGASIS là một phần mở rộng của giao thức PEGASIS. Mục đích chính của PEGASIS phân cấp là việc giảm sự chậm trễ truyền các gói dữ liệu đến trạm gốc. Để làm đƣợc việc này, các cuộc truyền dữ liệu đồng thời đƣợc nghiên cứu để tránh xung đột qua việc kết hợp giữa mã hóa tín hiệu và truyền trong không gian. Sau đó, chỉ có các nút đƣợc phân tách về mặt không gian mới đƣợc phép truyền tại cùng thời điểm. Giao thức dựa trên chuỗi với các nút có khả năng truyền dùng CDMA sẽ xây dựng thành một chuỗi các nút và tạo thành
một cây giống nhƣ phân cấp, mỗi nút đƣợc chọn ở mức đặc biệt truyền dữ liệu đến nút ở mức cao hơn của nhánh. Phƣơng pháp này đảm bảo dữ liệu truyền đi song song và giảm độ trễ cần thiết. Giao thức PEGASIS phân cấp đƣợc chứng minh đã làm tăng hiệu năng so với giao thức PEGASIS thông thƣờng.
Trong hình 3.16 mô tả ví dụ về giao thức PEGASIS phân cấp: các dữ liệu đƣợc truyền song song do đồng thời có các cặp truyền thông vì nút SN0 gửi dữ liệu cho nút SN1, nút SN2 gửi dữ liệu cho nút SN3, nút SN4 gửi dữ liệu cho nút SN5, nút SN6 gửi dữ liệu cho nút SN7. Tiếp theo tại các nút nhận SN1, SN3, SN5 và SN7 thực hiện hợp nhất dữ liệu mà nó nhận đƣợc rồi thực hiện việc truyền tin song song giống nhƣ lƣợt truyền thông đầu tiên.
Hình 3.16: Định tuyến PEGASIS phân cấp
Ở cấp này nút SN1 gửi dữ liệu cho nút SN3, nút SN5 gửi dữ liệu cho nút SN7. Ở cấp cao hơn nữa, nút SN7 gửi dữ liệu cho nút SN3 và cuối cùng nút SN3 gửi dữ liệu cho trạm gốc.
Một số giao thức PEGASIS cải tiến nhƣ là Hierchical PEGASIS, Hop PEGASIS, Grid PEGASIS.
CHƢƠNG 4:
MÔ PHỎNG GIAO THỨC ĐỊNH TUYẾN VÀ ĐÁNH GIÁ
Các chƣơng trƣớc đã nghiên cứu lý thuyết các giao thức định tuyến của mạng WSN. Mỗi giao thức có những ƣu và nhƣợc điểm tác ảnh hƣởng đến quá trình tiêu thụ năng lƣợng của các nút và lƣợng dữ liệu truyền giữa các nút và các nút về trạm gốc. Trên thực tế trƣớc khi triển khai một mạng bất kỳ chúng ta phải đánh giá tính hiệu quả của các giao thức dựa trên những số liệu cụ thể. Để thực hiện điều này các trƣờng Đại học, Viện nghiên cứu đã xây dựng các phần mềm mô phỏng để xây dựng các mô hình lý thuyết. Qua các phần mềm mô phỏng đó chúng ta có thể thu đƣợc các kết quả trực quan giúp cho việc triển khai trong thực tế đƣợc tối ƣu hơn và tiết kiệm rất nhiều chi phí. Có khá nhiều phần mềm mô phỏng mạng, tuy nhiên trong luận văn này, phần mềm mô phỏng đƣợc chọn là NS-2 (Network Simulation) bởi đây là một công cụ hỗ trợ rất tốt cho việc mô phỏng các giao thức trong mạng cảm biến không dây.
4.1 Phần mềm mô phỏng mạng NS2 4.1.1 Giới thiệu về NS2 4.1.1 Giới thiệu về NS2
NS2 là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hƣớng đối tƣợng,
đƣợc phát triển tại UC Berkely, viết bằng ngôn ngữ C ++ và Otcl. Nó thực hiện giao thức mạng nhƣ TCP và UDP, lƣu lƣợng truy cập mã nguồn hành vi nhƣ FTP, Telnet, Web, CBR, và VBR, cơ chế quản lý hàng đợi nhƣ Tail Drop, RED, định tuyến các thuật toán nhƣ Dijkstra v.v. NS rất hữu ích cho việc mô phỏng mạng diện rộng (WAN) mạng local (LAN) và mạng không dây. Bốn lợi ích lớn nhất của NS2 phải kể đến đầu tiên là: [2][9]
+ Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại. + Khả năng đánh giá các giao thức mạng mới trƣớc khi đƣa vào sử dụng. + Khả năng thực thi những mô hình mạng lớn mà gần nhƣ ta không thể thực thi đƣợc trong thực tế.
+ Khả năng mô phỏng nhiều loại mạng khác nhau.
Cấu trúc của NS-2 bao gồm các thành phần đƣợc chỉ ra trên hình 4.1
Otcl: Bộ thông dịch Tcl với phần mở rộng hƣớng đối tƣợng
Thƣ viê ̣n mô phỏng NS
Các đối tƣợng Bộ lập lịch sự kiện
Các đối tƣợng Thành phần mạng
Các module Trợ giúp thiết lập mạng
Otcl Script Kết quả mô phỏng
Phân tích
Minh họa mạng NAM
Hình 4.1: Mô hình đơn giản của NS
Trong hình 4.1 chức năng của các thành phần đƣợc mô tả nhƣ sau: - OTcl Script Kịch bản OTcl
- Simulation Program Chƣơng trình mô phòng
- OTcl Bộ biên dịch Tcl mở rộng hƣớng đối tƣợng - NS Simulation Library Thƣ viện mô phỏng NS
- Event Scheduler Objects Các đối tƣợng bộ lập lịch sự kiện - Network Component Objects Các đối tƣợng thành phần mạng
- Network Setup Helping Modules Các mô đun trợ giúp thiết lập mạng - Plumbling Modules Các mô đun Plumbling
- Simulation Results Các kết quả mô phỏng
- Analysis Phân tích
- NAM Network Animator Minh họa mạng NAM
Trong hình trên, NS-2 là bộ biên dịch Tcl mở rộng hƣớng đối tƣợng; bao gồm các đối tƣợng bộ lập lịch sự kiện, các đối tƣợng thành phần mạng và các mô đun trợ giúp thiết lập mạng (hay các mô đun Plumbing).
Để sử dụng NS-2, ngƣời dùng lập trình bằng ngôn ngữ kịch bản OTcl. Ngƣời dùng có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tƣợng
mới trong OTcl. Những lớp này khi đó sẽ đƣợc biên dịch cùng với mã nguồn gốc. Kịch bản OTcl có thể thực hiện những việc sau:
- Khởi tạo bộ lập lịch sự kiện
- Thiết lập mô hình mạng dùng các đối tƣợng thành phần mạng
- Báo cho nguồn traffic khi nào bắt đầu truyền và ngƣng truyền packet trong bộ lập lịch sự kiện.
Thuật ngữ plumbing đƣợc dùng để chỉ việc thiết lập mạng, vì thiết lập một mạng nghĩa là xây dựng các đƣờng dữ liệu giữa các đối tƣợng mạng bằng cách thiết lập con trỏ “neighbour” cho một đối tƣợng để chỉ đến địa chỉ của đối tƣợng tƣơng ứng. Mô đun plumbing OTcl trong thực tế thực hiện việc trên rất đơn giản. Plumbing làm nên sức mạnh của NS-2.
Trong NS ngoài bộ phận quan trọng là “các đối tƣợng thành phần mạng” còn có thành phần “Bộ lập lịch sự kiện”. Một sự kiện trong NS là một ID của gói tin đƣợc lên lịch và một con trỏ trỏ tới đối tƣợng xử lí sự kiện đó. Một event scheduler theo dõi lịch của tất cả các sự kiện và triệu gọi đối tƣợng thực hiện sự kiện đó vào thời điểm thích hợp. Các đối tƣợng trong mạng trao đổi thông tin với nhau bằng cách gửi và nhận các gói tin. Với mỗi gói tin, các đối tƣợng đều phải mất một khoảng thời gian để xử lí gói tin (độ trễ), các đối tựơng tạo độ trễ bằng cách sử dụng event scheduler. Một dạng thể hiện khác của event scheduler là timer. Ví dụ TCP cần đo thời gian để theo dõi việc truyền gói tin nhằm phục vụ cho việc truyền lại trong trƣờng hợp mất gói tin (gói tin gửi lại vẫn có cùng số hiệu với gói tin trƣớc nhƣng sẽ khác ở NS packet ID). Timer đo thời gian gắn với gói tin và thực hiện hành động liên quan tới gói tin khi đến thời điểm thích hợp, và không mô phỏng độ trễ.
Phụ thuộc vào mục đích mô phỏng hệ thống mạng mà ngƣời dùng sử dụng kịch bản mô phỏng Otcl. Sau khi chạy mô phỏng, kết quả mô phỏng có thể đƣợc lƣu trữ nhƣ file trace (Hình 4.2). Định dạng file trace sẽ đƣợc tải vào trong các ứng dụng khác để thực hiện phân tích:
File Trace (file.tr) đƣợc dùng cho công cụ lần vết và giám sát mô phỏng XGRAPH hay TRACEGRAPH.
Hình 4.2: Luồng các sự kiện cho file Tcl chạy trong NS
NAM Visual Simulation Mô phỏng ảo NAM
Tracing and Monitoring Simulation Mô phỏng lần vết và giám sát
Trong quá trình hoạt động, NS-2 sử dụng các file script đƣợc soạn thảo theo ngôn ngữ Tcl (có phần mở rộng là .tcl) thể thực thi hoạt động của mạng cần mô phỏng. Kết quả thu đƣợc sẽ đƣợc xuất ra file truy vết (trace file, có đuôi là .tr). Mọi sự kiện kết quả của quá trình mô phỏng đều đƣợc ghi lại trong file trace này theo trình tự thời gian. Các kết quả này bao gồm luồng gói tin trao đổi giữa những node mạng và các mốc thời gian liên quan…Ngoài ra quá trình mô phỏng còn đƣợc ghi nhận lại ở trong file có phần mở rộng là .nam hay còn gọi là file Network Animator. Do đó trong bản thân file .nam cũng có chứa các gói tin của NS-2. Mục đích của NS-2 sử dụng file .nam để tạo ra những hình ảnh có thể mô phỏng lại quá trình hoạt động và tƣơng tác của đối tƣợng mạng một cách trực quan và rõ nét hơn. Ví dụ nhƣ cấu hình topology của hệ thống mạng, quá trình trao đổi dữ liệu (phƣơng hƣớng, thứ tự) cũng nhƣ nhiều công cụ phân tích dữ liệu đƣợc NS-2 tích hợp trong NAM module. [9][15]
4.1.2 Các ngôn ngữ lập trình trong NS2
NS-2 là một phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hƣớng đối tƣợng, đƣợc viết bằng hai ngôn ngữ là ngôn ngữ lập trình hệ thống C++ và ngôn ngữ kịch bản hƣớng đối tƣợng OTcl. Để có đƣợc hiệu suất cao, NS tách biệt việc xử
TCL file File.tcl NS NAM Visual Simulation Tracing and Monitoring Simulation Out.nam Out.tr
lý và điều khiển dữ liệu. Để giảm thời gian xử lý gói và các sự kiện (không phải thời gian mô phỏng), bộ lập lịch các sự kiện và các thành phần đối tƣợng mạng cơ bản trong phần dữ liệu đƣợc viết và biên dịch sử dụng trình biên dịch C++. Các đối tƣợng đƣợc biên dịch này có thể đƣợc sử dụng bằng trình thông dịch OTcl qua một mối liên kết OTCL, mối liên kết tạo lên sự phù hợp giữa đối tƣợng OTcl cho mỗi đối tƣợng C++ và tạo nên các chức năng, các tham số cấu hình bởi đối