Trong các mạng cấu trúc phẳng, mỗi nút thƣờng có vai trò nhƣ nhau và các nút cảm biến hợp tác với nhau để hoàn thành một nhiệm vụ. Do số lƣợng các nút trong mạng thƣờng lớn, ấn định nhân dạng cho mỗi nút là không khả thi. Định tuyến tập trung dữ liệu có thể giải quyết vấn đề này: trạm trung tâm gửi các yêu cầu tới các vùng nhất định trong mạng và chờ dữ liệu gửi về từ các cảm biến trong các vùng đó. Vì cái đƣợc yêu cầu ở đây là dữ liệu nên cần sử dụng biện pháp đặt tên theo thuộc tính để xác định các thuộc tính của dữ liệu. Hai giao thức định tuyến tập trung dữ liệu thƣờng đƣợc sử dụng trong mạng cảm biến là SPIN (Sensor Protocols for Information via Negotiation) và truyền tin trực tiếp (Direct Diffusion). Hai giao thức này cho phép tiết kiệm năng lƣợng nhờ thỏa thuận dữ liệu và hạn chế dữ liệu dƣ thừa.
Giao thức định tuyến thông tin qua thỏa thuận giữa các nút SPIN là họ các giao thức dựa trên sự thỏa thuận để phát thông tin trong mạng WSN. Đối tƣợng chính của các giao thức này là tính hiệu quả của việc phát thông tin từ một nút nào đó đến tất cả các nút khác trong mạng.
Đối tƣợng chính của nhóm giao thức SPIN là giải quyết hạn chế của các giao thức truyền thống nhƣ flooding và gossiping. Nguyên lý cơ bản của họ giao thức này là thỏa thuận dữ liệu và sự thích ứng tài nguyên mạng. Thỏa thuận dữ liệu (data negotiation) yêu cầu các nút phải “học” nội dung của dữ liệu trƣớc khi phát dữ liệu giữa các nút mạng. SPIN khai thác việc đặt tên dữ liệu, ở đó các nút kết hợp gói mô tả (metadata) vào dữ liệu và sử dụng dữ liệu mô tả này để thực hiện thỏa thuận trƣớc khi phát gói dữ liệu thực. Các nút thu khi nhận đƣợc gói mô tả, nếu muốn nhận gói dữ liệu thực phải gửi một gói yêu cầu cho nút nguồn. Thỏa thuận này đảm bảo gói dữ liệu thực chỉ đƣợc gửi cho các gói quan tâm, do đó hạn chế khả năng bị bùng nổ lƣu lƣợng nhƣ trong flooding, giảm đáng kể lƣu lƣợng dƣ thừa trong mạng. Ngoài ra, sử dụng gói mô tả dữ liệu (meta data descriptors) cho phép loại trừ khả năng chồng lấn, vì các nút có thể hạn chế các yêu cầu bằng cách chỉ gửi yêu cầu đối với dữ liệu mà chúng muốn nhận đƣợc.
Sự thích ứng tài nguyên mạng cho phép các nút dùng giao thức SPIN điều chỉnh hoạt động theo trạng thái năng lƣợng hiện tại. Mỗi nút trong mạng có thể theo dõi sự tiêu thụ năng lƣợng trƣớc khi phát hay xử lý dữ liệu. Khi mức năng lƣợng xuống thấp, nút sẽ giảm hay ngừng hoàn toàn các hoạt động nhƣ chuyển tiếp gói dữ liệu hay gói mô tả cho các nút khác. Việc này sẽ đƣợc các nút còn năng lƣợng nhiều hơn thực hiện. Khả năng thích ứng tài nguyên của SPIN giúp kéo dài thời gian sống của nút, do đó cũng có thể kéo dài thời gian sống của toàn mạng.
SPIN thực hiện việc thỏa thuận và truyền dữ liệu thông qua 3 dạng thông điệp. Đầu tiên là gói ADV, đƣợc dùng để quảng cáo cho gói dữ liệu mới mà nút mong muốn phát. Nút có dữ liệu sẽ phát các gói ADV chứa mô tả dữ liệu đến các nút xung quanh. Dạng thứ hai là gói REQ, đƣợc dùng để yêu cầu nút nguồn phát gói dữ liệu đã quảng cáo trƣớc đó. Khi một nút mạng nhận đƣợc gói ADV, nó thể hiện mong muốn nhận gói dữ liệu thực bằng cách phát đi thông điệp REQ. Dạng thứ ba là DATA, chứa dữ liệu thực. Gói DATA thƣờng lớn hơn các gói ADV và REQ. Việc hạn chế các gói dƣ thừa làm giảm đáng kể năng lƣợng tiêu thụ tại các nút.
149
Hình 4.9. Hoạt động cơ bản của giao thức SPIN
Hoạt động cơ bản của giao thức SPIN đƣợc minh họa trên hình 4.9. Nút nguồn là A, phát gói ADV quảng cáo gói dữ liệu mà nó muốn phát. Nút B nhận đƣợc gói ADV này. Nút B mong muốn nhận gói dữ liệu đƣợc quảng cáo theo nhƣ mô tả trong gói ADV và gửi gói REQ cho A. Sau đó A gửi gói dữ liệu thực cho B. Nút B sau khi nhận dữ liệu lại phát gói ADV cho các nút C, D, E, F, G. Chỉ có ba nút C, E, G quan tâm đến gói này. Các nút này phát thông điệp REQ cho B. Sau đó B gửi dữ liệu thực cho C, E, G. Quá trình diễn ra cho đến khi gói dữ liệu đến đƣợc đích mong muốn.
Các giao thức trong họ giao thức SPIN bao gồm SPIN-PP (SPIN Point-to-Point), SPIN- EC (SPIN with Energy Conservation), SPIN-BC (SPIN with Broadcast) và SPIN-RL.
SPIN-PP và biến thể:
Dạng đơn giản nhất của họ giao thức SPIN là SPIN-PP, đƣợc thiết kế cho mạng liên lạc điểm – điểm (point-to-point). Thủ tục bắt tay ba bƣớc đƣợc minh họa trên hình 4.10.
Bƣớc 1: nút A có dữ liệu cần phát, vì thế A phát gói ADV quảng cáo cho gói dữ liệu thực của mình.
Bƣớc 2: nút B quan tâm đến gói dữ liệu thực, B gửi gói REQ đến A. Bƣớc 3: nút A đáp ứng yêu cầu đó và gửi gói dữ liệu thực cho B.
Giao thức này thỏa thuận giữa các nút để tránh nguy cơ bị bùng nổ các gói tin và vấn đề chồng lấn giống nhƣ trong các giao thức flooding và gossiping.
150
Hình 4.10.Các thủ tục trong giao thức SPIN-PP
Một biến thể của SPIN- PP là SPIN- EC, kết hợp kỹ thuật quan sát nguồn năng lƣợng dựa trên mức ngƣỡng để hoàn tất thủ tục thỏa thuận dữ liệu. Một nút chỉ tham gia vào hoạt động giao thức nếu nút có thể hoàn thành tất cả các hoạt động mà không làm giảm năng lƣợng dƣới mức cho phép. Khi nút nhận đƣợc một gói quảng cáo, nó không gửi thông điệp REQ nếu nó xác định nguồn năng lƣợng không đủ để gửi gói REQ và nhận gói DATA.
SPIN- BC và biến thể:
Cả SPIN-PP và SPIN-EC đều đƣợc thiết kế cho mạng liên lạc điểm- điểm. Một loại giao thức định tuyến thỏa thuận khác, là SPIN-BC, đƣợc thiết kế cho mạng quảng bá. Trong các loại mạng này, tất cả các nút dùng chung một kênh truyền. Khi một nút gửi một gói dữ liệu qua kênh quảng bá, gói sẽ đƣợc nhận bởi tất cả các nút trong phạm vi của nút gửi. Giao thức SPIN-BC không yêu cầu các nút sau khi nhận thông điệp ADV phải đáp lại ngay lập tức gói REQ. Thay vào đó, nút chờ một khoảng thời gian, đồng thời giám sát kênh truyền. Nếu một nút nghe thấy thông điệp REQ đƣợc phát ra từ một nút khác (nghĩa là nút kia mong muốn nhận đƣợc gói dữ liệu từ nút nguồn), nút sẽ hủy gói yêu cầu của nó, do đó loại bỏ khả năng các gói REQ dƣ thừa trong mạng. Khi nhận đƣợc gói REQ từ một nút nào đó trong mạng, nút nguồn sẽ gửi gói dữ liệu DATA chỉ một lần, mặc dù có thể nó nhận đƣợc nhiều gói yêu cầu giống nhau từ các nút mạng.
Hình 4.11.Hoạt động của giao thức SPIN-BC
Hoạt động cơ bản của giao thức SPIN-BC đƣợc minh họa trên hình 4.11. Trong hình này, nút có dữ liệu là nút A, nút A gửi gói ADV để quảng bá dữ liệu của nó cho các nút lân cận. Tất cả các nút nghe thấy thông điệp này, nhƣng nút C phát trƣớc gói REQ để yêu cầu gói dữ liệu từ nút A. Vì đây là gói phát quảng bá nên các nút B và D cũng nghe thấy gói REQ từ B nên ngƣng việc phát gói REQ của nó. Nút E và F không quan tâm và bỏ qua các gói này. Khi A nghe đƣợc gói REQ từ C, nút A phát gói dữ liệu cho C. Tất cả các nút đều nhận đƣợc gói này. Trong môi trƣờng quảng bá, SPIN-BC giảm hao phí năng lƣợng bằng cách hạn chế các gói dƣ thừa trong mạng.
151
Một giao thức khác, đƣợc phát triển từ SPIN-BC là SPIN-RL. Giao thức này cải thiện độ tin cậy và lỗi thông điệp do suy hao kênh truyền. Các gói ADV và REQ đƣợc phát quảng bá lặp lại theo chu kỳ. Nếu một nút gửi yêu cầu nhận gói dữ liệu nhƣng sau khoảng thời gian định trƣớc nó vẫn chƣa nhận đƣợc thì nút sẽ yêu cầu lại lần nữa. Hơn nữa, độ tin cậy cải thiện còn do việc phát lại gói mô tả dữ liệu metadata theo chu kỳ. Các nút SPIN-RL hạn chế số lần phát lại thông điệp DATA. Sau khi gửi thông điệp DATA, nút chờ một khoảng thời gian trƣớc khi đáp ứng cho những yêu cầu khác cho dữ liệu tƣơng tự.
Họ giao thức SPIN khắc phục đƣợc những nhƣợc điểm chính của flooding và gossiping. SPIN có hiệu suất sử dụng năng lƣợng và tốc độ phân phát dữ liệu cao hơn flooding và gossiping. Tuy nhiên, sự thỏa thuận cục bộ có thể không đủ để bao bọc hết toàn bộ mạng để tất cả các nút có nhu cầu đều nhận đƣợc gói quảng bá và sau đó là gói dữ liệu mong muốn. Tình huống đó có thể xảy ra nếu các nút trung gian không quan tâm đến gói dữ liệu và bỏ qua thông điệp ADV tƣơng ứng sau khi nhận đƣợc gói này. Điều này hạn chế việc sử dụng SPIN trong các ứng dụng đặc biệt nhƣ giám sát phát hiện xâm nhập và bảo vệ các công trình trọng yếu.