Quy trình truyền bản tin từ nút offline đến nút lân cận (nút online) tại hình 3.7. Sau khi nút 8 nhận được bản tin DIO, nút 8 xác thực xem bản tin đó có bắt nguồn từ DODAG root hay không. Nút 8 thực hiện tạo ra một danh sách xóa (drop list) cho tất cả các gói tin RPL được gửi bởi nút cha hiện tại của nó để tránh tình trạng nút cha (có thể là nút hố đen) bằng cách thực hiện các hành động như gửi bản tin DIO mới với thứ hạng giả. Sau đó, nút 8 đã cập nhật thứ hạng của chính nó và chọn nút 5 làm nút cha chuyển tiếp các gói tin ngay lập tức. Nút 8 phản hồi bản tin DIO bằng cách gửi bản tin DAO. Bản tin DAO này chứa mã điều khiển (control code) 0x10, mã hóa (cipher) và nonce. Trong đó, mật mã (cipher) chứa ID cha trước đó (có nghĩa là nút ID = 4 ở giai đoạn này) của nút 8. Khi nút 5 có được thông tin này và cuối cùng, nút 5 gửi bản tin đến DODAG root bằng cách phản hồi gửi bản tin UDP response quy trình thực hiện đã được mô tả tại hình 3.8.
77
Giải mã bản tin DIO
True True
Nhận bản tin DIO với (ControlCODE) == 0x10
Nút offline
Nút lân cận khác với ID cha của nút offline
Kết thúc
Mã hóa bản tin DAOControlMessage và gửi đến nút lân cận False False Nút lân cận PreviousParentID = NodeOffline.ParentID NodeOffline.updateParent(NodeNeighbor) NodeOffline.updateRank(NodeNeighbor.Rank + MinHopRankIncrease)
Thêm ID của nút tấn công vào DropList và gửi bản tin DAO đến nút lân cận
Hình 3.7Sơ đồ truyền bản tin từ nút offline đến nút lân cận (nút online)
Nút lân cận Nút gốc
Cập nhật bảng định tuyến và gửi bản tin UDPResponseMessage trả về Nhận bản tin DAOControlMessage với
ControlCODE = 0x10