Nó mở ra những hướng nghiên cứu và ứng dụng mới trong lĩnh vực mạng tùy biến không dây, có thể kể tới những lĩnh vực như: ngôi nhà thông minh, thành phố thông minh hay giám sát môi trườn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Nguyễn Văn Bình
ĐỊNH TUYẾN ĐA ĐƯỜNG CHO INTERNET OF THINGS
LUẬN VĂN THẠC SĨ KỸ THUẬT Kiến trúc máy tính và Truyền thông
Hà Nội – Năm 2016
Trang 2Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
Nguyễn Văn Bình
ĐỊNH TUYẾN ĐA ĐƯỜNG CHO INTERNET OF THINGS
Chuyên ngành: Kiến trúc máy tính & Truyền thông
LUẬN VĂN THẠC SĨ KỸ THUẬT Kiến trúc máy tính & Truyền thông
NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS Ngô Quỳnh Thu
Hà nội, năm 2016
Trang 3Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
MỤC LỤC
MỤC LỤC 3
Lời cam đoan 5
DANH MỤC TỪ VIẾT TẮT 6
DANH MỤC HÌNH VẼ 7
CHƯƠNG 1: TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY 9
VÀ INTERNET OF THINGS 9
1 Giới thiệu về mạng cảm biến không dây 9
1.1 Khái niệm chung 9
1.2 Cấu trúc mạng cảm biến không dây 9
1.2.1 Cấu trúc node cảm biến 9
1.2.2 Đặc điểm mạng cảm biến không dây 10
1.2.3 Mô hình mạng cảm biến không dây 11
1.3 Vấn đề chính trong mạng cảm biến không dây 12
2 Internet of Things - IoT 13
3 Ứng dụng 14
CHƯƠNG 2: TỔNG QUAN VỀ RPL VÀ IPv6 16
1 Tổng quan về IPv6 16
1.1 Đặc điểm 16
1 2 Phân loại địa chỉ IPv6 18
1 2.1 Địa chỉ unicast 18
1.2.2 Địa chỉ Anycast 19
1.2.3 Địa chỉ Multicast 19
2 GIAO THỨC ĐỊNH TUYẾN RPL (Routing Protocol for Low Power and Lossy Network) 20
2 1 Khái niệm, thuật ngữ sử dụng trong RPL 20
2 2 Các bản tin sử dụng trong RPL 23
2 2.1 Bản tin DIS 24
2 2.2 Bản tin DIO 25
II 2.3 Bản tin DAO 25
2 3 Khởi tạo mạng 28
Trang 4Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
2 4 Truyền gói tin 32
2 5 Quản lý neighbor, lựa chọn DAG parent 32
2 6 Tính toán rank và sự di chuyển của các node trong DAG 33
2 7 Thuật toán Trickle timer 34
2 8 Các giao thức định tuyến đa đường dựa trên RPL 36
2.8.1 DMR 36
2.8.2 MDMR 38
CHƯƠNG 3: TÌM HIỂU GIAO THỨC NÂNG CAO 39
1 Cân bằng năng lượng - ELB 39
1 1 Xây dựng DODAG 39
1 2 Cân bằng năng lượng dựa trên hàm mục tiêu 41
1 3 Cân bằng năng lượng sử dụng cơ chế chuyển đổi node parent 43
2 Sửa chữa cục bộ - FLR 44
2 1 Xây dựng DODAG 44
2 2 Cơ chế sửa lỗi cục bộ 44
3 Phương pháp kết hợp giữa ELB và FLR 47
Chương 4: Tìm hiểu hệ thống mô phỏng 50
1 Omnet++ 50
2 Tìm hiểu quá trình mô phỏng và đánh giá kết quả 51
3 Đánh giá hiệu năng 52
3 1 Thiết lập mạng 52
3 2 Phân tích kết quả 53
3 2.1 Đánh giá các giao thức qua tỷ lệ từng loại gói tin 53
3 2 2 Độ trễ gói tin 54
3 2 3 Tỉ lệ giao gói 55
3 2.4 So sánh tỉ lệ mức năng lượng còn lại của từng giao thức 56
CHƯƠNG 5 KẾT LUẬN VÀ CÔNG VIỆC TIẾP THEO 57
TÀI LIỆU THAM KHẢO 58
Trang 5Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Lời cam đoan
Tôi – Nguyễn Văn Bình - cam kết luận văn “Định tuyến đa đường cho Internet
of Things”, chuyên ngành kỹ thuật máy tính và truyền thông là công trình nghiên cứu, tiềm hiểu của bản thân tôi dưới sự hướng dẫn của PGS.TS Ngô Quỳnh Thu
Các nội dung nghiên cứu, tìm hiểu và kết quả trình bày trong luận văn là trung thực, không giống bất kỳ luận văn nào khác Các tài liệu tham khảo, nội dung trích dẫn
đã ghi rõ nguồn gốc
Hà Nội, ngày 26 tháng 10 năm 2016
Tác giả luận văn
Nguyễn Văn Bình
Trang 6Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt Viết đầy đủ
6LoWPAN IPv6 over Low-power Wireless Personal Area Networks
CSMA-CA Carrier Sense Multiple Access – Collision Avoidance
DAG Directed Acyclic Graph
DAO Destination Advertisement Object
DIO DODAG Information Object
DIS DODAG Information Solicitation
DMR DAG-based multipath routing protocol
DODAG Destination Objected DAG
ETX Expected Transmission count
IEEE Institute of Electrical and Electronics Engineers
IETF Internet Engineering Task Force
IoT Internet of Things
IP Internet Protocol
IPv4 Internet Protocol version 4
IPv6 Internet Protocol version 6
LBR LLN Border Router
LLN Low Power and Lossy Network
MAC Medium Access Control
MDMR Multipath routing on DAG-based Mobile sink based on RPL
NDP Neighbor Discovery Protocol
NED Network Description Language
OF Objective Function
OMNeT++ Objective Modular Network Testbed in C++
PDR Package Delivery Ratio
PHR Physical layer Header
PHY Physical layer
QoS Quality of Services
RDC Radio Duty Cycling
RPL IPv6 Routing Protocol for Low-power and Lossy Networks
TCP Transmission Control Protocol
UDP User Datagram Protocol
WPAN Wireless Personal Area Network
WSN Wireless Sensor Network
Trang 7Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
DANH MỤC HÌNH VẼ
Hình 1 Cấu trúc chung của một node cảm biến 9
Hình 2 Cấu trúc chung một mạng cảm biến 11
Hình 3 Mô hình kiến trúc giao thức mạng cảm biến 11
Hình 4 Mối liên kết giữa IoT với thế giới 14
Hình 5 Không gian địa chỉ của IPv6 16
Hình 6 Phân cấp địa chỉ trong IPv6 16
Hình 7 Cấu trúc header của IPv6 17
Hình 8 Địa chỉ Interface trong IPv6 17
Hình 9 Địa chỉ global unicast 18
Hình 10 Địa chỉ link – local 18
Hình 11 Cấu trúc site - local addresses 19
Hình 12 Cấu trúc Unique Local Address 19
Hình 13 Cấu trúc địa chỉ multicast 20
Hình 14 Mô hình RPL DAG 21
Hình 15 RPL INSTANCE và DAG sequence number 23
Hình 16 Cấu trúc bản tin điều khiển RPL 24
Hình 17 cấu trúc bản tin DIS 24
Hình 18 Cấu trúc bản tin DAO 26
Hình 19 Quá trình khởi tạo mạng trên môi trường mô phỏng 29
Hình 20 Quá trình xử lý khi nhận bản tin DIO 30
Hình 21 Thuật toán Trickle timer 35
Hình 22: Cấu trúc định tuyến DMR 37
Hình 23 quá trình xử lý bản tin DIO theo ELB 41
Hình 24 Chuyển dữ liệu theo cơ chế ELB 43
Hình 25 truyền dữ liệu theo FLR 45
Hình 26 Tiếp nhận gói tin theo FLR 46
Hình 27 Chuyển tiếp dữ liệu theo ELB-FLR 48
Hình 28 Tiếp nhận gói tin theo ELB-FLR 49
Hình 29 Giao diện chương trình mô phỏng Omnet ++4.4 IDE 51
Hình 30 Tỷ trọng của từng gói NET 53
Hình 31 Tương quan độ trễ giữa các giao thức 54
Hình 32 Tỉ lệ chuyển gói tin 55
Hình 33 Tỉ lệ node có mức năng lượng (33% or 34%) còn lại mỗi giao thức 56
Trang 8Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
MỞ ĐẦU
1 Lý do lựa chọn đề tài
Những tiến bộ trong khoa học công nghệ gần đây đã mang những ý tưởng tuyệt vời về Internet of Things thành hiện thực, trong đó mạng cảm biến không dây là một nền tảng không thể thiếu Nó mở ra những hướng nghiên cứu và ứng dụng mới trong lĩnh vực mạng tùy biến không dây, có thể kể tới những lĩnh vực như: ngôi nhà thông minh, thành phố thông minh hay giám sát môi trường, cảnh báo thảm họa… Và nhân
tố chính để hiện thực hóa các ứng dụng này là nhờ áp dụng công nghệ IPv6, với khả năng kết nối hàng nghìn tỉ thiết bị thông qua không gian địa chỉ lớn
Thời gian gần đây, giao thức RPL được sử dụng rộng rãi như là giao thức định tuyến chuẩn cho mạng cảm biến không dây sử dụng IPv6 Tuy nhiên, giao thức này vẫn còn rất nhiều vấn đề bỏ ngỏ do các vấn đề liên quan tới hàm mục tiêu, khởi tạo DODAG hay tính toán rank chưa được nghiên cứu và định nghĩa kĩ lưỡng Mặt khác,
do đặc tính của mạng là được tạo nên từ các node bị giới hạn về mặt dung lượng, năng lượng cũng như thông lượng; do đó, ngoài việc chọn được tuyến đường tốt nhất để truyền gói tin về đích, RPL cần bổ sung tính năng tạo thêm một vài tuyến đường khác nhằm cân bằng tải và để dự phòng khi tuyến đường tốt nhất bị lỗi
2 Mục đích của đề tài
Tìm hiểu các khái niệm cơ bản của mạng cảm biến không dây (WSN), Internet
of Things (IoT)
Tìm hiểu RPL, giao thức IPv6 và các giao thức định tuyến dựa trên RPL
Tìm hiểu các giao thức định tuyến đa đường dựa trên RPL nhằm nâng cao hiệu quả năng lượng
Tìm hiểu kết quả và đánh giá hiệu năng của một số giao thức cải tiến
3 Bố cục đề tài được tổ chức như sau:
Chương 1: Tổng quan về mạng cảm biến không dây và Internet of Things
Trình bày một số lý thuyết cơ bản về mạng cảm biến không dây, các đặc trưng của mạng cảm biến và tổng quan về định tuyến trong mạng cảm biến
Chương 2: Tổng quan về RPL và Ipv6
Chương 3: Tìm hiểu một số giao thức định tuyến cải tiến mới dựa trên RPL Chương 4: Tìm hiểu hệ thống mô phỏng Omnet, mô phỏng và đánh giá kết quả Chương 5: Kết luận và đề xuất công việc tiếp theo
Trang 9Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
CHƯƠNG 1: TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY
VÀ INTERNET OF THINGS
1.1 Giới thiệu về mạng cảm biến không dây
1.1.1 Khái niệm chung
- Mạng cảm biến không dây [5] (wireless sensor network – wsn) là mạng liên kết các node với nhau bằng sóng vô tuyến trong đó các node mạng thường là các thiết
bị nhỏ gọn, giá thành thấp với số lượng lớn được phân bố không có hệ thống trên diện tích rộng lớn, sử dụng nguồn năng lượng hạn chế (pin), có thời gian hoạt động lâu dài
và có thể hoạt động trong nhiều môi trường khắc nghiệt khác nhau
- Các node mạng có chức năng cảm biến môi trường xung quanh như: nhiệt độ, ánh sáng, độ ẩm theo dõi hay định vị các mục tiêu Các node giao tiếp với nhau và truyền dữ liệu về trung tâm (base station) một cách gián tiếp bằng kỹ thuật multi – hop
- Lưu lượng trong WSN thường là thấp và không liên tục Do vậy, để tiết kiệm năng lượng, các node thường có nhiều trạng thái hoạt động và trạng thái nghỉ khác nhau Thông thường một node ở trạng thái nghỉ nhiều hơn rất nhiều so với trạng thái hoạt động
1.1.2 Cấu trúc mạng cảm biến không dây
1.1.2.1 Cấu trúc node cảm biến
Mạng cảm biến cấu thành từ các các node cảm biến, cấu trúc chung của một node cảm biến gồm 4 thành phần cơ bản:
Hình 1 Cấu trúc chung của một node cảm biến
Trang 10Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
- Các bộ phận cảm ứng (sensing units) bao gồm cảm biến và bộ chuyển đổi tương tự
số (ADC) Dựa trên những hiện tượng quan sát được, tín hiệu tương tự tạo ra bởi sensor được chuyển sang tín hiệu số bằng bộ ADC, sau đó được đưa vào bộ xử lý
- Các bộ phận xử lý (processing unit): thường được kết hợp với bộ lưu trữ nhỏ (storage unit), quyết định các thủ tục làm cho các node kết hợp với nhau để thực hiện các nhiệm vụ định sẵn
- Các bộ phận thu phát (a transceiver unit): kết nối các node vào mạng, chúng gửi
và nhận dữ liệu thu được từ chính nó tới các node khác hoặc tới node gốc
- Bộ nguồn (power unit): Bộ nguồn có thể là một số loại pin, để node cảm biến
có thời gian sống lâu thì bộ nguồn nên có khả năng nạp điện từ môi trường như pin năng lượng mặt trời
- Ngoài ra có thể có thêm những thành phần khác tùy thuộc vào từng ứng dụng như hệ thống định vị (GPS), bộ phát nguồn, bộ phận di động
- Mỗi node cảm biến có khả năng thu thập dữ liệu và định tuyến lại đến trạm gốc (điểm thu dữ liệu - sink node)
- Giao tiếp không dây multihop: nhằm làm giảm công suất tiêu thụ khi các node giao tiếp không dây với nhau đặc biệt là khi node phát và node thu cách xa nhau thì cần các node trung gian làm node chuyển tiếp
- Khai thác tối ưu năng lượng: để hỗ trợ kéo dài thời gian sống toàn mạng, việc khai thác tối ưu năng lượng là kỹ thuật quan trọng trong mạng cảm biến không dây
- Tự động cấu hình: Mạng cảm biến không dây tự động cấu hình các thông số chẳng hạn như xác định vị trí địa lý của nó thông qua các node khác
- Phối hợp, xử lý dữ liệu trong mạng: trong một số ứng dụng một node cảm biến không thu thập đủ dữ liệu cần mà phải nhiều node cùng cộng tác thì mới thu thập
đủ dữ liệu, khi đó từng node gửi dữ liệu đến sink thì rất tốn băng thông và năng lượng
Do vậy cần kết hợp các dữ liệu trong một vùng rồi mới gửi tới sink
Trang 11Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Hình 2 Cấu trúc chung một mạng cảm biến Hình 2 là một ví dụ về một mạng cảm biến bao gồm một tập hợp các node cảm biến được phân bố tạo nên một trường cảm biến, mỗi node cảm biến có khả năng thu thập dữ liệu
và định tuyến lại đến các Sink (sink là một thực thể, tại đó thông tin được tập hợp, sink có thể
là thực thể bên trong mạng như một node cảm biến hoặc bên ngoài mạng như là một máy tính xách tay tương tác với mạng cảm biến) nơi mà các thông tin toàn mạng được gửi về, tập hợp
xử lý và truy xuất ra bên ngoài
1.1.2.3 Mô hình mạng cảm biến không dây
Mô hình kiến trúc giao thức áp dụng cho mạng cảm biến không dây được trình bày trong Hình 3.Kiến trúc giao thức mạng WSNs bao gồm các lớp quản lý các giao thức về truyền thông và các mặt phẳng quản lý
Hình 3 Mô hình kiến trúc giao thức mạng cảm biến
Trang 12Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Lớp vật lý: quy định các chuẩn kết nối không dây cho mạng WSNs bằng cách lựa chọn tần số mạng hoạt động, tạo ra tần số sóng mang, phát hiện tín hiệu, điều chế
Về mặt phẳng quản lý, người ta chia làm ba mặt phẳng trong đó:
Mặt phẳng quản lý công suất: đảm bảo các vấn đề về năng lượng, cách thức node hoạt động để có hiệu quả sử dụng năng lượng là tốt nhất
Mặt phẳng quản lý di động: quản lý sự di chuyển của các node cảm biến, theo dõi sự di chuyển của chúng
Mặt phẳng quản lý nhiệm vụ: sẽ phân bổ đều các chức năng cảm biến cho node, chỉ các node ở vùng mà ta quan tâm thì hoạt động
1.1.3 Vấn đề chính trong mạng cảm biến không dây
Khi ứng dụng mạng cảm biến không dây thì việc duy trì năng lượng sử dụng và quản lý nguồn năng lượng đóng một vai trò hết sức quan trọng, nó quyết định thời gian sống của mạng Vì vậy, trong việc nghiên cứu, ứng dụng và phát triển mạng cảm biến không dây chúng ta cần đặc biệt quan tâm hai vấn đề này:
- Duy trì năng lượng sử dụng: Nút cảm biến có khả năng tự xử lý và truyền thông radio trong phạm vi rất thấp, các node tiêu thụ năng lượng rất thấp[6], [7], [8] Phạm vi này sẽ giảm theo thời gian do sự suy giảm năng lượng của node Do đó, dẫn tới sự kết nối không ổn định giữa các nút cảm biến của mạng Kết quả là đường truyền bị lỗi khi phạm vi của node parent giảm khá lớn và làm cho nó ở ngoài phạm vi giám sát của node children RPL cung cấp một cơ chế quảng bá định kỳ địa chỉ ICMPv6 để cập nhật thông
Trang 13Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
tin node parent và sửa chữa càng nhanh càng tốt Tuy nhiên, số lượng các gói được gửi trong giai đoạn này là khá lớn
- Cân bằng tải: để đạt được yêu cầu duy trì năng lượng hoạt động trong thời gian dài, các node mạng cần phải tiêu thụ năng lượng rất thấp Việc tiêu thụ năng lượng thấp chỉ đạt được bằng cách kết hợp các thành phần cứng năng lượng thấp và chu trình hoạt động ngắn Trong thời gian hoạt động, truyền thông radio sẽ tiêu thụ một phần năng lượng đáng kể trong tổng mức tiêu thụ năng lượng của node mạng.Khi thực hiện giao thức định tuyến vấn đề năng lượng truyền cần được xem xét vì nó có tác động đáng kể tới tuổi thọ của node cảm biến và mạng
1.2 Internet of Things - IoT
Cụm từ “Internet of Things - IoT” được đưa ra bởi các nhà sáng lập Mit
Auto-ID center đầu tiên vào năm 1999 và 2001 bởi Kevin Ashton và David L.Brock Trong
đó Auto-ID chỉ các kỹ thuật xác minh để tự động hóa gồm: mã vạch, thẻ thông minh, cảm biến, nhận dạng tiếng nói, sinh trắc học Từ năm 2003 trở đi kỹ thuật Auto-ID trong các hoạt động chính là Radio frequency Identification – RFID Mục tiêu lúc đó
là cần xây dựng mạng lưới kết nối máy tính với tất cả các vật thể - “Things” gồm phần cứng, phần mềm, các giao thức, ngôn ngữ mô tả đối tượng theo cách máy tính có thể hiểu được, cảm giác và phản ứng lại
IoT có thể coi như một cơ sở hạ tầng mạng toàn cầu với khả năng tự cấu hình dựa trên các tiêu chuẩn và giao thức tương thích trong đó các Things được tích hợp trong mạng lưới thông tin
Trong IoT, “Things” liên lạc với nhau và với môi trường bằng cách trao đổi dữ liệu và thông tin cảm nhận được về môi trường với việc tự phản ứng với các sự kiện của môi trường và tương tác với môi trường bằng cách chạy các tiến trình, kích hoạt các hoạt động và tạo ra các dịch vụ có hoặc không có sự tác động của con người
“Things” sẽ phát hiện và khám phá lẫn nhau, tận dụng lợi thế của nhau, qua đó mở rộng phạm vi cũng như độ tin cậy của các dịch vụ Như vậy, IoT cho phép con người
và mọi thứ kết nối mọi lúc, mọi nơi tại bất kỳ đâu và với bất kỳ ai, sử dụng bất kỳ kết nối mạng nào và dịch vụ gì như trong hình dưới đây:
Trang 14Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Hình 4 Mối liên kết giữa IoT với thế giới
1.3 Ứng dụng
Với lợi ích khai thác từ mạng cảm biến liên kết các “Things” trong IoT thì ứng dụng trong thực tiễn là vô cùng đa dạng và rộng lớn như:
* Ứng dụng trong quân sự và an ninh quốc gia
• Giám sát chiến trường
• Bảo vệ an ninh cho các công trình trọng yếu
• Ứng dụng trong quân đội
• Thông tin, giám sát, ñiều khiển
• Theo dõi mục tiêu
• Phát hiện phóng xạ hạt nhân
• Giám sát dưới nước, trên không
• Hệ thống radars
• Rà soát bom mìn
* Ứng dụng trong bảo vệ môi trường
• Phát hiện hoạt ñộng núi lửa
• Giám sát cháy rừng
• Giám sát dịch bệnh
• Sử dụng hiệu quả tài nguyên thiên nhiên
• Cảm biến dùng trong nông nghiệp
* Ứng dụng trong thương mại
• Điều khiển không lưu
Trang 15Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
• Quản lý cầu đường
• Quản lý kiến trúc và xây dựng
• Điều khiển nhiệt độ
• Quản lý tải trong tiêu thụ ñiện năng
• Hệ thống tự động
• Cảm biến các chất hóa học, sinh học, nguyên tử
• Các hệ thống nhận dạng bằng sóng radio (RFID tags)
• Quản lý năng lượng
• Điều khiển nhiệt ñộ
• Quản lý sản xuất
• Robot tự hành
• Đo lượng khí gas, nước, điện…
• Hệ thống xử lý vật liệu (hóa học, gas, nhiệt …)
“things”.Hai vấn đề này sẽ được trình bày trong chương 2 dưới đây
1.4 Kết luận
Chương 1 đã đề cập đến những lý thuyết tổng quan về WSN, cấu trúc, đặc điểm
và ứng dụng của WSN trong thực tiễn Đồng thời, trình bày về Internet of Things với
xu hướng phát triển, ứng dụng to lớn trong đời sống, trong công nghiệp, y tế, nông nghiệp…và những thách thức đặt ra
Trang 16Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
CHƯƠNG 2: TỔNG QUAN VỀ RPL VÀ IPv6
2.1 Tổng quan về IPv6
Ngày nay, cùng với sự phát triển của các ứng dụng trên nền Internet, việc cung cấp địa chỉ với IPv4 ngày càng trở nên hạn hẹp, đó là nguyên nhân IPv6 được phát triển và đưa vào ứng dụng với những đặc điểm ưu việt hơn
2.1.1 Đặc điểm
IPv6 được thiết kế với những đặc điểm như sau [9], [20]:
Mở rộng không gian địa chỉ: IPv6 sử dụng 128 bit để đánh địa chỉ (hình 5), thay vì chỉ sử dụng 32 bit như trong IPv4
Hình 5 Không gian địa chỉ của IPv6
• Tăng khả năng phân cấp địa chỉ: sử dụng 64 bit đầu tiên làm mã nhận dạng mạng, 64 bit cuối làm địa chỉ Interface, nhằm mục đích phân biệt các interface trong cùng một mạng
Hình 6 Phân cấp địa chỉ trong IPv6
• Header được xây dựng đơn giản hơn: có chiều dài cố định và ít trường hơn IPv4, tăng tốc độ xử lý,…
Trang 17Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Hình 7Cấu trúc header của IPv6
• Đơn giản hóa việc đặt địa chỉ host: sử dụng 64 bit để đặt địa chỉ host, trong đó sử dụng 48 bit địa chỉ MAC và đệm vào chuỗi FF:FE để tạo địa chỉ host duy nhất trong mạng
• Tăng khả năng di động: Địa chỉ IPv6 được thiết kế với tính di động được tích hợp vào trong Mobile IP cho phép các hệ thống đầu cuối thay đổi vị trí mà không mất các kết nối Đây là điểm rất cần thiết cho những sản phẩm wireless chẳng hạn như IP phone và các hệ thống GPS,
• Tăng khả năng bảo mật: IPv6 tích hợp tính năng bảo mật bằng cách sử dụng 2 header mở rộng: (AH) Authentication header và Encrypted Security payload (ESP)
• Quá trình tự động cấu hình đơn giản hơn
• Hiệu suất hoạt động tối ưu hơn
Hình 8Địa chỉ Interface trong IPv6
Trang 18Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
2.1 2 Phân loại địa chỉ IPv6
Địa chỉ IPv6 được chia làm 3 loại chính:
2.1.2.1 Địa chỉ unicast
Được sử dụng để xác định một Interface Một gói tin có đích đến là một địa chỉ unicast thông qua Routing sẽ chuyển đến một Interface duy nhất trong mạng
Nhóm địa chỉ unicast được chia làm 4 nhóm nhỏ:
a Global Unicast address
Địa chỉ này được sử dụng để hỗ trợ cho các ISP - Internet Service Provider
Hình 9 Địa chỉ global unicast
• TLA ID (Top Level Aggregation): xác định nhà cung cấp cao nhất trong hệ
thống các nhà cung cấp dịch vụ
• Res: chưa được sử dụng
• NLA ID (Next Level Aggregation): Xác định nhà cung cấp tiếp theo trong
hệ thống các nhà cung cấp dịch vụ
• SLA ID (Site Level Aggregation): Xác định các site để tạo các subnet
• Interface ID: địa chỉ của Interface trong subnet
b Link – local Addresses
Là loại địa chỉ được sử dụng cho các host khi chúng muốn giao tiếp với các host neighbor khác trong cùng một mạng Tất cả các IPv6 của các interface đều có địa chỉ link local Trong địa chỉ link – local, 64 bit địa chỉ đầu tiên luôn cố định (prefix: fe80::/64), 64 bit cuối là địa chỉ của Interface Các router không thể chuyển bất kỳ gói tin nào có địa chỉ đích là một địa chỉ link – local
Hình 10 Địa chỉ link – local
Trang 19Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
c Site – local address
Là loại địa chỉ được sử dụng trong những hệ thống nội bộ (Intranet) Phạm vi sử dụng là trong cùng một site Loại địa chỉ này luôn có prefix cố định là FEC0::/10 (10 bit đầu tiên)
Hình 11 Cấu trúc site - local addresses
d Unique local address
Là địa chỉ được sử dụng để định tuyến giữa các subnet trên cùng một private network 8 bit đầu tiên là Prefix cố định FD00:: /8 40 bit kế tiếp là địa chỉ site có thể gán tùy ý và 16 bit tiếp theo được sử dụng làm địa chỉ subnet trong site
Hình 12 Cấu trúc Unique Local Address
2.1.2.2 Địa chỉ Anycast
Được sử dụng để xác định nhiều Interface.Tuy nhiên, gói có địa chỉ đến là anycast sẽ thông qua việc định tuyến để chuyển đến chỉ một node trong số các Interface có cùng địa chỉ anycast, thông thường là Interface gần nhất
Địa chỉ Anycast là một loại địa chỉ đặc biệt trong IPv6, gói tin chuyển đến địa chỉ Anycast qua quá trình định tuyến được hệ thống chuyển đến giao diện gần nhất Loại địa chỉ này chỉ được sử dụng để đặt cho bộ định tuyến và không được phép đặt cho các host, đồng thời cũng không được sử dụng làm địa chỉ nguồn cho các gói tin IPv6
2.1.2.3 Địa chỉ Multicast
Được sử dụng để xác định nhiều Interface, một gói có địa chỉ đến là địa chỉ multicast sẽ thông qua quá trình định tuyến để chuyển đến tất cả những interface có cùng địa chỉ multicast
Trang 20Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Địa chỉ multicast cũng được sử dụng để nhận dạng một tập hợp các node trong mạng Tuy nhiên khác với địa chỉ Anycast, một gói tin có địa chỉ đích là một địa chỉ Multicast, sẽ được chuyển đến tất cả các node có cùng địa chỉ Multicast đó
Hình 13 Cấu trúc địa chỉ multicast
Trong địa chỉ multicast, 8 bit đầu tiên cố định bằng FF, được sử dụng để nhận biết địa chỉ multicast Trường Scope được mã hóa bởi 4 bít nhằm phân bố các phạm vi nhóm multicast Group ID giúp nhận dạng các nhóm multicast trong phạm vi một scope Cần lưu ý rằng, với địa chỉ multicast, một node trong mạng có khả năng quyết
định có tham gia vào một nhóm multicast hay không
2.2 Giao thức định tuyến RPL (Routing Protocol for Low Power and Lossy Network)
RPL-IPv6 Routing Protocol for Low Power and Lossy Network là giao thức định tuyến được thiết kế cho mạng tổn hao năng lượng thấp nói chung và mạng cảm biến không dây nói riêng
RPL phát triển trên nền IPv6, là giao thức định tuyến động dạng VECTOR, sử dụng và kế thừa nhiều ưu điểm của giao thức TCP/IP
DISTANCE-2.2 1 Khái niệm, thuật ngữ sử dụng trong RPL
RPLxây dựng và sử dụng các DAG (directed acyclic graph) trong mạng để thực hiện quá trình định tuyến Ở đó, mọi liên kết giữa các node trong mạng đều hướng về DAG root và không tạo ra vòng lặp[19]
Trang 21Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Hình 14 Mô hình RPL DAG Các thành phần trong mô hình RPL DAG[18]:
DAG ROOT: là một node trong DAG, có chức năng tập trung và xử lý dữ liệu
từ các node khác trong DAG gửi đến Mọi tuyến liên kết trong DAG đều hướng về và kết thúc tại DAG ROOT
DAG Rank: là thông số cho biết vị trí tương đối của node so với DAG ROOT Những node càng xa DAG ROOT thì có rank càng cao Rank của node có thể được tính thông qua khoảng cách hình học giữa node và DAG ROOT, hoặc có thể được tính toán thông qua những hàm chức năng khác Trong RPL, DAG ROOT luôn có rank bằng 1
Rank được sử dụng nhằm đánh giá mối quan hệ giữa các node trong DAG, từ đó loại bỏ các vòng lặp có thể xảy khi truyền gói tin đến Dag root Hình 13 cho thấy rank của các node trong DAG khi rank được tính bằng số bước nhảy tối thiểu đến DAG ROOT
DAG parent: trong cùng một DAG, node A là parent của node B khi node A kết nối trực tiếp đến node B và A có rank thấp hơn B Khi đó, A có thể đóng vai trò là next hop của B trong quá trình truyền gói về DAG ROOT và B là một node childrent của A
Trang 22Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
DAG sibling: node A là sibling của node B trong một DAG nếu chúng có cùng rank
Ví dụ, trong hình 13, các node (3.2) và (3.4) là sibling của node (3.3); mặt khác, node (3.3) nhận các node (2.1), (2.2), (2.3) là các node parent
DAGID – DAG Identifier: mã nhận dạng của mỗi DAG trong mạng Tất cả các node trong mạng đều lưu DAGID của DAG mà nó là thành viên
Object function (OF): hàm mục tiêu cung cấp các phương thức cho phép một node lựa chọn được DAG phù hợp, tính toán rank và lựa chọn các node parent trong DAG Các hàm mục tiêu được thiết kế theo những quy tắc cụ thể tùy theo mục đích và phương thức định tuyến
Object code point (OCP): là mã nhận dạng tương ứng với một hàm mục tiêu cụ thể OCP được sử dụng trong quá trình kiểm tra các bản tin trong mạng và quá trình tìm kiếm những DAG phù hợp
RPL Instance: là một tập hợp gồm một hoặc nhiều DAG có cơ chế định tuyến giống nhau Mỗi RPL Instance chỉ sử dụng một hàm mục tiêu duy nhất để xây dựng cấu trúc mạng
RPL Instance ID: mã nhận dạng của các Instance, tương ứng với các hàm mục tiêu cụ thể
DAG Grounded: một DAG gọi là grounded nếu DAG gốc có khả năng giao tiếp với một Goal thích hợp
DAG Floating: một DAG gọi là floating khi không thể chuyển dữ liệu hoặc kết nối đến một Goal phù hợp
DAG sequence number: là một bộ đếm tuần tự được sử dụng trong quá trình sửa chữa và làm mới DAG Khi một DAG gốc muốn xây dựng lại một DAG mới, bộ đếm được tăng lên một đơn vị và quảng bá tới các node khác trong mạng
Trang 23Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Hình 15 RPL INSTANCE và DAG sequence number DAG interaction: mỗi DAG ID và DAG sequence number cho phép xác định một DAG interaction Khái niệm này cho phép mỗi node trong mạng phân biệt các DAG mà node đã tham gia với một DAG mà node chưa từng là thành viên.Đồng thời khái niệm DAG interaction cũng cho phép cơ chế tránh các vòng lặp hoạt động hiệu quả hơn
RPL Goal: là một host hoặc một tập hợp gồm nhiều host có khả năng đáp ứng được các hàm mục tiêu, phục vụ việc tập trung dữ liệu từ các DAG hoặc tạo kết nối giữa các DAG với các mạng và ứng dụng ngoài
2.2.2 Các bản tin sử dụng trong RPL
RPL sử dụng ba loại bản tin điều khiển gồm DAG Information Solicitation (DIS), DAG Information Object (DIO), Destination Advertisement Object (DAO) để quảng bá các thông tin định tuyến trong mạng
- DIO là bản tin mang thông tin về DAG, được gửi từ các node parent đến các node children và được sử dụng để xây dựng DAG
- DIS chỉ thực hiện nhiệm vụ quảng bá sự xuất hiện của node và yêu cầu những node khác phản hồi bằng các bản tin DIO
- DAO là bản tin được gửi từ một node children đến các node parent nhằm quảng bá khả năng tham gia định tuyến theo chiều đi xuống của các node trong mạng
Qua quá trình gửi - nhận và xử lý các bản tin ICMP, mỗi node có thể quản lý thông tin các node neighbor trong phạm vi kết nối, đưa ra quyết định tham gia vào
Trang 24Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
DAG phù hợp, lựa chọn các node parent, node sibling, xác định next-hop và gửi gói tin đến DAG root
Dưới đây là cấu trúc chung của một bản tin RPL – ICMP:
Hình 16 Cấu trúc bản tin điều khiển RPL Trường Type (8bit) cho biết dạng của gói tin RPL – ICMP
Trường Code (8bit) được sử dụng để phân biệt các bản tin RPL – ICMP và được định nghĩa như sau:
• Code = 0x01: DAG Information Solicitation (DIS)
• Code = 0x02: DAG Information Object (DIO)
• Code = 0x04: Destination Advertisment Object (DAO)
Trường checksum (16bit): được sử dụng để tính toán tổng số gói
RPL sử dụng các bộ định thời để quản lý tốc độ gửi và số lượng bản tin ICMP trong mạng Những bộ định thời này hoạt động kết hợp giữa chế độ định thời và chế
độ sự kiện Do đó, không những làm giảm số lượng những bản tin ICMP mà vẫn đảm bảo tính linh động của mạng
2.2.2.1 Bản tin DIS
Bản tin DIS (DAG Information Solicitation) được gửi từ những node floating trong mạng nhằm quảng bá sự xuất hiện của node, thăm dò sự xuất hiện của các node neighbor và yêu cầu những node khác phản hổi bằng các bản tin DIO Bản tin DIS được gửi multicast khi node ở trạng thái tự do và được gửi unicast đến một node parent trong DAG khi muốn nhận lại một bản tin unicast DIO nhằm cập nhật các thông tin DAG của node parent đó
Hình 17 cấu trúc bản tin DIS
Trang 25Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Trường InstanceID cho biết Instance mà node gửi DIS tham gia định tuyến Khi một node trong mạng nhận được một bản tin DIS, nó chỉ gửi lại bản tin DIO phản hồi khi có khả năng định tuyến cho InstanceID đó Nhờ đó, khi triển khai mạng có nhiều Instance, có thể giảm đáng kể số lượng bản tin điều khiển trong mạng, tiết kiệm năng lượng và thời gian xử lý của các node
2.2.2.2 Bản tin DIO
DIO (DAG Information Object) là bản tin quan trọng, đóng vai trò quyết định trong việc xây dựng và duy trì DAG, được tạo ra tại các DAG ROOT, mang những thông tin định tuyến của DAG như Instance, rank, metric, OCP, DIO được sử dụng để quảng bá các thông tin định tuyến của một DAG xác định trong mạng, phục vụ quá trình xây dựng DAG
và định tuyến Upward Quá trình nhận và xử lý bản tin DIO cho phép một node nhận diện
và tham gia vào DAG phù hợp Từ đó lựa chọn các node parent, xác định các thông số cấu hình và tiếp tục quảng bá thông tin DAG đến các node khác trong mạng
Bản tin DIO đầu tiên được tạo ra tại DAG ROOT, sau đó được quảng bá đến các node khác trong mạng Các node thành viên trong DAG sử dụng các bản tin DIO nhận được để cập nhật thông tin DAG, lựa chọn parent và quảng bá vị trí của nó trong DAG
Phương thức xử lý bản tin DIO phải tuân theo những nguyên tắc sau:
- Một node chỉ tạo và gửi bản tin sau khi tham gia một DAG xác định
- Những node không phải DAG ROOT chỉ được phép thay đổi giá trị các cờ điều khiển Destination Advartisements Stored (S), DTSN và DAG rank trong bản tin DIO nhận được từ DAG ROOT
- DIO là hợp lệ nếu Instance ID được đáp ứng
Khi một node nhận được một bản tin DIO từ trong mạng, node thực hiện kiểm tra tính hợp lệ của DIO đó, nếu bản tin DIO được đáp ứng, node mới tiếp tục thực hiện những hành động tiếp theo
2.2.2.3 Bản tin DAO
DAO – Destination Advertisment Object là bản tin được sử dụng để quảng bá thông tin của các đích, được gửi từ những node có rank cao hơn đến những node có rank thấp hơn dọc theo DAG
Trang 26Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
DAO được sử dụng nhằm phục vụ cho những ứng dụng đòi hỏi luồng lưu lượng kiểu P2MP và P2P Thông qua việc xử lý thông tin của những bản tin DIO nhận được, DAG ROOT và những node ở gần node gốc có thể quản lý, cập nhật thông tin của những node nằm ở những rank cao hơn trong DAG Từ đó, có thể đưa ra những giải pháp định tuyến theo hướng downward
Hình 18 Cấu trúc bản tin DAO Hình 18 cho thấy cấu trúc của một bản tin DAO được sử dụng trong RPL gồm các trường sau:
• DAO sequence: số bản tin DAO được một node gửi vào mạng
• DAO rank: rank của node tạo bản tin DAO
• RPL Instance ID: Instance của node tham gia định tuyến
• Route Tag: được sử dụng để cung cấp thứ tự ưu tiên khi lưu thông tin các prefix
• Prefix length: chiều dài prefix
• RRcount: cho biết số mục trong Reverse Route Stack – ngăn xếp lưu các mục định tuyến theo hướng downward
• DAO lifetime: thời gian sống của prefix, phục vụ cho việc xác định khả năng kết nối đến prefix
• Destination Prefix: là một trường có chiều dài thay đổi, được sử dụng để nhận dạng một địa chỉ đích, một prefix, hoặc một nhóm địa chỉ multicast trong mạng
• Reverse Route Stack: là trường có chiều dài có thể thay đổi, được sử dụng để lưu thông tin của những địa chỉ prefix tham gia định tuyến Khi một node
Trang 27Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
thêm vào Reverse Route Stack, prefix của node được thêm vào danh sách, đồng thời tăng giá trị RRcount
• Các sub – option được sử dụng nhằm mở rộng các thành phần của bản tin DAO, tùy theo mục đích nghiên cứu và triển khai
Quá trình truyền bản tin DAO
Các bản tin DAO được truyền từ các node ở rank cao đến các node ở rank thấp theo chiều upward, nhằm quảng bá các trạng thái định tuyến downward cho những prefix của những nhóm hoặc những Sub - DAG bên trong DAG Cơ chế định tuyến với DAO chỉ có thể hoạt động khi node đã tham gia ít nhất 1 DAG trong mạng
Cơ chế định tuyến và sử dụng DAO được quyết định bởi DAG ROOT, có thể chỉ được sử dụng trong từng DAG.Cơ chế này được xác định thông qua một số tham số cấu hình được tạo trong bản tin DIO truyền đi từ DAG ROOT
Khi cơ chế này được sử dụng, trong DAG phải có ít nhất một số các node có khả năng lưu những thông tin từ DAO, bao gồm DAG ROOT Khi cơ chế này không được sử dụng, các node trong DAG không được phép tạo và xử lý các bản tin DAO
Bản tin DAO được gửi từ node đến một hoặc một nhóm các DAG parent của node trong DAG Những node có khả năng tham gia định tuyến, thực hiện lưu các thông tin trạng thái lấy được từ Reverse Route Stack vào bảng định tuyến Mỗi mục trong bảng định tuyến cho biết những thông tin trạng thái của các prefix như: địa chỉ Ipv6, địa chỉ Interface, DAO sequence, DAO rank, DAO lifetime,… Nhờ đó, một node có thể xác định trạng thái của những prefix:
• CONNECTED: trạng thái của bản thân node
• REACHABLE: trạng thái của một neighbor, gồm 2 trạng thái:
▪ Confirmed: neighbor được kích hoạt, đã được xác nhận và có khả năng định tuyến
▪ Pending: neighbor được kích hoạt, đang trong quá trình xác nhận, tuy nhiên vẫn có thể sử dụng Khi đó một bộ đếm Retry Counter được sử dụng để kiểm tra trạng thái của node
• UNREACHABLE: mục có trạng thái không thể kết nối và bị loại bỏ
Trang 28Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
Thông qua việc quản lý trạng thái kết nối của các prefix được cập nhật bởi cơ chế quảng bá đích, các node có rank thấp có thể xác định tuyến đường kiểu downward nhằm phục vụ cho những ứng dụng đòi hỏi giao tiếp kiểu Point to multi point hoặc point to point
2.2.3 Khởi tạo mạng
Trong RPL đề cập 2 hướng định tuyến:
- Hướng Upward: hướng từ các node ở xa DAG ROOT hướng về DAG ROOT, đóng vai trò quan trọng then chốt, quyết định tính chất, hiệu năng và hoạt động của mạng
- Hướng Downward: hướng từ DAG ROOT đến các node ở xa hơn
Ở trạng thái ban đầu, các node trong mạng lựa chọn một trong hai chế độ: hoặc chúng giữ trạng thái silent và không gửi bất kỳ bản tin DIO nào cho đến khi chúng tham gia vào một DAG xác định; hoặc ngay lập tức tự thiết lập là DAG ROOT của một floating DAG, sau đó gửi multicast các bản tin DIO đến các node khác trong mạng Những DAG ROOT tự động thiết lập rank bằng 1 (ROOT RANK), sau đó chúng định thời quảng bá các bản tin DIO đến những node neighbor để xây dựng DAG Trong quá trình này, mỗi node cũng có thể gửi multicast DIS đến những node neighbor hoặc chờ nhận những bản tin DIO được gửi đến
Những node gần DAG ROOT nhất khi nhận được DIO từ DAG ROOT sẽ tham gia vào DAG, cập nhật thông tin trong DIO và xác định rank của nó trong DAG Tiếp
đó, node định thời chuyển tiếp các bản tin DIO đến những node neighbor, quảng bá vị trí và DAG mà nó tham gia.Quá trình này được định thời lặp lại liên tục Do đó, quy
mô của DAG được mở rộng tới những node ở xa DAG ROOT và những node trong DAG cập nhật được thông tin của node thành viên xung quanh DAG
Một node ở trạng thái floating (chưa tham gia DAG) sẽ định thời gửi các bản tin DIS tới các node neighbor để quảng bá Instance mà nó có khả năng tham gia, đồng thời yêu cầu các node đáp ứng được phản hồi lại những thông tin về DAG mà chúng tham gia Khi một neighbor nhận được bản tin DIS, nếu đã tham gia một DAG phù hợp với instance trong DIS, nó sẽ phản hồi bằng một bản tin DIO tới node gửi DIS Sự phản hồi này diễn ra ngay sau thời điểm xử lý bản tin DIS mà không cần đợi tới thời điểm định thời gửi bản tin DIO tiếp theo Bên cạnh đó, nếu DIS chứa địa chỉ multicast, node sẽ
Trang 29Định tuyến đa đường cho Internet of Things GVHD: PGS.TS Ngô Quỳnh Thu
khởi động lại bộ định thời DIO để giảm thời gian gửi DIO tiếp theo Cơ chế này giúp quảng bá DAG linh động và hiệu quả hơn
Cơ chế lựa chọn DAG là sự kết hợp giữa cơ chế so sánh độ ưu tiên của các DAG và các quy luật được quy định trong hàm mục tiêu (OF) Độ ưu tiên của DAG được thể hiện thông qua trường DAG preferred trong bản tin DIO gửi tới các DAG ROOT Nhờ đó, mỗi node trong mạng đều có thể lựa chọn những DAG được ưu tiên nhất và thỏa mãn tốt nhất những yêu cầu định tuyến được đặt ra
Hình 19 Quá trình khởi tạo mạng trên môi trường mô phỏng Các quy tắc trong quá trình lựa chọn DAG:
- DAG tham gia phải thỏa mãn các OF của node
- DAG tham gia phải có độ ưu tiên cao nhất và node có rank thấp nhất