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]