Giao thức thông tin qua sự thỏa thuận giữa các node (SPIN) là họ các giao thức dựa trên 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 node nào ựó ựến tất cả các node khác trong mạng. Các giao thức ựơn giản nhất là flooding và gossiping . Flooding ựòi hỏi mỗi node gởi một bản sao gói dữ liệu ựến tất cả các node lân cận với nó cho ựến khi thông tin ựến ựược ựắch. Gossiping dùng tắnh ngẫu nhiên ựể giảm số bản sao và yêu cầu chỉ có một node nhận ựược một gói dữ liệu và sau ựó chuyển tiếp một cách ngẫu nhiên ựến một node ựược chọn trước.
đố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. 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 nghi tài nguyên mạng. Thỏa thuận dữ liệu (data negotiation) yêu cầu các node phải ỘhọcỢ nội dung của dữ liệu trước khi phát dữ liệu giữa các node mạng. SPIN dùng các gói như là mô tả trước khi phát gói dữ liệu thực. Các node thu khi nhận ựược gói quảng cáo 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 node nguồn. Do ựó gói dữ liệu thực chỉ ựược gởi cho các gói quan tâm, hạn chế khả năng bị bùng nổ gói như trong flooding và giảm ựáng kể lưu lượng dư thừa trong mạng. Ngoài ra việc dùng khóa mô tả dữ liệu (meta data descriptors) loại trừ khả năng chồng lấn vì các node chỉ yêu cầu dữ liệu cần quan tâm.
Sự thắch ứng tài nguyên mạng (Resource adaptation) cho phép các node dùng giao thức SPIN ựiều chỉnh hoạt ựộng theo trạng thái hiện năng lượng hiện tạị Mỗi node 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ệụ Khi mức năng lượng xuống thấp, node sẽ giảm hay ngừng hoàn toàn các hoạt ựộng như chuyển tiếp gói cho các node khác. Việc này sẽ ựược các node còn năng lượng nhiều hơn thực hiện. SPIN giúp kéo dài thời gian sống của nodẹ
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à node muốn phát. Node có dữ liệu sẽ phát các gói ADV chứa mô tả dữ liệu thực ựến các node xung quanh. Dạng thứ 2 là gói REQ, ựược dùng ựể yêu cầu
node nguồn phát gói dữ liệu ựã quảng cáo trước ựó. Một node mạng nhận ựược gói ADV và 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ứ 3 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 nodẹ
Hình 3.5: 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 3.5. Node nguồn là A, phát gói ADV quảng cáo gói dữ liệu mà nó muốn phát. Node B nhận ựược gói ADV nàỵ Node B thể hiện mong muốn nhận gói dữ liệu ựược quảng cáo theo như mô tả trong gói ADV. Vì thế B gởi gói REQ cho Ạ Sau ựó A gởi gói dữ liệu thực cho B. Node B sau khi nhận dữ liệu lại phát gói ADV cho các node C,D,E,F,G. Chỉ có 3 node C,E,G quan tâm ựến gói nàỵ Các node này phát thông ựiệp REQ cho node B. Ngay sau ựó B gởi dữ liệu cho C,E,G. Quá trình diễn ra cho ựến khi gói dữ liệu ựến ựược ựắch mong muốn.
Hình 3.6: Thủ tục bắt tay trong giao thức SPIN-PP.
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 như trên hình 3.6. Bước 1, node 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, node B quan tâm ựến gói dữ liệu thực ựó liền gởi gói REQ yêu cầu dữ liệụ Bước 3, node 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 node ựể tránh nguy cơ bị bùng nổ các gói và vấn ựề chồng lấn trong giao thức flooding và gossiping. Theo mô phỏng hiệu quả gấp 3.5 lần so với flooding. Giao thức còn ựạt tốc ựộ dữ liệu cao gần tối ưu so với lý thuyết.
Một loại khác 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. Một node chỉ tham gia vào hoạt ựộng giao thức nếu node 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 node 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 DATẠ Kết quả mô phỏng cho thấy giao thức SPIN-EC tăng 60% dữ liệu trên một ựơn vị năng lượng so với flooding.
Cả SPIN-PP và SPIN-EC ựều ựược thiết kế cho liên lạc ựiểm - ựiểm. Một loại thứ 3, 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 node dùng chung một kênh truyền. Khi một node 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 node khác trong phạm vi của nodẹ Giao thức SPIN-BC không yêu cầu các node 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 ựó node chờ một khoảng thời gian, trong khi nó giám sát kênh truyền. Nếu node nghe thấy thông ựiệp REQ ựược phát ra từ một node khác (nghĩa là node kia mong muốn nhận ựược gói dữ liệu từ node nguồn), node 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 node nào ựó trong mạng, node nguồn sẽ gởi thông ựiệp DATA chỉ một lần, mặc dù có thể nó nhận nhiều gói yêu cầu giống nhau từ các node
mạng.
Hoạt ựộng cơ bản của giao thức SPIN-BC ựược miêu tả trên hình 3.7. Trong mô hình này, node có dữ liệu là node A, gởi một gói ADV ựể giới thiệu dữ liệu của nó cho các node lân cận. Tất cả các node nghe thấy thông ựiệp này, nhưng node C phát trước gói REQ ựể yêu cầu gói dữ liệu từ node Ạ Vì ựây là gói phát quảng bá nên các node B và D nghe ựược gói này và ngưng việc phát gói REQ của nó. Node E và F không quan tâm và bỏ qua các gói nàỵ Khi nghe ựược gói REQ từ node C, node A phát gói dữ liệu cho C. Tất cả các node ựều nhận ựược gói nàỵ 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.
Hình 3.7: Giao thức SPIN-BC.
Giao thức cuối cùng thuộc họ SPIN là giao thức SPIN-RL, phát triển từ SPIN-BC ựể 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 node 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ì node sẽ yêu cầu lại lần nữạ 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 node SPIN-RL hạn chế số lần phát lại thông ựiệp DATẠ Sau khi gởi thông ựiệp DATA, node chờ hết 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 chỉ ra các 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 node 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 node 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àỵ đ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ếụ