Mục tiêu chính trong các mạng không dây thường là cung cấp được chất lượng dịch vụ và hiệu quả băng thông lớn khi các nút mạng di chuyển. Ngược lại, trong mạng WSN, việc bảo tồn năng lượng được coi là quan trọng hơn so với hiệu suất của mạng. Do đó, các giao thức định tuyến được thiết kế cho các mạng truyền thống hiện nay không áp dụng được cho các mạng WSN.
Trong mạng WSN, nguồn năng lượng đa phần được lấy từ pin nên rất hạn chế. Do đó năng lượng cần phải được sử dụng một cách có hiệu quả. Chính vì vậy, một trong những mục tiêu quan trọng nhất của các giao thức định tuyến cho mạng WSN là phải lựa chọn con đường đi tốt nhất sao cho giảm thiểu được tổng năng lượng cần thiết để định tuyến các gói tin trên mạng và tối đa hóa thời gian sống của tất cả các nút. Mặt khác, các giao thức định tuyến này còn phải có khả năng tập trung và tổng hợp dữ liệu hiệu quả, phân phối tiêu hao năng lượng đồng đều để tránh hiện tượng thắt nút cổ chai ở một hay một số vị trí cụ thể.
Các giao thức định tuyến phân bậc đã được chứng minh là tiết kiệm năng lượng đáng kể và có hiệu suất tốt hơn khi so sánh với các giao thức trong kiến trúc phẳng với phạm vi mạng có kích thước lớn. Ý tưởng chính của các giao thức định tuyến trong loại phân bậc đó là giảm thiểu luồng lưu lượng gửi về BS. Tuy nhiên, quá trình hình thành các nhóm sẽ đòi hỏi thêm các chi phí trong việc cấu thành nhóm, lựa chọn nút đứng đầu và duy trì nhóm. Vì vậy, các phương thức cấu thành nhóm khác nhau cũng sẽ dẫn tới hiệu quả của các giao thức trong nhóm phân bậc cũng khác nhau.
Thông qua đó, tác giả luận văn này thực hiện bài toán đánh giá hiệu suất của giao thức định tuyến trong nhóm phân bậc dựa trên yếu tố nghiên cứu là phương thức cấu thành nhóm. Các giao thức được tác giả lựa chọn làm mô phỏng đó là : LEACH, LEACH-C, Static-Cluster và PEGASIS.
4.2. Các độ đo đƣợc sử dụng để đánh giá
Với bài toán được đặt ra ở trên, tác giả xác định được 3 độ đo chính cần thực hiện để đáp ứng mục tiêu của bài toán, đó là : thời gian sống của mạng, mức năng lượng tiêu thụ và lượng dữ liệu gửi về BS. Trong đó, các độ đo được định nghĩa như sau :
Thời gian sống của mạng được định nghĩa là thời gian mạng tồn tại. Tùy theo các ứng dụng cụ thể mà thời gian mạng tồn tại được tính theo các cách thức khác nhau. Tuy nhiên, trong luận văn này, tác giả định nghĩa thời gian sống của mạng là khoảng thời gian từ khi nút mạng bắt đầu hoạt động cho đến khi nút cuối cùng trong mạng ngừng hoạt động hay nói cách khác nó được biểu diễn là tỷ lệ nút mạng còn sống theo thời gian.
Mức năng lượng tiêu thụ được tính là tỷ lệ tổng năng lượng tiêu thụ của toàn mạng theo thời gian (Tỷ lệ giữa tổng năng lượng tiêu thụ của toàn mạng theo khoảng thời gian mô phỏng)
Lượng dữ liệu gửi về BS được định nghĩa là tỷ lệ lượng dữ liệu được gửi về BS theo thời gian.
4.3. Thực nghiệm mô phỏng
Môi trường sử dụng để đánh giá hiệu năng của các giao thức định tuyến là trên công cụ NS2, phiên bản ns-allinone-2.34, chạy trên hệ điều hành CentOS 5.
4.3.1. Chuẩn bị
Để tiến hành mô phỏng các giao thức đặt ra, tác giả sử dụng phần mở rộng NS cho giao thức LEACH được triển khai trong dự án MIT uAMPS (MIT’s project).
Hình 4.1: Kiến trúc của MIT
Để sử dụng được MIT, ngoài các lớp đối tượng và tài nguyên có sẵn trong NS2 mô phỏng cần thêm một vài file bao gồm: app.[cc,h], channel.cc. cmu-trace.[cc,h], mac.cc, packet.[cc,h], phy.[cc,h], và wireless-phya.[cc,h], mac-sensor.[cc,h] và mac- sensor-timers.[cc,h].
Các file để thiết lập năng lượng của các nút, các tác nhân và các chức năng của lớp liên kết ở trong thư mục mit/rca bao gồm: ns-ranode.tcl, rcagent.[cc,h], rca-ll[cc,h], resource.[cc,h],energy.[cc,h].
Các giao thức định tuyến có trong thư mục mit/uAMPS bao gồm: ns-leach.tcl, ns- leach-c.tcl và ns-stat-clus.tcl. Ngoài ra, tác giả bổ sung thêm file pegasis.tcl để dùng
Wireless.tcl
Leach.tcl, Leach-c.tcl,
Stat-Clus.tcl và Pegasis.tcl Ns-leach.tcl
uAMPS.tcl Ns-ranode.tcl Ns-resource-manager.tcl Ns-energy-resource.tcl Ns-neighbor-resource.tcl stats.tcl extras.tcl Ns-bsapp.tcl
cho mô phỏng giao thức PEGASIS. Các file ns-bsapp.tcl, extras.tcl và stats.tcl bao gồm các chức năng cần thiết để chạy các giao thức định tuyến. Các file bsagent.[cc,h] chứa các chức năng của BS.
4.3.2. Thiết lập giá trị cho các thông số mô phỏng
Để đánh giá hiệu suất của các giao thức định tuyến, tác giả sử dụng topo mạng 100 nút sinh ra ngẫu nhiên được định nghĩa sẵn trong module giao thức (mit/uAMPS/sims/100nodes_random.txt).
Hình 4.2 : Kiến trúc mạng 100 nút ngẫu nhiên
Ngoài ra, một số thông số khác được giữ cố định khi thực thi tất cả các giao thức nhằm có sự công bằng trong đầu vào cụ thể như bảng số liệu dưới đây :
Bảng 4.1 : Các thông số mô phỏng
Các giao thức tham gia mô phỏng Leach, Leach-C, Pegasis, Stat-Cluster
Phạm vi 1000 x 1000 (m x m)
Số nút 100
Năng lượng ban đầu của mỗi nút 2 J
Năng lượng tiêu hao khi truyền 50 nJ/byte Năng lượng tiêu hao khi nhận 6 nJ/byte Năng lượng tiêu hao khi 1 nút ngủ 0 J
Ví trí các nút Ngẫu nhiên
Vị trí đặt BS (Sink) (50,175) Kích thước của mỗi gói tin 500 bytes
4.3.3. Chạy mô phỏng
Trước khi chạy được mô phỏng thì các biến môi trường phải được thiết lập RCA_LIBRARY=mit/rca và uAMPS_LIBRARY=mit/uAMPS. Mỗi một giao thức định tuyến được chạy bằng cách thiết lập lựa chọn rp là leach, leach-c, pegasis hay stat-clus. Sau đó, gọi câu lệnh để thực hiện mô phỏng là :
[root@localhost ns-2.34]# ./ns tcl/ex/wireless.tcl –sc nodescen –x 100 –y 100 –init_energy 2 –dirname leach_dir –topo leach_topo –bs_x 50 –bs_y 175 – stop 1600 –nn 101 –num_clusters 5 –eq_energy 0 – filename leach_file –rp leach
Trong đó :
wireless.tcl : file Script tạo ra môi trường mô phỏng Wireless - init_energy : năng lượng khởi tạo ban đầu (đơn vị là J) - dirname : tên thư mục chứa các Trace File
- topo : tên topo khởi tạo lúc đầu - bs_x , bs_y : tọa độ của BS - stop : thời gian mô phỏng
- nn: số node mạng (bao gồm cả BS) - num_cluster : số cụm dự tính sẽ chia
- eq_energy : 0 (khởi tạo năng lượng không bằng nhau), 1 ( khởi tạo năng lượng bằng nhau)
- filename : tên tracefile sẽ xuất hiện trong thư mục
- rp (routing protocol) : giao thức mô phỏng là leach, leach-c, stat-clus Ngoài ra, mô phỏng có thể thực hiện bằng cách thiết lập các thông số trong file leach_test (ns.2.34/leach_test) như sau :
…
alg= leach # Lựa chọn giao thức tiến hành mô phỏng bằng cách gán tên giao
thức vào biến alg như leach, leach-c, stat-cluster hay pegasis …
topology_file= « mit/uAMPS/sims/100nodes_random.txt » # khai báo topo
mạng sử dụng …
eq_energy=1 # Lựa chọn giá trị năng lượng của các nút cảm biến ban đầu là
bằng nhau. Nếu giá trị này là 0, nghĩa là các nút cảm biến có năng lượng ban đầu không bằng nhau
init_energy=2 # Giá trị năng lượng ban đầu khởi tạo giành cho mỗi nút cảm
biến …
x=100 # kích thước của mạng, trục z được gán bằng 0
bs_x=50
bs_y=175 # Vị trí của trạm cơ sở
nn=101 # số lượng các nút trong mạng, tính cả trạm cơ sở
Ngoài ra để thiết lập mô hình sử dụng năng lượng, tác giả sử dụng mô hình năng lượng mặc định trong file condition.txt với các giá trị được thiết lập :
… [Parameters] RXThresh=6e-9 …. Excvr=50e-9 … Psleep=0 …
Cuối cùng thực thi câu lệnh sau để có được kết quả đầu ra cho các giao thức trong mỗi lần mô phỏng :
[root@localhost ns-2.34]#sh [leach_test, leach-c_test, pegasis_test, stat- clus_test]
4.3.4. Các file dữ liệu đầu ra
Khi thực thi kịch bản xây dựng trên, kết quả thu về trong mỗi lần mô phỏng của mỗi giao thức sẽ có được cơ bản 4 file dữ liệu đầu ra tương ứng là alive, energy và data và out. Trong đó dữ liệu lưu trữ trong các file này hàm chứa thông tin cụ thể như sau:
Các file [Leach.alive, leach-c.alive, pegasis.alive, stac-clus.alive]: ghi lại tình trạng của các nút. Dữ liệu trong file alive gồm 3 cột có định dạng:
[time] [node] [ 0: nút chết, 1: nút còn sống]
Hình 4.3: Cấu trúc file leach.alive
Các file [leach.energy, leach-c.energy, pegasis.energy, stat-clus.energy]: ghi lại tổng số năng lượng tiêu tốn theo thời gian. Dữ liệu trong file energy gồm 3 cột có định dạng:
Hình 4.4: Cấu trúc file leach.energy
Các file [Leach.data, leach-c.data, pegasis.data, stac-clus.data]: ghi lại tổng số dữ liệu nhận được của các nút tại trạm BS theo thời gian. Cấu trúc dữ liệu trong file data gồm 3 cột có định dạng:
[time] [node] [tổng dữ liệu gửi từ node tới CH và BS]
Hình 4.5: Cấu trúc file leach.data
Các file [Leach.out, leach-c.out, pegasis.out, stac-clus.out]: ghi lại tất cả các sự kiện xảy ra trong mạng theo thời gian.
Từ các thông tin thu được này, tác giả sử dụng để chiết suất dữ liệu và vẽ đồ thị để đánh giá.
4.4. Kết quả mô phỏng và đánh giá 4.4.1Thời gian sống của mạng 4.4.1Thời gian sống của mạng
Hình 4.7: Thời gian sống của mạng
Theo kết quả thể hiện trên đồ thị hình 4.7 cho thấy, thời gian sống của mạng sử dụng giao thức PEGASIS kéo dài hơn rất nhiều so với các giao thức còn lại.
Cụ thể, mạng sử dụng giao thức Static-Cluster, các nút mạng nhanh chóng bị chết ngay trong thời gian đầu của mô phỏng (chỉ trong khoảng 50s) theo quan sát trên biểu đồ hình 4.8.
Kết quả này là do, sự hình thành nhóm trong Static-Cluster và vai trò của nút đứng đầu nhóm là cố định nên ngay khi nút đứng đầu nhóm tiêu hao hết năng lượng thì tất cả các nút khác trong cùng nhóm cũng sẽ mất kết nối với sink hay trạm cơ sở. Thời gian sống của mạng được cải thiện đáng kể hơn khi sử dụng giao thức LEACH và LEACH-C (gấp khoảng 10 lần so với Static-Cluster). Sự cải thiện này là do LEACH, LEACH-C có sự cân bằng năng lượng giữa các nút trong mạng do việc luân chuyển vai trò của nút đứng đầu nhóm. Tuy nhiên, nhìn từ biểu đồ thấy rằng LEACH- C có sự ổn định hơn so với LEACH, nguyên nhân này là do, LEACH-C chỉ lựa chọn nút mạng có năng lượng lớn hơn mức năng lượng trung bình của mạng để làm nút đứng đầu nhóm, do đó giảm chênh lệch năng lượng giữa nút đứng đầu và các nút thành viên trong nhóm. PEGASIS thể hiện ưu thế vượt trội khi duy trì thời gian sống của mạng lâu hơn hẳn các mạng sử dụng giao thức khác (gấp 40 lần so với Static- Cluster và gần 4 lần so với LEACH và LEACH-C). Hơn nữa, các nút mạng khi sử dụng giao thức PEGASIS chỉ bắt đầu hết năng lượng và mất kết nối vào khoảng giây thứ 500 của mô phỏng và kéo dài tuổi thọ của mạng lên tới 1500s. PEGASIS giảm thiểu năng lượng tiêu thụ của các nút mạng do giảm khoảng cách truyền giữa các nút liền kề nhau trong cùng chuỗi.
4.4.2Mức năng lƣợng tiêu thụ theo thời gian
Biểu đồ hình 4.9 chỉ ra tổng năng lượng tiêu thụ theo thời gian. Qua biểu đồ này thấy rằng, cả 3 giao thức LEACH, LEACH-C và PEGASIS đều sử dụng được tối đa năng lượng có sẵn của mạng (2J/node x 100 nút=200J). Riêng Static-Cluster thì chỉ sử dụng được khoảng 15J năng lượng (tức là khoảng 7% năng lượng của cả mạng) như biểu đồ hình 4.10. Sự lãng phí này là do Static-Cluster không thể tận dụng năng lượng còn lại trong các nút không phải là nút đứng đầu nhóm. Bởi vì các nút đứng đầu nhóm tiêu hao năng lượng và chết nhanh chóng làm kết thúc vòng đời sớm của tất cả các nút thuộc vào các nhóm đó. Mặt khác, nhìn vào biểu đồ này cũng cho thấy sự tương đồng về năng lượng tiêu thụ của toàn mạng với tỷ lệ nút còn sống theo thời gian ở biểu đồ hình 4.6 trên.
Hình 4.10 Năng lượng tiêu thụ trong 50s đầu
4.4.3Tỷ lệ dữ liệu nhận đƣợc ở BS
Biểu đồ hình 4.11 cho thấy, PEGASIS là giao thức gửi nhiều dữ liệu hơn về BS trong tổng thời gian mô phỏng. Tuy nhiên, xét trong cùng thời gian hoạt động với LEACH-C (khoảng 400s đầu của mô phỏng) thì lượng dữ liệu nhận được tại BS khi sử dụng PEGASIS sẽ ít hơn so với lượng dữ liệu nhận được khi sử dụng LEACH-C. Điều này này cho thấy trễ khi sử dụng PEGASIS lớn hơn so với LEACH-C. Kết quả này là hợp lý do số chặng trung gian khi truyền dữ liệu trong LEACH-C tới nút nhóm trưởng thường là 1 trong khi với PEGASIS để gửi dữ liệu được tới nhóm trưởng thì thường phải thông qua nhiều chặng trung gian khác. Mặt khác, dữ liệu nhận được tại BS khi sử dụng LEACH-C cũng lớn hơn so với LEACH. Nguyên nhân là do trong quá trình hình thành nhóm ở LEACH-C, BS đã biết trước được vị trí và mức năng lượng của các nút khác. Vì vậy, LEACH-C có thể tạo ra các nhóm tốt hơn LEACH. Trên biểu đồ cũng cho thấy, lượng dữ liệu nhận được ở BS khi sử dụng Static-Cluster tương đương với LEACH trong cùng thời gian mô phỏng. Tuy nhiên, do thời gian hoạt động của mạng khi sử dụng giao thức Static-Cluster hạn chế nên lượng dữ liệu nhận được tại BS cũng ít hơn rất nhiều.
4.4.4Kết luận
Trong phần thực nghiệm mô phỏng đánh giá hiệu suất của giao thức định tuyến trong mạng cảm biến không dây. Tác giả luận văn tập trung vào các giao thức thuộc nhóm các giao thức phân bậc. Đây là nhóm các giao thức ra đời từ rất sớm (LEACH năm 2002) tuy nhiên cho đến nay chúng vẫn là đề tài khá thu hút đối với nhiều nhà nghiên cứu về mạng cảm biến.
Các kết quả mô phỏng được chỉ ra trong luận văn này cho thấy nhiều ưu điểm và lợi thế hơn từ việc hình thành nhóm động (LEACH, LEACH-C, PEGASIS) so với giao thức định tuyến phân bậc hình thành nhóm tĩnh (Static-Cluster) trong tất cả các độ đo như : thời gian sống của mạng, hiệu quả sử dụng năng lượng và lượng dữ liệu BS nhận được theo thời gian. Sự chênh lệnh giữa các độ đo này là khá lớn, Static- Cluster chỉ duy trì thời gian sống của mạng trong khoảng 50s trong khi PEGASIS có thể kéo dài thời gian sống của mạng lên tới gần 1500s. Mặt khác, các giao thức phân bậc hình thành nhóm động là những giao thức đạt hiệu quả sử dụng năng lượng cao (sử dụng gần 100% năng lượng của toàn mạng) trong khi Static-Cluster chỉ sử dụng được 15J tức là khoảng 7 % năng lượng của mạng. Lượng dữ liệu mà Static-Cluster gửi về BS theo thời gian là tương đương với LEACH nhưng tổng dữ liệu mà Static- Cluster gửi về BS lại rất nhỏ do thời gian tồn tại của mạng là quá ngắn.
PEGASIS đã khắc phục được nhược điểm của LEACH bằng cách loại bỏ được chi phí trong việc hình thành nhó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. Các nút mạng 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 hao trong mạng. Mặc dù có những cải tiến đang kể, nhưng một vấn đề hạn chế trong PEGASIS là trễ truyền. Nút đứng đầu chuỗi phải đợi nhận được dữ liệu hợp nhất của các nút sau đó mới truyền đến BS.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN KẾT LUẬN
Mạng WSN ra đời là sự kết hợp thành công của một loạt những thành tựu khoa học về công nghệ mạng máy tính. Hiện nay mạng WSN được ứng dụng trong nhiều lĩnh vực của đời sống. Tuy nhiên, năng lượng vẫn là vấn đề then chốt trong việc triển khai, xây dựng và áp dụng các mạng cảm biến vào mỗi ứng dụng cụ thể. Vấn đề này đã và đang nhận được sự quan tâm không chỉ của các nhà khoa học mà còn thu hút nhiều nhà kinh tế, nhiều ngành công nghiệp trên thế giới.
Cùng với mục tiêu đề ra, đề tài luận văn “Đánh giá hiệu suất của giao thức định
tuyến trong mạng cảm biến không dây” đã được hoàn thành với các nội dung chính đó