GIỚI THIỆU VỀ MẠNG CẢM BIẾN KHÔNG DÂY
Giới thiệu
Mạng cảm biến không dây (WSN - Wireless Sensor Network) là mạng có hai chức năng: mạng và cạm nhận thông tin từ môi trường
Mạng cảm biến không dây (WSN) đặc trưng bởi các nút kết nối qua sóng vô tuyến, thường là những thiết bị nhỏ gọn, đơn giản và có chi phí thấp Loại mạng này có thể bao gồm số lượng lớn các nút được phân bố ngẫu nhiên trên một diện tích rộng, sử dụng nguồn năng lượng hạn chế và có thời gian hoạt động lâu dài từ vài tháng đến vài năm WSN có khả năng hoạt động trong các môi trường khắc nghiệt như ô nhiễm, chất độc và nhiệt độ cao.
Các nút mạng có khả năng cảm nhận và quan sát các yếu tố môi trường như nhiệt độ, độ ẩm và ánh sáng Chúng cũng có thể theo dõi và định vị các mục tiêu cố định hoặc di động Các nút này giao tiếp với nhau và truyền dữ liệu về trung tâm (base station) thông qua kỹ thuật đa chặng (multi-hop).
Cấu trúc mạng cảm biến không dây
Cấu trúc mạng cảm biến không dây cần được thiết kế để tối ưu hóa việc sử dụng tài nguyên hạn chế, nhằm kéo dài tuổi thọ của mạng Do đó, việc thiết kế cấu trúc và kiến trúc mạng cần chú trọng đến các yếu tố quan trọng.
Giao tiếp không dây đa chặng là một kỹ thuật quan trọng trong các mạng cảm biến không dây, giúp khắc phục hạn chế của giao tiếp trực tiếp giữa hai nút do khoảng cách và vật cản Khi nút phát và nút thu cách xa nhau, cần có công suất phát lớn, dẫn đến việc sử dụng các nút trung gian để chuyển tiếp tín hiệu, từ đó giảm công suất tổng thể và cải thiện hiệu suất mạng.
Sử dụng hiệu quả năng lượng là một kỹ thuật quan trọng trong mạng cảm biến không dây, giúp kéo dài thời gian sống của toàn mạng.
Mạng cảm biến không dây yêu cầu tự động cấu hình các thông số để hoạt động hiệu quả Một ví dụ điển hình là khả năng các nút cảm biến xác định vị trí địa lý của chúng một cách tự động, giúp tối ưu hóa việc thu thập và truyền dữ liệu.
Trong nhiều ứng dụng, một nút cảm biến đơn lẻ không thể thu thập đủ dữ liệu mà cần sự cộng tác của nhiều nút để đạt được mục tiêu này Việc từng nút gửi dữ liệu trực tiếp đến trạm gốc sẽ tiêu tốn nhiều băng thông và năng lượng Do đó, việc kết hợp dữ liệu từ nhiều nút trong một khu vực trước khi gửi đến trạm gốc là giải pháp hiệu quả, giúp tiết kiệm băng thông và năng lượng, ví dụ như trong việc xác định nhiệt độ trung bình hoặc cao nhất của một khu vực.
Do vậy, cấu trúc mạng được thiết kế sẽ phải thỏa mãn:
- Kết hợp vấn đề năng lượng và khả năng định tuyến
- Tích hợp dữ liệu và giao thức mạng
- Truyền năng lượng hiệu quả qua các phương tiện không dây
- Chia sẻ nhiệm vụ giữa các nút lân cận
Các nút cảm biến được phân bố trong một vùng cảm biến, mỗi nút có khả năng thu thập dữ liệu và định tuyến về các trạm gốc thông qua một cấu trúc đa điểm Các trạm gốc này có khả năng giao tiếp với các nút quản lý nhiệm vụ qua mạng Internet hoặc vệ tinh.
Hình 1.1 Cấu trúc mạng cảm biến không dây
Có thể phân chia cấu trúc của mạng cảm biến thành 2 loại: cấu trúc phẳng và cấu trúc phân cấp
Trong cấu trúc phẳng, tất cả các nút đều đồng nhất về hình dạng và chức năng, giao tiếp với trạm gốc qua đa chặng sử dụng các nút ngang hàng làm bộ tiếp sóng Các nút gần trạm gốc hơn đóng vai trò quan trọng trong việc tiếp sóng cho nhiều nguồn dữ liệu Khi tất cả các nguồn sử dụng cùng một tần số để truyền dữ liệu, việc chia sẻ thời gian trở nên khả thi, nhưng phương pháp này chỉ hiệu quả khi có nguồn chia sẻ đơn lẻ như thời gian hoặc tần số.
Hình 1.2 Cấu trúc phẳng 1.2.2 Cấu trúc phân cấp
Trong cấu trúc phân cấp, mạng được chia thành các cụm, mỗi cụm có một nút chủ Các nút trong cụm có nhiệm vụ thu thập dữ liệu và gửi thông tin đến nút chủ cụm, có thể thông qua một hoặc nhiều chặng tùy thuộc vào kích thước của cụm.
Hình 1.3 Cấu trúc phân cấp
Trong cấu trúc phân cấp, các nút được tổ chức thành một hệ thống cấp bậc, trong đó mỗi nút ở từng mức thực hiện các nhiệm vụ cụ thể Chức năng cảm nhận, tính toán và phân phối dữ liệu không đồng đều giữa các nút, với cấp thấp nhất đảm nhận nhiệm vụ cảm nhận, cấp giữa thực hiện tính toán, và cấp trên cùng thực hiện phân phối dữ liệu.
Hình 1.4 Cấu trúc mạng phân cấp chức năng theo lớp
Các nhiệm vụ xác định có thể được phân chia không đồng đều giữa các lớp, với mỗi lớp thực hiện một nhiệm vụ cụ thể trong quá trình tính toán Trong trường hợp này, các nút ở cấp thấp nhất hoạt động như bộ lọc thông dải đơn giản để loại bỏ nhiễu từ dữ liệu, trong khi các nút ở cấp cao hơn ngừng lọc và thực hiện các nhiệm vụ khác như tính toán và phân phối dữ liệu.
Mạng cảm biến xây dựng theo cấu trúc phân cấp hoạt động hiệu quả hơn cấu trúc phẳng, do các lý do sau:
Cấu trúc phân cấp giúp giảm chi phí mạng cảm biến bằng cách tối ưu hóa vị trí của các tài nguyên để chúng hoạt động hiệu quả nhất Việc triển khai phần cứng thống nhất cho phép mỗi nút chỉ cần một lượng tài nguyên tối thiểu để thực hiện tất cả nhiệm vụ Số lượng nút cần thiết phụ thuộc vào vùng phủ sóng, do đó, chi phí toàn mạng sẽ không cao Nếu nhiều nút chi phí thấp được chỉ định cho nhiệm vụ cảm nhận, trong khi một số nút chi phí cao hơn đảm nhận phân tích dữ liệu, định vị và đồng bộ thời gian, chi phí mạng sẽ được giảm thiểu đáng kể.
Mạng cấu trúc phân cấp có tuổi thọ cao hơn mạng phẳng nhờ vào việc phân chia chức năng giữa các phần cứng được thiết kế riêng cho từng nhiệm vụ Khi cần thực hiện tính toán nhanh, bộ xử lý hiệu quả sẽ phụ thuộc vào thời gian yêu cầu, nhưng đối với các nhiệm vụ cảm nhận dài hạn, các nút tiêu thụ ít năng lượng sẽ hoạt động hiệu quả hơn với yêu cầu xử lý tối thiểu Chính vì vậy, cấu trúc phân cấp giúp tăng cường tuổi thọ của mạng.
1.3 Các đặc trƣng của mạng cảm biến không dây
Các ứng dụng trong mạng cảm biến không dây yêu cầu các thành phần tiêu thụ năng lượng thấp hơn nhiều so với các công nghệ không dây hiện tại như Bluetooth Ví dụ, các cảm biến trong công nghiệp và y tế sử dụng pin nhỏ có thể hoạt động từ vài tháng đến vài năm Đối với các ứng dụng theo dõi môi trường với số lượng lớn cảm biến trải rộng, việc thay pin thường xuyên là không khả thi Do đó, trong mạng cảm biến không dây, việc quản lý năng lượng hiệu quả kết hợp với các thuật toán định tuyến tối ưu là rất cần thiết.
Khi thiết kế ứng dụng không dây, giá thành là yếu tố quan trọng cần xem xét Để giảm chi phí, cần tối ưu cấu hình mạng và giao thức truyền thông bằng cách tránh sử dụng các thành phần đắt tiền và giảm thiểu độ phức tạp Trong mạng cảm biến, số lượng nút mạng lớn giúp hạ giá thành toàn bộ hệ thống, với chi phí sản xuất mỗi nút hiện nay khoảng 5-10 USD.
Chi phí quản trị và bảo trì hệ thống là yếu tố quan trọng ảnh hưởng đến giá thành, trong đó mạng cảm biến không dây nổi bật với khả năng tự cấu hình và tự bảo trì Tự cấu hình cho phép mạng tự động dò tìm và tổ chức các nút lân cận thành một cấu trúc xác định, trong khi tự bảo trì giúp phát hiện và sửa lỗi tự động mà không cần can thiệp của con người Nhờ những tính năng ưu việt này, mạng cảm biến không dây ngày càng khẳng định được lợi thế của mình.
Những khó khăn trong việc phát triển mạng không dây
Mạng cảm biến không dây mang lại nhiều lợi ích và ứng dụng thiết thực, nhưng trong quá trình triển khai thực tế, nó cũng đối mặt với một số hạn chế và thách thức kỹ thuật Hiểu rõ những khó khăn này sẽ giúp chúng ta cải tiến và tối ưu hóa hiệu suất của mạng cảm biến không dây.
Trong mạng cảm biến không dây, các thiết bị thường sử dụng nguồn năng lượng như pin Tuy nhiên, khi số lượng nút mạng tăng cao và yêu cầu tính toán cùng khoảng cách truyền lớn, mức tiêu thụ năng lượng trở nên rất lớn Do đó, cần tìm kiếm các giải pháp tối ưu hóa việc xử lý và truyền dữ liệu để kéo dài thời gian hoạt động của mạng với nguồn năng lượng ban đầu của các nút.
1.4.2 Giới hạn về giải thông
Hiện nay, tốc độ truyền thông vô tuyến chỉ đạt khoảng 10-100 Kbits/s, điều này gây ra sự hạn chế trong việc truyền tải thông tin giữa các nút Sự giới hạn về băng thông này ảnh hưởng trực tiếp đến hiệu quả của các hệ thống truyền thông.
1.4.3 Giới hạn về phần cứng
Mạng cảm biến không dây yêu cầu kích thước nhỏ gọn cho các nút, nhằm đáp ứng nhu cầu triển khai số lượng lớn nút trong không gian hạn chế Tuy nhiên, điều này cũng dẫn đến hạn chế về khả năng tính toán và dung lượng lưu trữ của từng nút.
1.4.4 Ảnh hưởng của nhiễu bên ngoài
Trong mạng cảm biến không dây, việc sử dụng đường truyền vô tuyến làm cho hệ thống dễ bị ảnh hưởng bởi các can nhiễu bên ngoài, dẫn đến khả năng mất mát hoặc sai lệch thông tin khi dữ liệu được truyền từ nút cảm biến về trạm gốc.
ĐỊNH TUYẾN TRONG MẠNG CẢM BIẾN KHÔNG DÂY
Các vấn đề cần lưu ý đối với giao thức định tuyến
2.1.1 Đặc tính thay đổi thời gian và trật tự sắp xếp của mạng
Các nút cảm biến hoạt động với giới hạn về khả năng tính toán, lưu trữ và truyền dẫn, đồng thời phải tuân thủ các ràng buộc về năng lượng nghiêm ngặt Mật độ của các nút cảm biến trong mạng có thể thay đổi từ thưa thớt đến rất dày, tùy thuộc vào ứng dụng cụ thể Trong nhiều trường hợp, số lượng nút cảm biến có thể lên đến hàng trăm hoặc hàng ngàn, được triển khai để bao phủ một khu vực rộng lớn Đặc tính của các cảm biến này là tính thích nghi cao, và yêu cầu tự tổ chức cùng với việc bảo toàn năng lượng buộc các nút phải liên tục điều chỉnh để phù hợp với hoạt động hiện tại.
2.1.2 Ràng buộc về tài nguyên
Các nút cảm biến được thiết kế đơn giản để triển khai trên diện rộng nhằm giảm chi phí mạng Năng lượng là yếu tố quan trọng trong mạng cảm biến không dây, với mục tiêu kéo dài thời gian sống của các nút trong điều kiện hạn chế năng lượng dự trữ Việc truyền gói đa chặng (multihop) là nguyên nhân chính gây tiêu thụ năng lượng trong mạng Giảm tiêu thụ năng lượng có thể thực hiện thông qua việc tự động điều khiển chu kỳ năng lượng của mạng cảm biến, tuy nhiên, quản lý năng lượng vẫn là một thách thức chiến lược trong nhiều ứng dụng quan trọng.
2.1.3 Mô hình dữ liệu trong mạng cảm biến
Mô hình dữ liệu mô tả luồng thông tin giữa các nút cảm biến và các trạm gốc
Mô hình dữ liệu này phụ thuộc vào bản chất của ứng dụng và các yêu cầu về dữ liệu Nhiều mô hình dữ liệu đã được đề xuất để đáp ứng nhu cầu tương tác và tập hợp dữ liệu của các ứng dụng khác nhau.
Mạng cảm biến có nhiều ứng dụng, trong đó mô hình thu thập dữ liệu dựa trên việc lấy mẫu theo chu kỳ hoặc sự kiện trong môi trường quan sát Dữ liệu có thể được thu thập, lưu trữ hoặc xử lý tại một nút trước khi chuyển tiếp đến trạm gốc Một mô hình khác là tương tác hai chiều giữa các nút cảm biến và trạm gốc.
Trong mạng cảm biến không dây, việc truyền các truy vấn và dữ liệu giữa trạm gốc và các vị trí quan sát là rất quan trọng Một phương pháp phổ biến là cho phép mỗi nút cảm biến gửi dữ liệu trực tiếp đến trạm gốc Tuy nhiên, phương pháp này dựa trên kỹ thuật đơn chặng có chi phí cao và khiến các nút xa trạm gốc nhanh chóng tiêu hao năng lượng, từ đó giảm thời gian sống của mạng.
Để giảm thiểu lỗi trong việc truyền dữ liệu giữa các nút cảm biến và trạm gốc, phương pháp truyền gói đa chặng qua phạm vi truyền ngắn được áp dụng Phương pháp này không chỉ tiết kiệm năng lượng mà còn giảm thiểu sự giao thoa giữa các nút khi truy cập kênh, đặc biệt trong mạng cảm biến không dây có mật độ cao Dữ liệu thu thập sẽ được truyền đến các trạm gốc qua nhiều đường dẫn đa chặng để đáp ứng các truy vấn từ trạm gốc hoặc các sự kiện đặc biệt trong môi trường.
Trong mạng cảm biến không dây, định tuyến đa chặng yêu cầu các nút trung gian chuyển tiếp dữ liệu giữa nguồn và đích Việc xác định các nút tạo thành đường dẫn chuyển tiếp dữ liệu là nhiệm vụ quan trọng trong thuật toán định tuyến Định tuyến trong mạng lớn là một thách thức, đòi hỏi các thuật toán phải đáp ứng nhiều yêu cầu thiết kế như chính xác, ổn định, tối ưu hóa và thích ứng với sự thay đổi của các thông số.
Mạng cảm biến có những đặc tính nội tại như ràng buộc về băng thông và năng lượng, điều này đã tạo ra thách thức cho các giao thức định tuyến Các giao thức này cần phải đáp ứng yêu cầu về lưu lượng trong khi vẫn tối ưu hóa thời gian sống của mạng.
Các giao thức định tuyến trong mạng cảm biến không dây
Các giao thức định tuyến trong mạng cảm biến không dây (WSN) có thể được phân loại theo nhiều tiêu chí khác nhau, bao gồm phân loại theo cấu trúc, phân loại theo hoạt động và phân loại theo phương thức mà nguồn tìm đến đích.
2.2.1 Các giao thức xét theo cấu trúc mạng
2.2.1.1 Giao thức định tuyến ngang hàng
Giao thức định tuyến ngang hàng (Flat Routing) là loại đầu tiên trong các giao thức định tuyến, nơi mỗi nút cảm biến có vai trò tương đương và phối hợp để thực hiện nhiệm vụ mạng Hai giao thức tiêu biểu là SPIN và directed diffusion, tập trung vào việc tiết kiệm năng lượng và tích hợp dữ liệu, đồng thời loại bỏ sự dư thừa thông tin.
SPIN (Sensor Protocol for Information via Negotiation) là một giao thức dựa trên ý tưởng đặt tên dữ liệu bằng ký hiệu mô tả ở mức độ cao, được gọi là thông tin về dữ liệu (meta-data) Trước khi truyền tải, thông tin này được trao đổi giữa các nút thông qua cơ chế thông báo dữ liệu, là đặc điểm nổi bật của SPIN Mỗi nút khi nhận dữ liệu mới sẽ thông báo cho các nút lân cận, và những nút quan tâm, chẳng hạn như các nút không có dữ liệu, có thể nhận dữ liệu bằng cách gửi yêu cầu.
Sự sắp xếp thông tin dữ liệu của SPIN giúp giải quyết vấn đề ngập thông tin, loại bỏ sự dư thừa và chồng chéo giữa các vùng cảm nhận, từ đó nâng cao hiệu quả năng lượng.
Có 3 bản tin được xác định trong SPIN dùng để trao đổi dữ liệu giữa các nút, đó là bản tin ADV cho phép các nút thông báo một meta-data cụ thể, bản tin REQ để yêu cầu các dữ liệu đặc biệt và bản tin DATA để mang thông tin thực Hình 2.1 tổng kết lại các quá trình của SPIN
Nút A bắt đầu quá trình quảng bá dữ liệu tới nút B, sau đó nút B gửi yêu cầu phản hồi tới nút A Khi nhận được dữ liệu từ nút A, nút B tiếp tục phát bản tin quảng bá đến các nút lân cận, và các nút này sẽ gửi yêu cầu trở lại cho nút B.
Hình 2.1 Cơ chế của SPIN Giao thức truyền tin trực tiếp
Giao thức truyền tin trực tiếp (Directed Diffusion) áp dụng lược đồ tập trung dữ liệu, trong đó các nút đều nắm rõ về ứng dụng Dữ liệu phát ra từ nút cảm biến được gán tên thông qua các cặp giá trị thuộc tính và trải qua quá trình xử lý trong mạng như tích hợp dữ liệu (aggregation) Nhờ vào việc loại bỏ sự dư thừa dữ liệu qua xử lý nội mạng, giao thức này giảm thiểu số lần truyền, từ đó tiết kiệm năng lượng và kéo dài tuổi thọ của mạng Hình 2.2 minh họa các quy trình diễn ra trong mạng khi áp dụng giao thức Directed Diffusion.
Trạm gốc khởi tạo yêu cầu với các cặp giá trị như tên vật thể, vị trí địa lý và khoảng thời gian, sau đó phát thông tin qua các nút trung gian đến nguồn Mỗi nút nhận thông tin sẽ lưu lại để so sánh với dữ liệu đã có, bao gồm cả các trường gradient Gradient thể hiện đường đi đến nút lân cận từ nơi nhận thông tin, được mô tả bởi tốc độ dữ liệu, khoảng thời gian và thời hạn nhận thông tin yêu cầu Nhờ vào thông tin yêu cầu và gradient, các đường truyền giữa trạm gốc và nguồn được thiết lập Trạm gốc gửi lại các bản tin qua những đường đã chọn với khoảng thời gian giữa hai sự kiện ngắn hơn, từ đó tăng cường khả năng gửi dữ liệu của nút nguồn trên đường đó.
Hình 2.2 Các pha trong Directed Diffusion Giao thức GBR
Giao thức GBR (Gradient based Routing) là một phiên bản cải tiến của Directed Diffusion, cho phép lưu trữ số chặng khi dữ liệu được phân tán qua mạng Mỗi nút trong mạng có khả năng xác định số chặng tối thiểu đến Trạm gốc, từ đó tính toán khoảng cách so với các nút lân cận Gradient trên các kết nối được sử dụng để xác định gói tin nào sẽ được chuyển tiếp với gradient lớn nhất Ngoài ra, giao thức này còn hỗ trợ các kỹ thuật như tích hợp dữ liệu và phân tán lưu lượng, giúp tối ưu hóa thông lượng trên toàn mạng.
2.2.1.2 Các giao thức phân cấp
Trong kiến trúc phân cấp, các nút có vai trò khác nhau, với nút năng lượng cao xử lý và gửi thông tin, trong khi nút năng lượng thấp thực hiện cảm nhận và thu thập dữ liệu Điều này dẫn đến việc tạo ra các cụm và phân công nhiệm vụ cho các nút chủ cụm Mục tiêu của định tuyến phân cấp là duy trì hiệu quả tiêu thụ năng lượng của các nút cảm biến thông qua giao tiếp đa chặng và hợp nhất dữ liệu, từ đó giảm số lượng bản tin truyền đến trạm gốc Sự hình thành các cụm dựa vào năng lượng dự trữ của nút và vị trí của nó so với các nút chủ trong cụm.
Phần này sẽ trình bày một số giao thức tiêu biểu trong loại giao thức định tuyến phân cấp
LEACH (Low-energy adaptive clustering hierarchy) là một trong những phương pháp định tuyến phân cấp đầu tiên cho mạng cảm biến, nhằm hình thành các cụm nút cảm biến dựa trên cường độ tín hiệu nhận Các nút chủ trong cụm được sử dụng làm router kết nối đến các trạm gốc, giúp tiết kiệm năng lượng bằng cách chỉ cho phép các nút chủ thực hiện quá trình truyền, thay vì tất cả các nút cảm biến Số lượng nút chủ tối ưu trong mỗi cụm thường chiếm khoảng 5% tổng số lượng nút.
Trong giao thức LEACH, việc lựa chọn ngẫu nhiên các nút làm nút chủ cụm và luân chuyển vai trò này giữa các nút trong cụm giúp phân bổ đều năng lượng tiêu hao khi giao tiếp với trạm gốc, từ đó kéo dài tuổi thọ của mạng cảm biến Quá trình hoạt động của LEACH được chia thành hai pha: pha thiết lập và pha ổn định, trong đó pha ổn định có thời gian dài hơn để giảm thiểu chi phí điều khiển.
Các cụm được hình thành và các nút chủ được lựa chọn dựa trên quy trình xác định Mỗi nút cảm biến sẽ chọn một số ngẫu nhiên trong khoảng từ 0 đến 1 Nếu số này nhỏ hơn ngưỡng T(n), nút cảm biến đó sẽ trở thành nút chủ Giá trị T(n) được tính toán để xác định ngưỡng này.
T còn lại Trong đó p: tỉ lệ phần trăm nút chủ r: chu kì hiện tại
G: tập hợp các nút không được lựa chọn làm nút chủ trong 1/P chu kì cuối
Mỗi nút chủ cụm được chọn sẽ phát tín hiệu quảng bá đến các nút còn lại trong mạng, thông báo rằng chúng là nút chủ cụm mới Các nút không phải chủ sẽ dựa vào độ mạnh tín hiệu của bản tin quảng bá để quyết định thuộc về cụm nào Sau khi nhận được thông báo từ các nút này, nút chủ cụm sẽ xác định thời gian gửi dữ liệu cho các nút trong cụm dựa trên phương pháp TDMA.
Các nút bắt đầu thu thập và gửi dữ liệu đến các nút chủ cụm, nơi dữ liệu được tích hợp trước khi chuyển tiếp đến Trạm gốc Sau một thời gian ổn định, mạng sẽ quay lại pha thiết lập để chọn nút chủ cụm mới.
MÔ PHỎNG MỘT SỐ GIAO THỨC ĐỊNH TUYẾN VÀ ĐÁNH GIÁ KẾT QUẢ
Phần mềm mô phỏng mạng NS-2
NS-2 là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ, được phát triển tại UC Berkeley và sử dụng ngôn ngữ C++ cùng OTcl Bốn lợi ích lớn nhất của NS-2 bao gồm khả năng mô phỏng chính xác, hỗ trợ nhiều giao thức mạng, tính linh hoạt trong việc mở rộng và khả năng tương thích với các công cụ phân tích mạng khác.
- Khả năng kiểm tra tính ổn định của các giao thức mạng thường dùng
- 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 có thể mô phỏng nhiều loại mạng khác nhau
NS thực thi các giao thức mạng quan trọng như TCP và UDP, đồng thời cung cấp các dịch vụ nguồn lưu lượng như FTP, Telnet và Web Hệ thống cũng hỗ trợ các kỹ thuật quản lý hàng đợi như Drop Tail, RED và CBQ, cùng với các thuật toán định tuyến như Dijkstra Ngoài ra, NS còn thực hiện multicasting và một số giao thức lớp MAC cho mô phỏng LAN.
Hình 3.1: Tổng quan về NS dưới góc độ người dùng
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
NAM Network Animator Minh họa mạng NAM
NS là một bộ biên dịch Tcl mở rộng hướng đối tượng, bao gồm các đối tượng lập lịch sự kiện, thành phần mạng và các module trợ giúp thiết lập mạng Để sử dụng NS-2, người dùng cần lập trình bằng ngôn ngữ kịch bản OTcl và có thể mở rộng chức năng của NS-2 bằng cách viết các lớp đối tượng mới từ mã nguồn Otcl.
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ập đến việc thiết lập mạng, tức là xây dựng các đường dữ liệu giữa các đối tượng mạng thông qua việc chỉ định con trỏ "neighbour" đến địa chỉ của đối tượng tương ứng Mô đun plumbing OTcl thực hiện quy trình này một cách đơn giản, góp phần tạo nên sức mạnh của NS.
Bộ lập lịch sự kiện là một thành phần quan trọng trong NS-2, bên cạnh các đối tượng thành phần mạng Nó thực hiện các nhiệm vụ quản lý và điều phối các sự kiện trong mô hình mạng, đảm bảo quá trình mô phỏng diễn ra một cách chính xác và hiệu quả.
Tổ chức bộ định thời mô phỏng
Huỷ các sự kiện trong hàng đợi sự kiện
Lời gọi các thành phần mạng trong mô phỏng
Tùy thuộc vào mục đích sử dụng của người dùng, kịch bản mô phỏng OTcl cho phép lưu trữ kết quả mô phỏng dưới dạng file trace Định dạng file trace này có thể được tải vào các ứng dụng khác để tiến hành phân tích.
File nam trace (file.nam) được dùng cho công cụ minh họa mạng NAM
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 3.2: Luồng các sự kiện cho file Tcl chạy trong NS
NAM Visual Simulation Mô phỏng trực quan
Tracing and Monitoring Simulation Mô phỏng lần vết và giám sát
Kiến trúc chung của NS cho phép người dùng thiết kế và chạy các mô phỏng trong Tcl, bắt đầu từ góc trái dưới Tcl sử dụng các đối tượng mô phỏng trong OTcl, trong khi các đối tượng Bộ lập lịch Sự kiện và hầu hết các thành phần mạng được thực thi bằng C++ và có sẵn cho OTcl thông qua một liên kết OTcl Liên kết này được thực hiện bằng TclCL, tạo nên NS, một bộ biên dịch Tcl mở rộng hướng đối tượng cùng với các thư viện mô phỏng mạng.
Ev en t Sc he duler
Ev en t Sc he duler
Hình 3.3: Kiến trúc của NS-2
NS sử dụng hai ngôn ngữ lập trình: ngôn ngữ kịch bản và ngôn ngữ lập trình hệ thống (C/C++)
NS là tầng biên dịch Tcl để chạy các kịch bản Tcl
Bằng cách sử dụng C++/OTcl, bộ mô phỏng mạng phải hoàn toàn là hướng đối tượng
Hình ảnh dưới đây minh họa các đối tượng C++ có liên kết với OTcl Nếu các đối tượng này tạo thành một phân cấp, thì sẽ có một phân cấp tương ứng cho các đối tượng OTcl.
Hình 3.4: C++ và OTcl: Sự đối ngẫu
TclCL là ngôn ngữ kết nối giữa C++ và OTcl, cho phép viết các kịch bản Tcl/OTcl để thiết lập và cấu hình topology mạng Nó cung cấp liên kết giữa các lớp, khởi tạo đối tượng, kết nối biến và gửi lệnh, giúp tối ưu hóa quá trình phát triển mạng.
Hình 3.5: TclCL hoạt động nhƣ liên kết giữa A và B
Vậy, tại sao NS lại cần sử dụng đến hai ngôn ngữ? Lý do là vì bộ mô phỏng cần thực hiện hai việc khác nhau
Mô phỏng các giao thức yêu cầu một ngôn ngữ lập trình hệ thống có khả năng tính toán hiệu quả các byte, tiêu đề packet và thuật toán trên tập dữ liệu lớn Trong quá trình này, tốc độ thời gian chạy thực (run-time speed) đóng vai trò quan trọng hơn so với thời gian quay vòng (turn-around time), mà bao gồm thời gian chạy mô phỏng, tìm lỗi, sửa lỗi, biên dịch lại và chạy lại.
Khi nghiên cứu mạng, cần chú trọng đến các tham số và cấu hình có sự thay đổi nhỏ, cũng như nhanh chóng khám phá các tình huống khác nhau Trong quá trình này, thời gian lặp lại (iteration time) trở nên quan trọng hơn, vì nó liên quan đến việc thay đổi mô hình và thực hiện lại Do cấu hình chỉ được thiết lập một lần khi bắt đầu mô phỏng, nên thời gian chạy (run-time) trong tác vụ này không quan trọng bằng.
Theo giải thích trên, từng ngôn ngữ sẽ được dùng cho những việc gì?
Mô phỏng giao thức yêu cầu ngôn ngữ lập trình hệ thống cần thao tác trên byte, xử lý gói và thực thi thuật toán Tốc độ thời gian thực là yếu tố quan trọng nhất trong quá trình này.
Thực hiện bất kỳ việc gì mà cần phải xử lý từng packet của một luồng
Thay đổi hành vi của lớp C++ đang tồn tại theo những hướng đã không được lường trước
Mô phỏng các thông số và cấu hình thay đổi là rất quan trọng để tham dò nhanh nhiều tình huống khác nhau Thời gian tương tác, bao gồm việc thay đổi mô hình hoặc chạy lại mô phỏng, đóng vai trò then chốt trong quá trình này.
Cấu hình, thiết lập hay những gì chỉ làm một lần
Thực hiện những cái ta muốn bằng cách thao tác trên các đối tượng C++ đang tồn tại
Các liên kết OTcl đóng vai trò quan trọng trong việc kết nối các mô đun liên quan đến độ trễ, sắp hàng đợi và khả năng mất mát Để thực hiện các tác vụ chuyên nghiệp hơn, việc tạo ra đối tượng C++ mới là cần thiết.
Hầu hết định tuyến được viết bằng OTcl (dù thuật toán Dijkstra lõi viết bằng C++)
Mô phỏng HTTP bắt đầu với từng luồng tại OTcl, trong khi xử lý gói được thực hiện bằng C++ Phương pháp này hoạt động hiệu quả cho đến khi có tới 100 luồng khởi động mỗi giây Nếu cần triệu gọi Tcl nhiều lần mỗi giây, việc chuyển sang C++ có thể là lựa chọn hợp lý.
Về phương diện mã nguồn, NS-2 được viết với 100kB dòng mã lệnh C++, 70k dòng mã Tcl và 20k dòng tài liệu
3.1.3 Các đặc tính của NS-2
NS-2 thực thi những tính năng sau:
Các kỹ thuật quản lý hàng đợi Router như DropTail, RED, CBQ,
Phát sóng đa chiều (multicasting)
Mô phỏng mạng cảm biến không dây trên NS-2
3.2.1 Bài toán mô phỏng Để xây dựng mô hình một mạng cảm biến không dây chúng ta cần quan tâm đến các tham số chính: topo của mạng, số lượng các nút mạng, năng lượng ban đầu của các nút, kích thước mỗi gói tin, các thông số vật lý của kênh vô tuyến
Kết quả của phần mềm mô phỏng thu được sẽ là:
- Tổng năng lượng tiêu thụ bởi mỗi nút
- Tổng số dữ liệu truyền từ mỗi nút đến trạm gốc
- Số nút còn sống sau một thời gian xác định
Hình 3.6 Mô hình cấu trúc phần mềm xây dựng trên NS-2
Các thành phần chính trong mô hình:
- Wireless.tcl: lưu trữ các thông số chính của môi trường truyền sóng vô tuyến như tốc độ kênh truyền, năng lượng tổn hao trên kênh truyền
uAMPS.tcl lưu trữ các thông số vật lý và giả thiết đầu vào cho bài toán mô phỏng, bao gồm số lượng và vị trí các nút trong mạng, ngưỡng năng lượng cần thiết để truyền và nhận tín hiệu thành công, kích thước và năng lượng ban đầu của gói tin, cũng như các thông số liên quan đến anten.
- ns-leach.tcl: thưc hiện các chứ năng của giao thức LEACH như chọn nút chủ cụm, phân chia cluster, truyền, nhận các bản tin của các nút
start.tcl lưu trữ thông số của quá trình mô phỏng, cho phép người dùng sử dụng các chương trình đồ họa để trực quan hóa dữ liệu thông qua các đồ thị sinh động.
- Các file Resource Adaptive Node: lưu trữ các thông số của nút như: năng lượng, trạng thái hoạt động
3.2.3 Các giao thức mô phỏng
LEACH là giao thức phân cấp theo cụm thích ứng năng lượng thấp Nó dựa trên thuật toán phân nhóm và có những đặc trưng sau:
- Các nút có thể phân bố ngẫu nhiên và tự hình thành cụm
- Việc truyền dữ liệu được điều khiển ở trong cụm Tức là nút chủ cụm sẽ điều khiển các nút trong cụm gửi dữ liệu đến nó
- Có quá trình xử lý dữ liệu như việc nút chủ cụm tổng hợp dữ liệu từ các nút gửi đến nó rồi gửi tới trạm gốc
Trong giao thức LEACH, các nút tự tổ chức thành cụm với một nút chủ cụm, trong khi các nút khác truyền dữ liệu đến nút chủ Nút chủ phải nhận và xử lý dữ liệu từ các nút thành viên trước khi gửi đến trạm gốc, dẫn đến việc tiêu tốn năng lượng nhiều hơn Nếu nút chủ được chọn cố định trong thời gian sống của mạng, như trong giải thuật phân nhóm tĩnh, năng lượng của nó sẽ cạn kiệt nhanh chóng, khiến nó không còn hoạt động được.
Khi nút chủ trong mạng chết, tất cả các nút trong cụm sẽ không thể trao đổi thông tin Để giải quyết vấn đề này, LEACH áp dụng phương pháp ngẫu nhiên hóa và quay vòng vị trí các nút chủ có năng lượng cao, nhằm tránh tiêu hao năng lượng trên một nút cụ thể Nhờ đó, năng lượng cần thiết để trở thành nút chủ được phân bố đồng đều giữa tất cả các nút trong mạng.
Hoạt động của LEACH được chia thành các vòng, bắt đầu với pha thiết lập khi các cụm được hình thành, tiếp theo là pha ổn định khi các khung dữ liệu được gửi tới các nút chủ và trạm gốc Để bắt đầu pha thiết lập, tất cả các nút cần đồng bộ về mặt thời gian Thời gian của pha ổn định thường dài hơn nhiều so với pha thiết lập.
Hình 3.8 Time-line hoạt động của LEACH
Tự động cấu hình hình thành cụm (Self-configuring Cluster Formation):
LEACH sử dụng thuật toán phân tán để thực hiện phân cụm, cho phép các nút tự quyết định mà không cần sự điều khiển từ bên ngoài Phương pháp này có ưu điểm là không yêu cầu giao tiếp với trạm gốc, giúp tiết kiệm năng lượng cho các nút xa trạm Việc hình thành các cụm phân tán có thể diễn ra mà không cần biết chính xác vị trí của các nút trong mạng Hơn nữa, nó không yêu cầu liên lạc toàn cục trong quá trình thiết lập cụm và không phụ thuộc vào trạng thái hiện tại của các nút khác.
Lựa chọn nút chủ cụm
Khi các cụm được tạo ra, mỗi nút tự động quyết định xem nó có trở thành nút chủ cho vòng tiếp theo hay không Quá trình lựa chọn diễn ra khi mỗi nút cảm biến chọn một số ngẫu nhiên từ 0 đến 1; nếu số này nhỏ hơn ngưỡng T(n), nút đó sẽ trở thành nút chủ Ngưỡng T(n) được xác định theo một phương trình cụ thể.
P quyết định số lượng trung bình các nút chủ trong một vòng, r là số vòng hiện tại, với mỗi nút trở thành nút chủ đúng một lần trong 1/P vòng Sau 1/P-1 vòng, T 1 (n)=1 cho tất cả các nút chưa được chọn làm nút chủ Khi một nút được chọn, nó thông báo tới tất cả các nút khác, và các nút không phải là nút chủ sử dụng thông tin này để chọn cụm dựa trên cường độ tín hiệu nhận được Sau khi các nút chủ được xác định, chúng sẽ quyết định mô hình TDMA cho từng cụm, quảng bá mô hình và bắt đầu pha trạng thái tĩnh.
Mỗi nút trong mạng sẽ được chọn làm nút chủ cụm nếu xác suất của nó thỏa mãn phương trình (3.1) Nút chủ cần thông báo cho các nút khác rằng nó đã được chọn, và để làm điều này, nó sẽ phát bản tin quảng bá (ADV) sử dụng thuật toán CSMA Bản tin này bao gồm ID của nút và header để phân biệt là bản tin quảng bá, và phải được truyền đến tất cả các nút trong mạng Việc này đảm bảo rằng tất cả các nút đều lắng nghe bản tin để tránh đụng độ khi sử dụng CSMA, đồng thời đảm bảo rằng các nút chủ được phân bố đều trong mạng Nếu công suất phát bản tin quảng bá giảm, một số nút ở biên có thể không nhận được thông báo và không trở thành thành phần trong vòng này Do bản tin quảng bá rất nhỏ, việc tăng công suất phát để đảm bảo tất cả các nút nhận được không phải là vấn đề lớn Vì vậy, công suất được thiết lập ở mức cao đủ để tất cả các nút trong mạng có thể lắng nghe bản tin ADV.
Các nút không phải là nút chủ xác định cụm của chúng bằng cách lựa chọn nút chủ có yêu cầu năng lượng giao tiếp thấp nhất, dựa trên cường độ tín hiệu nhận được từ bản tin quảng bá của từng nút chủ.
Sau khi xác định cụm, mỗi nút sẽ thông báo cho nút chủ của cụm đó Mỗi nút gửi bản tin yêu cầu tham gia (Join-REQ) đến nút chủ, sử dụng giao thức CSMA Bản tin này có kích thước nhỏ và chứa ID của nút.
ID nút chủ và header để phân biệt với các bản tin khác
Trong giao thức LEACH, các nút chủ đóng vai trò như khối điều khiển trung tâm cục bộ, liên kết dữ liệu trong cụm mà chúng quản lý Nút chủ thiết lập bản tin định thời TDMA và gửi tới các nút trong cụm, giúp ngăn chặn đụng độ và cho phép các nút không phải nút chủ ở trạng thái nghỉ trong quá trình phát sóng radio.
Nó chỉ hoạt động khi truyền dữ liệu, giúp tiết kiệm năng lượng cho các nút Khi bản tin TDMA được gửi đến tất cả các nút trong cụm, pha thiết lập kết thúc và chuyển sang pha ổn định.
Hình 3.9 Giải thuật hình thành cluster trong LEACH
Hình 3.9 minh họa sơ đồ giải thuật cho quá trình hình thành cụm trong LEACH Sau mỗi vòng, một pha thiết lập mới sẽ được khởi động để lựa chọn cụm mới phù hợp với mô hình mạng.
Hình 3.10 Sự hình thành cụm ở 2 vòng khác nhau (nút đen là nút chủ) Pha ổn định