Tìm hiểu code của LEACH:
* Thư mục chứa tệp để truyền thông số và chạy giao thức leach là: /home/chinh/ns - allinone-2.34/ns-2.34, ta chỉ quan tâm tệp leach_test trong thư mục này, nó có nội dung chỉ rõ trong Phụ lục 2.
* Thư mục chứa các tệp thực hiện thuật toán LEACH là: /home/chinh/ns-allinone- 2.34/ns-2.34/mit/uAMPS gồm các tệp đáng chú ý sau:
- Tệp ns-leach.tcl chứa các mã lệnh của các thủ tục chính thực hiện giao thức LEACH. Tương tự, các tệp ns-leach-c.tcl, ns-stat-cluster.tcl, ns-pegasis.tcl chứa mã lệnh thực hiện giao thức LEACH-C và STAT-CLUSTER, PEGASIS.
- Tệp stats.tcl là tệp thực hiện thống kê theo chu kỳ 10s, trong đó tôiđã sửa lại mã của dòng 86 thành: puts "\nAt $thetime $total_energy $total_data $total_alive\n" để dễ phân tích.
- Các tệp chứa chức năng của BS là bsagent.[cc, h]
* Thư mục /home/chinh/ns-allinone-2.34/ns-2.34/mit/uAMPS/sims chứa các tệp: - Tệp uamps.tcl chứa một số mã lệnh khai báo nguồn như kiểm tra tổng năng lượng sau 10s (thể hiện ở dòng lệnh 74: set opt(check_energy) 10 và dòng 276: $ns_ at $opt(check_energy) "sens_gather_stats"); cứ 20 s thì xoay vòng trưởng cụm một lần (head clusters) (thể hiệnở dòng 73 trong tệp này).
- Và các tệp genscen, nodescen chứa thực hiện các tính toán, thống kê cần thiết khi chạy giao thức.
* Thư mục chứa các tệp kết quả là /home/chinh/ns-allinone-2.34/ns- 2.34/mit/leach_sims với các tệp cần chú ý:
- Tệp Leach.alive ghi lại tình trạng các nút (tình trạng: 1 thể hiện nút còn sống) - Tệp leach.energy ghi lại tổng số năng lượng tiêu tốn theo thời gian
- Tệp leach.data ghi lại tổng số tin dữ liệu nhận được của mỗi nút tại trạm BS theo thời gian.
- Tệp startup.energy ghi lại tiến trình tiêu tốn năng lượng theo thời gian (lúc nào thì nút phải tiêu tốn và tiêu tốn bao nhiêu năng lượng)
- Tệp leach.err báo chạy leach thành công hay không
- Tệp leach.out là tệp chứa kết quả chạy kịch bản mô phỏng
* Thư mục /home/chinh/ns-allinone-2.34/ns-2.34/mit/rca chứa các tệp thiết lập năng lượng và các chức năng liên kết gồm: ns-ranode.tcl, energy.[cc, h], rcagent.[cc, h], rca- ll.[cc, h], resource.[cc, h]
* Thư mục /home/chinh/ns-allinone-2.34/ns-2.34/mit/rca/resources chứa các tệp quản lý năng lượng gồm: ns-energy-resource.tcl, ns-neighbor-resource.tcl, ns-resource.tcl, ns- resource-manager.tcl
*Ngoài ra một số tệp hỗ trợ có sẵn trong NS-2.34 như: packet.[cc, h], cmu-trace.[cc, h], channel.cc, mac.cc, phy.[cc, h], mac-sensor-timer.[cc,h], wireless-phy.[cc, h], mac- sensor.[cc, h], app.[cc, h]