1 ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
TỐNG ĐỨC THUẬN
NGHIÊN CỨU, ĐÁNH GIÁ HIỆU NĂNG
CỦA GIAO THỨC ĐỊNH TUYẾN CHO MẠNG
CẢM BIẾN KHÔNG DÂY VỚI HỖ TRỢ 6LOWPAN
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU, ĐÁNH GIÁ HIỆU NĂNG
CỦA GIAO THỨC ĐỊNH TUYẾN CHO MẠNG
CẢM BIẾN KHÔNG DÂY VỚI HỖ TRỢ 6LOWPAN
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH
MÃ SỐ: 60 48 15
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS. TS. NGUYỄN VĂN TAM Hà Nội - 2013
2.2. Tổng quan về IPv6 45
2.2.1. Đặc điểm 45
2.2.2. Phân loại địa chỉ IPv6 47
2.2.3. Chuẩn IEEE 802.15.4 49
4
2.2.4. Giao thức 6LoWPAN 50
2.3. Kết luận 54
CHƢƠNG 3. MÔ PHỎNG VÀ PHÂN TÍCH SỐ LIỆU 55
3.1. Phƣơng pháp đánh giá 55
3.1.1. Mô hình đánh giá 55
3.1.2. Kết quả phân tích 55
3.1.3. Phƣơng pháp đánh giá 56
3.2. Cài đặt mạng 57
3.3. Thống kê số liệu 58
3.4. Quá trình thực hiện mô phỏng 59
3.5. Phân tích số liệu 61
3.5.1. So sánh các hàm mục tiêu 61
3.5.2. Đánh giá hiệu năng của giao thức RPL 63
3.5.2.1. Ảnh hưởng của tham số DIO Interval Minimum 63
3.5.2.2. Ảnh hưởng của tham số DIO Interval Doubling 65
3.5.2.3. Ảnh hưởng của tham số Duty-Cycling Interval 68
3.5.2.4. Ảnh hưởng của tần suất thông điệp ứng dụng 70
3.6. Đánh giá và khuyến nghị 73
3.6.1. Đánh giá 73
3.6.2. Khuyến nghị 74
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 79
TÀI LIỆU THAM KHẢO 80
5
Objective Functions
ETX
Expected Transmission Count
LBR
LLN Border Router
UDGM
Unit Disk Graph Model
RDC
Radio Duty Cycling
ROLL
Routing Over Low Power and Lossy Network
6
DANH MỤC CÁC HÌNH ẢNH VÀ BẢNG BIỂU
Hình 1.1: Cấu trúc mạng cảm biến[1] 12
Hình 1.2: Cấu tạo node cảm biến 14
Hình 1.3: Kiến trúc giao thức mạng cảm biến 15
Hình 1.4: Cấu trúc phẳng của mạng cảm biến [2] 16
Hình 1.5: Cấu trúc tầng của mạng cảm biến [2] 17
Hình 1.6: Cấu trúc mạng phân cấp chức năng theo lớp [2] 17
Hình 1.7: Phƣơng thức sử dụng bộ nhớ của Multithreads và Events [10] 20
Hình 1.8: Các luồng điều khiển trong Threads và events [10] 20
Hình 1.9: Ví dụ Protothreads [10] 21
Hình 1.10: Kiến trúc giao thức mạng trong Contiki 22
Hình 1.11: Sơ đồ hoạt động các ứng dụng trong Contiki. 22
Hình 1.12: uIP STACK 23
Hình 1.13: RIME STACK 24
Hình 1.14: Sơ đồ module trong RIME 25
Hình 2.25: Cấu trúc header của cơ chế UDP/6LoWPAN 53
Hình 2.26: Sự khác nhau về cấu trúc bản tin giữa UDP/IPv6 và UDP/6LoWPAN 54
Bảng 3.1: Các tham số mô phỏng 58
Hình 3.1: Tiến trình thực hiện mô phỏng 60
Hình 3.2: So sánh độ trễ mạng 61
Hình 3.3: So sánh mức tiêu thụ năng lƣợng 62
Hình 3.4: Só sánh tỷ lệ truyển gói tin 62
Hình 3.5: Thời gian thiết lập mạng với tham số DIO Interval 63
Hình 3.6: Quản lý lƣu lƣợng với tham số DIO Interval 63
Hình 3.7: Mức độ tiêu thụ năng lƣợng với tham số DIO Interval 64
Hình 3.8: Độ trễ mạng với tham số DIO Interval Minimum 64
Hình 3.9: Tỷ lệ truyền gói tin với tham số DIO Interval 65
Hình 3.10: Thời gian thiết lập mạng với tham số DIO Doubling 66
Hình 3.11: Lƣu lƣợng mạng với tham số DIO Doubling 66
Hình 3.12: Mức độ tiêu thụ năng lƣợng với tham số DIO Doubling 66
Hình 3.13: Đỗ trễ mạng với tham số DIO Doubling 67
Hình 3.14: Tỷ lệ truyền gói tin với tham số DIO Doubling 67
Hình 3.15: Thời gian thiết lập mạng với tham số Duty Cycling Interval 68
Hình 3.16: Lƣu lƣợng mạng với tham số Duty Cycling Interval 68
8
Hình 3.17: Mức độ tiêu thụ năng lƣợng với tham số Duty Cycling Interval 69
Hình 3.18: Độ trễ mạng với tham số Duty Cycling Interval 69
Hình 3.19: Tỷ lệ truyền gói tin với tham số Duty Cycling Interval 70
Hình 3.20: Thời gian thiết lập mạng với tần suất gửi thông điệp 71
Hình 3.21: Quản lý lƣu lƣợng với tần suất gửi thông điệp 71
Hình 3.22: Mức độ tiêu thụ năng lƣợng với tần suất gửi thông điệp 72
Hình 3.23: Độ trễ mạng với tần suất gửi thông điệp 72
Hình 3.24: Tỷ lệ truyền gói tin với tần suất gửi thông điệp 73
Bảng 3.2: So sánh hàm mục tiêu OF0 và ETX 73
DIO, DAO, DIS. Quá trình khởi tạo mạng và định tuyến của giao thức RPL
Chƣơng 3. Xây dựng mô hình mô phỏng bằng công cụ Cooja. Thống kê phân
tích số liệu, đƣa ra nhƣng đánh giá và khuyến nghị.
10
CHƢƠNG 1. TỔNG QUAN WSN VÀ ỨNG DỤNG
1.1. Khái niệm chung về mạng cảm biến không dây
Mạng cảm biến không dây (wireless sensor network - WSN) là một mạng bao
gồm một số lƣợng lớn các node cảm biến có kích thƣớc nhỏ gọn, giá thành thấp, có
sẵn nguồn năng lƣợng, có khả năng tính toán và trao đổi với các thiết bị khác nhằm
mục đích thu thập thông tin toàn mạng để đƣa ra các thông số về môi trƣờng, hiện
tƣợng và sự vật mà mạng quan sát.
Các node cảm biến là các sensor có kích thƣớc nhỏ, thực hiện việc thu phát dữ
liệu và giao tiếp với nhau chủ yếu qua kêch vô tuyến. Các thành phần của node cảm
biến bao gồm: các bộ vi xử lý rất nhỏ, bộ nhớ giới hạn, bộ phận cảm biến, bộ phận thu
phát không dây, nguồn nuôi. Kích thƣớc của các con cảm biến này thay đổi tùy thuộc
vào từng ứng dụng.
Mạng cảm biến không dây ra đời đáp ứng nhu cầu thu thập thông tin về môi
trƣờng, khí hậu, phát hiện và do thám việc tấn công bằng hạt nhân, sinh học và hóa
học, chuẩn đoán sự hỏng hóc của máy móc, thiết bị, …để từ đó phân tích, xử lý và đƣa
ra các phƣơng án phù hợp hoặc cảnh báo hay đơn thuần chỉ là lƣu trữ số liệu.
Với sự phát triển của công nghệ chế tạo linh kiện điện tử, công nghệ nano, giao
tiếp không dây, công nghệ mạch tích hợp, vi mạch phần cảm biến… đã tạo ra những
con cảm biến có kích thƣớc nhỏ gọn, đa chức năng, giá thành thấp, tiêu thụ năng lƣợng
ít, làm tăng khả năng ứng dụng rộng rãi của mạng cảm biến không dây.
Mạng cảm biến không dây có một số đặc điểm sau:
Phát thông tin quảng bá trong phạm vi hẹp và định tuyến multihop.
Đƣợc triển khai với mật độ sensor lớn.
Cấu hình mạng thƣờng xuyên thay đổi phụ thuộc vào fadinh và hƣ hỏng
1.2.1. Cấu trúc toàn mạng cảm biến không dây
Các node cảm biến đƣợc phân bố trong một trƣờng sensor nhƣ hình 1.1. 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.
Dữ liệu đƣợc định tuyến lại đến các sink bởi một cấu trúc đa điểm nhƣ hình dƣới.
các sink có thể giao tiếp với các node quản lý nhiệm vụ (task manager node) qua mạng
Internet hoặc vệ tinh.
12
Sink là một thực thể, tại đó thông tin đƣợc yêu cầu. Sink có thể là thực thể bên
trong mạng (là một node cảm biến) hoặc ngoài mạng. Thực thể ngoài mạng có thể là
một thiết bị thực sự ví dụ nhƣ máy tính xách tay mà tƣơng tác với mạng cảm biến,
hoặc cũng đơn thuần chỉ là một gateway mà nối với mạng khác lớn hơn nhƣ Internet
nơi mà các yêu cầu thực sự đối với các thông tin lấy từ một vài node cảm biến trong
mạng. Hình 1.1: Cấu trúc mạng cảm biến[1]
Đặc điểm của mạng cảm biến là bao gồm một số lƣợng lớn các node cảm biến,
các node cảm biến có giới hạn và ràng buộc về tài nguyên đặc biệt là năng lƣợng rất
khắc khe. Một số đặc điểm nổi bật trong mạng cảm biến nhƣ sau:
Khả năng chịu lỗi: một số các node cảm biến có thể không hoạt động nữa do
thiếu năng lƣợng, do những hƣ hỏng vật lý hoặc do ảnh hƣởng của môi trƣờng. Khả
năng chịu lỗi thể hiện ở việc mạng vẫn có thể hoạt động bình thƣờng, duy trì những
chức năng của nó ngay cả khi một số node mạng không hoạt động.
Khả năng mở rộng: số lƣợng các node cảm biến là tùy thuộc vào từng ứng dụng
cụ thể, có khi lên đến hàng triệu. Do đó cấu trúc mạng mới phải có khả năng mở rộng
để có thể làm việc với số lƣợng lớn các node này.
Giá thành sản xuất: vì các mạng cảm biến bao gồm một cố lƣợng lớn các node
cảm biến nên chi phí của mỗi node rất quan trọng trong việc điều chỉnh chi phí của
toàn mạng. Nếu chi phí của toàn mạng đắt hơn chi phí triển khai sensor theo kiểu
một số ứng dụng, việc bổ sung nguồn năng lƣợng không thể thực hiện đƣợc. Vì thế
khoảng thời gian sống của các node cảm biến phụ thuộc mạng vào thời gian sống của
pin. Ở mạng cảm biến multihop ad hoc, mỗi một node đóng vai trò kép vừa khởi tạo
vừa định tuyến dữ liệu. Sự trục trặc của một vài node cảm biến có thể gây ra những
thay đổi đáng kể trong cấu hình và yêu cầu định tuyến tại các gói và tổ chức lại mạng.
Vì vậy, việc duy trì và quản lý nguồn năng lƣợng đóng một vai trò quan trọng.
14
Bảo mật: các thông tin về nhiệt độ đối với ứng dụng giám sát môi trƣờng dƣờng
nhƣ vô hại nhƣng việc giữ bí mật thông tin và rất quan trọng. Các hoạt động của một
tòa nhà có thể thu thập đƣợc dễ dàng bằng cách lấy thông tin về nhiệt độ và ánh sáng
của tòa nhà đó. Những thông tin này có thể đƣợc sử dụng để sắp xếp một kế hoạch tấn
công vào một công ty. Do đó, WSN cần có khả năng giữ bí mật các thông tin thu thập
đƣợc. Trong các ứng dụng an ninh, dữ bảo mật trở nên rất quan trọng. không chỉ duy
trì tính bí mật, nó còn phải có khả năng xác thực dữ liệu truyền. Sự kết hợp tính bí mật
và xác thực là yêu cầu cần thiết của cả ba dạng ứng dụng. Việc sử dụng mã hóa và giải
mã sẽ làm tăng chi phí về năng lƣợng và băng thông. Dữ liệu mã hóa và giải mã cần
đƣợc truyền cùng với mỗi gói tin. Điều đó ảnh hƣởng tới hiệu suất ứng dụng do giảm
số lƣợng dữ liệu lấy từ mạng và thời gian sống mong đợi.
1.2.2. Cấu trúc của node cảm biến
Mỗi node cảm biến đƣợc cấu thành bởi 4 thành phần cơ bản (xem hình 1.2):
Đơn vị cảm biến (sensing unit)
Đơn vị xử lý (processing unit)
Đơn vị truyền dẫn (transceiver unit)
Bộ nguồn (power unit)
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ƣ là hệ thống định vị (location finding system), bộ phát nguồn (power generator) và
bộ phận di động (mobilizer).
Các đơn vị cảm biến (sensing units) bao gồm cảm biến và bộ chuyển đổi tƣơng
tự - số. 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
nhận ở cùng một thời điểm.
Lớp vật lý: có nhiệm vụ lựa chọn tần số, tạo ra tần số sóng mang, phát hiện tín
hiệu, điều chế và mã hóa tín hiệu.
Lớp liên kết dữ liệu: lớp này có nhiệm vụ ghép các luồng dữ liệu, phát hiện các
khung dữ liệu, cách truy nhập đƣờng truyền và điều khiển lỗi.
Lớp mạng: lớp mạng của cảm biến đƣợc thiết kế tuân theo nguyên tắc sau:
Hiệu quả năng lƣợng luôn luôn đƣợc coi là vấn đề quan trọng.
Mạng cảm biến chủ yếu tập trung dữ liệu.
Tích hợp dữ liệu chỉ đƣợc sử dụng khi nó không cản trở sự cộng tác có
hiệu quả của các node cảm biến.
Lớp truyền tải: chỉ cần thiết khi hệ thống có kế hoạch đƣợc truy cập thông qua
mạng Internet hoặc các mạng bên ngoài khác.
Lớp ứng dụng: tùy theo nhiệm vụ cảm biến, các loại phần mềm ứng dụng khác
nhau có thể đƣợc xây dựng và sử dụng ở lớp ứng dụng.
1.2.4. Hai cấu trúc đặc trƣng của mạng cảm biến
1.2.4.1. Cấu trúc phẳng
Trong cấu trúc phẳng (flat architectute) (hình 1.4): tất cả các node đều ngang
hàng và đồng nhất trong hình dạng và chức năng. Các node giao tiếp với sink qua
multihop sử dụng các node ngang hàng làm bộ tiếp sóng.
Hình 1.4: Cấu trúc phẳng của mạng cảm biến [2]
Với phạm vi truyền cố định, các node gần sink hơn sẽ đảm bảo vai trò của bộ tiếp
sóng đối với một số lƣợng lớn nguồn. Giả thiết rằng tất cả các nguồn đều dùng cùng
17
một tần số để truyền dữ liệu, vì vậy có thể chia sẻ thời gian. Tuy nhiên cách này chỉ có
hiệu quả với điều kiện là có nguồn chia sẻ đơn lẻ, ví dụ nhƣ thời gian, tần số.
1.2.4.2. Cấu trúc tầng
Trong Cấu trúc tầng (tiered architecture) (hình 1.5): các cụm đƣợc tạo ra giúp các
tài nguyên trong cùng một cụm gửi dữ liệu single hop hay multihop (tùy thuộc vào
cận là dùng một kênh đơn lẻ trong cấu trúc phân cấp, trong đó các node ở cấp thấp hơn
tạo thành một cụm xung quanh trạm gốc. Trong trƣờng hợp này, dung lƣợng của mỗi
lớp trong cấu trúc tầng và dung lƣợng của mỗi cụm trong mỗi lớp xác định là độc lập
với nhau.
1.3. Ứng dụng mạng cảm biến không dây
Mạng cảm biến đƣợc ứng dụng trong nhiều lĩnh vực khác nhau, và thƣờng phát
huy hiệu quả cao trong các điều kiện:
Môi trƣờng khắc nghiệt, địa hình khó khăn (ví dụ: khu vực rừng núi,
vùng nhiễm phóng xạ…).
Cần giám sát các giá trị biến đổi theo thời gian (nhiệt độ, độ ẩm trong
môi trƣờng…).
Khu vực rộng lớn (ví dụ: rừng, các tòa nhà….).
19
1.4. Hệ điều hành Contiki
Hệ điều hành Contiki đƣợc lập trình bằng ngôn ngữ C, hoạt động dựa trên cơ chế
event - driven và có những đặc điểm phù hợp với các hệ thống nhúng và mạng cảm
biến không dây:
Contiki đƣợc chia thành nhiều modul hoạt động độc lập. Nhờ đó các ứng
dụng có thể sử dụng các modul một cách linh động và chỉ load những
modul cần thiết.
Cơ chế hoạt động điều khiển sự kiện làm giảm năng lƣợng tiêu hao và
hạn chế dung lƣợng bộ nhớ cần sử dụng.
Có thể sử dụng IP trong mạng cảm biến thông qua uIP stack đƣợc xây
dựng dựa trên nền TCP/IP.
Có những modul cho phép ƣớc lƣợng và quản lý năng lƣợng một cách
hiệu quả.
Các giao thức tƣơng tác giữa các lớp và các node trong mạng dễ dàng
hơn.
Sử dụng RIME stack phục vụ các giao thức dành cho mạng năng lƣợng
Trong API của Contiki bao gồm 4 loại Protothreads cơ bản:
21
PT_INIT (pt): khởi tạo một Protothread.
PT_BEGIN (pt): bắt đầu một Protothread.
PT_WAIT_UNTIL (pt, điều kiện): điều khiển đợi một sự kiện.
PT_END (pt): kết thúc một Protothread.
Hình 1.9 là một ví dụ về Protothreads
Hình 1.9: Ví dụ Protothreads [10]
1.4.2. Kiến trúc giao thức mạng trong Contiki
Contiki cung cấp các ứng dụng trên nền IP gồm cả IPv4 và IPv6 thông qua 2
stack giao tiếp: uIP và Rime. Các ứng dụng có thể hoạt động trên một trong hai giao
thức uIP hoặc Rime, đồng thời trên cả hai giao thức hoặc có thể hoạt động không dựa
trên giao thức nào. Bên cạnh đó, các ứng dụng uIP có thể hoạt động dựa trên Rime và
ngƣợc lại, các ứng dụng trên nền Rime cũng có thể hoạt động dựa trên nền uIP (hình
1.10).
22 Hình 1.10: Kiến trúc giao thức mạng trong Contiki
Sơ đồ hoạt động của các ứng dụng trong Contiki đƣợc chỉ ra trong hình 1.11
Hình 1.11: Sơ đồ hoạt động các ứng dụng trong Contiki.
1.4.2.1. uIP STACK
Ngày nay, cùng với sự thành công của Internet, giao thức TCP/IP đã trở thành
tiêu chuẩn toàn cầu trong truyền thông. TCP/IP là giao thức cơ bản đƣợc sử dụng cho
những mục đích truyền tải các trang Web, gửi – nhận email, gửi file và những mạng
Peer – to - peer thông qua mạng Internet. Đối với các hệ thống nhúng, nếu sử dụng
23
Hoàn toàn miễn phí cả trong thƣơng mại và phi thƣơng mại.
Tƣơng thích với các RFC về triển khai giao thức TCP/IP, bao gồm điều
khiển luồng, tái kết hợp mảnh và ƣớc lƣợng thời gian truyền lại gói.
1.4.2.2. RIME STACK
RIME stack (hình 1.13) đƣợc xây dựng nhằm cung cấp cho mạng cảm biến năng
lƣợng thấp, đƣợc thiết kế với dung lƣợng nhỏ, các module không quá phức tạp.
Hình 1.13: RIME STACK
Đặc điểm của RIME:
Phân chia thành nhiều module khá đơn giản với kích thƣớc nhỏ (kích
thƣớc code từ 114 đến 598 byte) (hình 1.14).
Xây dựng nhiều module giao tiếp đơn giản:
o broadcast, unicast single hop.
o Định tuyến multihop: mesh, collect.
25 Hình 1.14: Sơ đồ module trong RIME
Các chức năng phức tạp đƣợc thực hiện qua các phân lớp đơn giản.
Sử dụng kênh tần số cố định cho từng kiểu giao tiếp.
Ví dụ: unicast ↔ unicast trên kênh 155,…
Sử dụng các hàm callback để thực hiện các hàm xử lý khi nhận đƣợc gói
tin, bộ định thời hết hạn, kết nối lỗi,…
Kết nối phải đƣợc khởi tạo trƣớc khi sử dụng.
Sử dụng một bộ đệm gói cho tất cả các gói đến và gửi đi (hình 1.15).
Hình 1.15: Bộ đệm và Thao tác gói trong RIME