Giao thức SPIN

Một phần của tài liệu Đánh giá hiệu suất của giao thức định tuyến trong mạng cảm biến không dây (Trang 30)

SPIN (Sensor Protocols for Information via Negotiation - Giao thức cho thông tin cảm biến thông qua đàm phán) là giao thức được thiết kế để khắc phục các vấn đề mà Flooding gặp phải thông qua việc đàm phán trước khi gửi dữ liệu và sự thích ứng của tài nguyên. Với mục tiêu này, 2 giải pháp đã được đưa ra. Thứ nhất, trước khi gửi toàn bộ dữ liệu, các nút cảm biến sẽ đàm phán với các nút khác thông qua các gói tin mô tả dữ liệu. Nếu một nút mạng nhận được gói tin mô tả mà muốn nhận gói dữ liệu thực, nó sẽ phải đưa ra yêu cầu với nút nguồn gửi gói tin mô tả đó. Do vậy, các thông tin quan sát được sẽ chỉ gửi đến các nút cảm biến quan tâm như là kết quả của cuộc đàm phán này. Thứ hai, mỗi nút cảm biến sẽ tự giám sát nguồn năng lượng của mình để đ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 dữ liệu tới nút mới. Công việc này sẽ được nhường lại cho nút cảm biến khác có mức năng lượng cao hơn. Vì vậy SPIN giúp kéo dài thời gian sống của các nút mạng.

SPIN thực hiện việc đàm phán và truyền dữ liệu thông qua 3 loại gói tin. Đầu tiên là gói ADV (Advertisement) được dùng để quảng bá cho gói dữ liệu mới mà nút muốn phát. Nút có gói 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. Loại thứ hai là gói tin REQ (Request), được dùng để yêu cầu nút nguồn gửi gói dữ liệu thực đã quáng bá trước đó. Một nút mạng nhận được gói tin ADV và thể hiện mong muốn nhận được gói dữ liệu thực bằng cách phát đi gói tin REQ. Loại thứ ba là gói tin DATA chứa dữ liệu thực, gói tin DATA thường có kích thước lớn hơn

gói ADV và REQ. Việc hạn chế các gói tin dư thừa sẽ giảm đáng kể năng lượng tiêu thụ tại các nút mạng.

Các hoạt động cơ bản của SPIN được minh họa như hình 2.5 bên dưới:

Hình 2.5: Các hoạt động cơ bản của giao thức SPIN

Nút nguồn là A, phát gói ADV quảng bá dữ liệu mà nó muốn gửi (a). Nút B nhận được gói quảng bá này, thể hiện mong muốn nhận được gói dữ liệu thực như được mô tả trong ADV, vì vậy nút B gửi gói tin REQ cho nút A (b). Sau đó nút A gửi gói dữ liệu thực cho B (c). Nút B sau khi nhận được gói dữ liệu, lại phát gói tin ADV cho các nút lân cận là C, D, E, F, G (d). Chỉ có 3 nút C, E, G quan tâm đến dữ liệu thực vì vậy các nút này gửi gói tin REQ tới nút B (e). Ngay sau khi nhận được REQ, nút B gửi gói dữ liệu thực tới C, E và G (f). Quá trình này diễn ra cho tới khi gói dữ liệu đến được đích mong muốn.

Dạng đơn giản nhất của SPIN là SPIN-PP, SPIN-PP được thiết kế cho mạng truyền thông điểm-điểm. SPIN-PP hoạt động thông qua thủ tục bắt tay 3 bước tương ứng với 3 loại gói tin ADV, REQ và DATA. SPIN-PP khắc phục được vấn đề “bùng

nổ lưu lượng”“chồng chéo dữ liệu” do chỉ truyền gói tin tới các nút mạng quan

tâm. Tuy nhiên, vấn đề “mù tài nguyên” vẫn còn đang là trở ngại đối với SPIN-PP. Một dạng khác của SPIN là SPIN-EC. SPIN-EC kết hợp việc đàm phán thông tin với kỹ thuật quan sát nguồn năng lượng dựa trên mức ngưỡng. Một nút mạng chỉ tham gia vào các hoạt động của giao thức khi mà 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 xuống dưới mức cho phép. Do đó, khi nút nhận được gói tin ADV, nó sẽ không gửi gói tin REQ nếu nó xác định nguồn năng lượng không đủ để gửi gói tin REQ và nhận gói tin DATA.

Cả SPIN-PP và SPIN-EC đều được thiết kế cho mạng truyền thông điểm-điểm. Nghĩa là nút nguồn phải gửi đi số gói tin DATA bằng với số gói tin REQ nhận được.

Trong khi đó với bản chất truyền dẫn không dây của mạng WSN thì các nút lân cận đều có thể nhận được gói dữ liệu ngay cả khi nút nguồn truyền unicast. Điều này làm cho một nguồn năng lượng lớn bị lãng phí. Tận dụng được đặc điểm trên, SPIN-BC được thiết kế cho mạng truyền thông quảng bá đã ra đời. SPIN-BC không yêu cầu các nút mạng phải gửi ngay gói tin REQ khi nhận được gói tin ADV. Thay vào đó, các nút mạng này sẽ chờ trong một khoảng thời gian ngẫu nhiên đồng thời thực hiện giám sát kênh truyền. Nếu nó nghe thấy gói tin REQ được gửi đi từ một nút khác, nó sẽ hủy gói tin REQ của mình. Do vậy số lượng các gói tin REQ được gửi đi trong mạng giảm đáng kể. Khi nhận được một gói REQ, nút nguồn sẽ gửi gói tin DATA chỉ một lần mặc dù nó có thể nhận được nhiều gói tin REQ giống nhau từ nhiều nút mạng.

Hình 2.6: Các hoạt động chính của SPIN-BC

Các hoạt động chính của SPIN-BC được minh họa như hình 2.6. Trong ví dụ này, nút A có dữ liệu cần gửi đi, vì vậy nó gửi quảng bá gói tin ADV cho các nút lân cận là B, C, D, E và F (1). Cả 5 nút lân cận đều nhận được gói tin ADV, nhưng nút C phát đi trước gói tin REQ yêu cầu A gửi gói dữ liệu thực cho nó (2). Vì đây là gói tin được gửi đi quảng bá nên nút B và D cùng nghe thấy. Mặc dù B và D cùng mong muốn nhận được dữ liệu thực nhưng chúng vẫn ngừng ngay việc gửi gói tin REQ của mình. Nút E và F không quan tâm đến dữ liệu nên bỏ qua các gói tin này. Khi nhận được REQ từ C, nút A gửi gói dữ liệu thực cho C tuy nhiên do môi trường truyền quảng bá nên cả B và D cùng nhận được gói tin đó (3). Kết quả là, SPIN-BC giảm thiểu được năng lượng tiêu thụ và tổng chi phí trong trường hợp có nhiều nút lân cận cùng quan tâm tới một gói dữ liệu.

SPIN-RL được phát triển từ SPIN-BC khi bổ sung thêm tính tin cậy và cải thiện lỗi do suy hao kênh truyền. Độ tin cậy đạt được bằng cách gửi quảng bá lặp lại theo định kỳ các gói tin ADV và REQ. Nếu một nút mạng gửi REQ để yêu cầu nhận gói dữ liệu thực nhưng sau một khoảng thời gian nhất định mà chưa nhận được thì nút sẽ gửi REQ lại lần nữa. Mặt khác, độ tin cậy còn được cải thiện bằng cách gửi định kỳ các gói tin ADV để giảm thiểu số lần gửi lại gói tin DATA. Sau khi gửi DATA, nút sẽ chờ trong một khoảng thời gian cố định trước khi đáp ứng các yêu cầu khác cho cùng một dữ liệu tương tự.

SPIN khắc phục được các nhược điểm chính của Flooding và Gossiping. Tuy nhiên, sự đàm phán của SPIN chỉ mang tính cục bộ do đó không đảm bảo các nút có

nhu cầu đều nhận được gói tin quảng bá và gói dữ liệu mong muốn. Tình huống này có thể xảy ra nếu các nút trung gian không quan tâm tới gói dữ liệu và bỏ qua gói tin ADV tương ứng. Điều này hạn chế việc áp dụng SPIN cho các ứng dụng đặc biệt như giám sát xâm nhập và bảo vệ các cơ sở hạn tầng quan trọng.

Một phần của tài liệu Đánh giá hiệu suất của giao thức định tuyến trong mạng cảm biến không dây (Trang 30)