Trong mạng cảm biến không dây, để tiết kiệm năng lượng, các nút sẽ có 2 trạng thái: trạng thái thức (awake) và trạng thái nghỉ (sleep). Thông thường, thời gian các nút
ở trạng thái thức thường nhỏ hơn thời gian các nút ở trạng thái nghỉ rất nhiều. Quá trình mã hóa được chia thành hai giai đoạn: giai đoạn sát nhậpđể tạo thành sự kết hợp tuyến tính ngẫu nhiên, và giai đoạn chuyển tiếp để truyền sự kết hợp tuyến tính này tới bộ xử
lý trung tâm hay bộ thu.
Trong giai đoạn sát nhập, các nút phát quảng bá các số đo tương ứng của chúng theo lịch trình riêng. Các nút ở trạng thái thức (awake) sẽ nhận các gói tin phát quảng bá từ các nút lân cận và sát nhập chúng lại với nhau. Điều kiện để hai gói dữ liệu có thể được sát nhập vào thành một gói duy nhất nếu hai gói này không có ID nút nào giống nhau trong tiêu đề.Trường hợp hai gói dữ liệu không thể sát nhập khi: nếu sau khi sát nhập, tiêu đề vượt quá độ dài hoặc hai gói đó có ID nút giống nhau trong tiêu đề.
Hình 3.5: Ví dụ hợp nhất 2 gói [8].
(A) Có thể sát nhập;
(B) không thể sát nhập vì hai gói này ID nút giống nhau là 4; (C) không thể sát nhập: tiêu đề tràn.
Hình 3.5 cho thấy một số ví dụ các gói có thể sát nhập và không thể sát nhập. Một gói tin bão hòa là một gói tin mà không có slot nào tự do trong tiêu đề và do đó không thể thu nạp thêm nữa. Mặt khác, các gói tin chưa bão hòa có không gian tiêu đề để sát nhập và do đó các nút sẽ phát quảng bá các gói chưa bão hòa trong khi các gói dữ liệu bão hòa sẽđược lưu trữ và chuyển tiếp.
Trong giai đoạn chuyển tiếp, các gói dữ liệu bão hòa được lưu trữ và sẵn sàng để
Thuật toán 1 [8]: Thuật toán mã hóa
1. Mỗi nút ở trong trạng thái thức và nghỉ theo chu kỳ
2. Khi một nút ở trạng thái thức. Trong khoảng thời gian
đầu tiên của trạng thái thức nút ở chế độ LISTEN sau đó
nút chuyển sang chế độ COMPRESS trước khi trở về trạng
thái nghỉ.
3. Nếu nút i ở trong trạng thái thức và ở trong chế độ
LISTEN thì:
4. Nếu nút i nhận một gói dữ liệu pthì:
5. Nếu bộ đệm nhận đầy hoặc TTL của p=0 thì
6. Loại bỏ gói dữ liệup;
7. Ngược lại thì
8. Nếu plà một gói đã bão hòa thì
9. Chuyển gói tin ptới bộ đệm full-buffer;
10. Ngược lại thì
11. Chuyển gói tin p tới bộ đệm compress-
buffer;
12. Kết thúc
13. Kết thúc
14. Kết thúc
15. Kết thúc
16. Nếu nút i ở trong trạng thái thức và ở trong chế độ
COMPRESS thì:
17. Loại bỏ những gói tin giống nhau trong bộ đệm
compress-buffer (các gói có nội dung giống nhệt nhau
nhưng trường TTL có thể khác nhau);
18. Lặp lại:
19. Sát nhập các gói trong bộ đệm compress-
buffer;
20. Đến khi không còn gói nào có thể sát nhập trong bộ
đệm compress-buffer
21. Chuyển các gói tin đã bão hòa từ bộ đệm
compress-buffer sang bộ đệm full-buffer;
22. Loại bỏ những gói tin giống nhau trong bộ đệm
full-buffer;
23. Phát quảng bá cái gói tin chưa bão hòa trong
bộ đệm compress-buffer;
24. Kết thúc
Thuật toán 1 tóm tắt quá trình mã hóa trong một nút cảm biến. Mỗi nút có hai bộ đệm, một bộđệm dành cho các gói đã bão hòa (full-buffer) và một bộđệm dành cho các gói chưa bão hòa (compress-buffer). Các gói tin cũng có một trường thời gian sống (TTL), có vai trò như là một bộ đếm xuống các hop. Khi một gói được tạo ra, trường TTL được đặt ở một giá trị cố định nào đó. TTL được giảm đi tại mỗi hop và nếu TTL=0 trước khi gói tin được truyền đi thì sau đó gói tin sẽ bị loại bỏ.
Sau đây ta minh họa quá trình sát nhập giữa các gói trong bộ đệm compress- buffer. Trong một mạng cảm biến, tại thời điểm ban đầu các nút cảm biến đo dữ liệu và lưu trữ dữ liệu dưới dạng gói. Giả sử tại một thời điểm, giá trị đo của nút cảm thứ 3 là 0.16 và giá trị đo của nút thứ 4 là 0.1 (như minh họa trên hình 3.6).
Hình 3.6: (a) Định dạng gói nút cảm biến 3; (b) Định dạng gói nút cảm biến 4. Nút cảm biến 3 và nút cảm biến 4 tiến hành phát quảng bá gói tin của mình. Nếu nút cảm biến 3 nhận gói tin của nút cảm biến 4 (cũng như nút cảm biến 4 nhận gói tin của nút 3) nó sẽ tiến hành so sánh các nút ID trong tiêu đề của gói tin. Vì trong tiêu đề
gói tin của nút cảm biến 3 và nút cảm biến 4 không có nút ID nào giống nhau và các gói tin này đều chưa bão hòa nó sẽ tiến hành sát nhập 2 gói tin với nhau như trên hình 3.7.
Hình 3.7: Sát nhập hai gói tin của hai nút cảm biến 3 và 4.
Như vậy dữ liệu của gói tin tổng hợp 0.06 sẽ bằng giá trịđo của nút 3 – giá trị của nút 4.
Trong mạng cảm biến không dây, nếu ta sử dụng thiết kế Netcompress, thay vì việc truyền rất nhiều gói tin trong mạng ta chỉ cần một số lượng ít các gói tin. Trong các gói tin này mang thông tin của rất nhiều nút. Tại nơi thu, từ số lượng nhỏ các gói tin này ta có thể khôi phục chính xác toàn bộ các thông tin của tất cả các nút trong mạng. Đây chính là ý tưởng của bài toán lấy mẫu nén.