Upload
van-ngu-nguyen
View
65
Download
4
Embed Size (px)
Citation preview
TR
ẦN
HẢ
I YẾ
N
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------
Trần Hải Yến
HỆ
TH
ỐN
G T
HÔ
NG
TIN
THUẬT TOÁN ĐỊNH TUYẾN TỐI ƢU NĂNG LƢỢNG TRONG
MẠNG CẢM BIẾN ZIGBEE
LUẬN VĂN THẠC SĨ KỸ THUẬT
2012 –
2013
HÀ NỘI
2013
HÀ NỘI - 2014
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------
Trần Hải Yến
THUẬT TOÁN ĐỊNH TUYẾN TỐI ƢU NĂNG LƢỢNG TRONG
MẠNG CẢM BIẾN ZIGBEE
Chuyên ngành: Hệ thống thông tin
Mã số : 60.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƢỜI HƢỚNG DẪN KHOA HỌC :
PGS.TS Đặng Văn Chuyết
HÀ NỘI - 2014
i
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Nội dung
của luận văn có tham khảo và sử dụng các tài liệu, thông tin đƣợc đăng tải trên những
tạp chí và các trang web theo danh mục tài liệu. Tất cả các tài liệu tham khảo đều có
xuất xứ rõ ràng và đƣợc trích dẫn hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo
quy định cho lời cam đoan của mình.
Hà Nội, ngày 30 tháng 11 năm 2013
Tác giả luận văn
Trần Hải Yến
ii
LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến PGS.TS Đặng Văn Chuyết,
ngƣời đã trực tiếp hƣớng dẫn, tạo mọi điều kiện thuận lợi, tận tình chỉ bảo và định
hƣớng trong suốt quá trình thực hiện luận văn.
Em xin gửi lời cảm ơn chân thành đến toàn thể thầy cô giáo của Học viện Công
nghệ Bƣu chính Viễn thông đã giảng dạy và dìu dắt em trong trong suốt quá trình học
tập tại trƣờng từ khi còn học đại học cho đến sau đại học.
Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những ngƣời đã luôn
ở bên cổ vũ tinh thần, tạo điều kiện thuận lợi để em có thể học tập tốt.
Em xin chân thành cảm ơn!
iii
MỤC LỤC
LỜI CAM ĐOAN ............................................................................................................ i
LỜI CẢM ƠN ................................................................................................................. ii
MỤC LỤC ..................................................................................................................... iii
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................................ v
DANH MỤC CÁC BẢNG ........................................................................................... vii
DANH MỤC CÁC HÌNH VẼ ..................................................................................... viii
MỞ ĐẦU ........................................................................................................................ 1
Chƣơng 1 – TỔNG QUAN VỀ MẠNG CẢM BIẾN ZIGBEE ..................................... 3
1.1. Tổng quan về IEEE 802.15.4 ............................................................................... 3
1.2. Cấu hình mạng theo chuẩn IEEE 802.15.4 .......................................................... 4
1.3. Mạng cảm biến ZigBee theo chuẩn IEEE 802.15.4 ............................................. 5
1.3.1. Khái niệm ...................................................................................................... 5
1.3.2. Ƣu và nhƣợc điểm của ZigBee ..................................................................... 6
1.3.3. Dải tần trong mạng ZigBee ........................................................................... 7
1.4. Cấu trúc mạng cảm biến ZigBee.......................................................................... 9
1.4.1. Tổng quan ...................................................................................................... 9
1.4.2. Kiến trúc cụ thể của mạng ZigBee .............................................................. 10
1.4.3. Mô hình mạng ZigBee ................................................................................ 11
1.4.4. Một số ứng dụng của mạng cảm biến ZigBee ............................................ 12
Chƣơng 2 – THUẬT TOÁN ĐỊNH TUYẾN ............................................................... 14
2.1. Tổng quan định tuyến ........................................................................................ 14
2.1.1. Khái niệm .................................................................................................... 14
2.1.2 Thuật toán định tuyến.................................................................................. 16
2.2. Các thuật toán định tuyến trong mạng ZigBee ................................................. 17
2.2.1. Định tuyến ZigBee ...................................................................................... 18
2.2.2. Quảng bá gói tin trong ZigBee (ZigBee Broadcasting) .............................. 19
2.2.3. Quan hệ nhiều - một – Many-to-one ........................................................... 20
2.3. Thuật toán định tuyến theo yêu cầu – AODV ................................................... 21
iv
2.3.1. Tổng quan .................................................................................................... 21
2.3.2. Tìm đƣờng - Path Discovery ....................................................................... 22
2.3.3. Thiết lập đƣờng ngƣợc ................................................................................ 23
2.3.4. Thiết lập đƣờng tiến .................................................................................... 23
2.3.5. Quản lý bảng định tuyến ............................................................................. 25
2.3.6. Bảo trì đƣờng dẫn ........................................................................................ 25
2.3.7. Quản lý kết nối cục bộ ................................................................................ 26
2.4. Thuật toán hình cây ............................................................................................ 27
2.4.1. Tổng quan .................................................................................................... 27
2.4.2. Cây đơn nhánh ............................................................................................ 28
2.4.3. Cây đa nhánh ............................................................................................... 30
2.5. Vấn đề tối ƣu năng lƣợng tiêu thụ trong mạng cảm biến ZigBee ..................... 31
2.6. Thuật toán định tuyến tối ƣu năng lƣợng trong mạng cảm biến ZigBee ........... 35
Chƣơng 3 – MÔ PHỎNG THUẬT TOÁN ĐỊNH TUYẾN TỐI ƢU NĂNG LƢỢNG
...................................................................................................................................... 41
3.1. Công cụ mô phỏng ............................................................................................. 41
3.1.1. Ubuntu 10.04 ............................................................................................... 41
3.1.2. NS-2 ............................................................................................................ 41
3.2. Xây dựng kịch bản ............................................................................................. 45
3.2.1. Thuật toán AODV ....................................................................................... 45
3.2.2. Mạng ZigBee ............................................................................................... 46
3.3. Thử nghiệm ........................................................................................................ 46
3.4. Đánh giá kết quả ................................................................................................ 48
3.4.1. Thuật toán định tuyến AODV ..................................................................... 48
3.4.2. Mạng ZigBee ............................................................................................... 54
Kết quả trong Nam ................................................................................................ 54
KẾT LUẬN .................................................................................................................. 57
HƢỚNG PHÁT TRIỂN LUẬN VĂN ......................................................................... 57
TÀI LIỆU THAM KHẢO ............................................................................................ 58
v
DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
PHY Physical Layer Tầng vật lý
DLL Data Link Layer Tầng liên kết dữ liệu
PAN Private Area Net Khu vực mạng riêng tƣ
LLC Logical Link Control Điều khiển kết nối logic
MAC Media Access Control Điều khiển truy cập
truyền thông
CSMA/CA Carrier Sense Multiple
Access/ Collision Avoidance
Đa truy cập nhận biết
sóng mang phát hiện
xung đột
OSI
Open Systems
Interconnection Reference
Model
Mô hình tham chiếu kết
nối các hệ thống mở
ACK Acknowledgment Sự thừa nhận
WLAN Wireless Local Are Network Mạng không dây cục bộ
FFD Full Function Device Thiết bị đầy đủ chức
năng
RFD Reduced Function Device Thiết bị giảm chức
năng
NL Network Layer Tầng mạng
AL Application Layer Tầng ứng dụng
NLME Network Layer Management
Entity
Tầng mạng quản lý
thực thể
vi
NLDE Network Layer Data Entity Tầng mạng dữ liệu thực
thể
ZDO ZigBee Device Object Đối tƣợng thiết bị
ZigBee
ZAP ZigBee Application Profile Hồ sơ ứng dụng ZigBee
ZC ZigBee Coordinator Điều phối ZigBee
ZR ZigBee Router Định tuyến ZigBee
ZED ZigBee End Device Thiết bị cuối ZigBee
PSTN Public Switched Telephone
Network
Mạng điện thoải
chuyển mạch công
cộng
RD Routing Device Thiết bị định tuyến
RREQ Route Request Yêu cầu định tuyến
RREP Route Reply Trả lời định tuyến
LLACK Link Layer ACK Tầng kết nối ACK
DD Designated Device Thiết bị đƣợc chỉ định
HERA Hierarchical Routing
Algorithm
Thuật toán phân cấp
định tuyến
vii
DANH MỤC CÁC BẢNG
Số hiệu bảng
Tên bảng
Trang
1.1 Bảng ƣu nhƣợc điểm của ZigBee 6
1.2 So sánh ZigBee và Bluetooth 7
1.3 Nhà cung cấp ZigBee 13
viii
DANH MỤC CÁC HÌNH VẼ
Số hiệu hình
vẽ
Tên hình vẽ
Trang
1.1 Các ứng dụng không dây 5
1.2 Dải Tần ZigBee 7
1.3 Kiến trúc OSI và kiến trúc ZigBee 9
1.4 Kiến trúc lớp (hay ngăn xếp – Stack) trong
kiến trúc ZigBee
10
1.5 Mô hình tầng ZigBee đơn giản 11
1.6 Các mô hình mạng trong ZigBee 11
1.7 Các ứng dụng trong mạng cảm biến
ZigBee
13
2.1 Định tuyến Anycast -1 15
2.2 Định tuyến Anycast -2 15
2.3 Định tuyến Broadcast 16
2.4 Định tuyến Multicast 16
2.5 Định tuyến Unicast 16
2.6 Mô hình định tuyến ZigBee đơn giản 18
2.7 Mô tả quá trình tìm đƣờng – path
discovery
23
ix
3.1 Kiến trúc và thƣ mục cài đặt NS-2.34
trong môi trƣờng Linux(Ubuntu)
39
3.2 Bắt đầu với node 19, đích đến là node 6 45
3.3 Định tuyến giữa các node trong AODV 45
3.4 Quá trình truyền tin sau khi đã định tuyến
trong AODV
46
3.5 Khởi đầu với 7 node trong mạng hình sao 48
3.6 Quá trình truyền tin từ PAN Coor đến các
node truyền tiếp đi
49
3.7 Truyền gói tin giữa node 0 và node 1 49
3.8 Toàn bộ 101 node đƣợc khởi tạo trong mô
hình
50
3.9 Quá trình truyền tin của mạng ZigBee 50
3.10 Quá trình truyền tin của mạng ZigBee 51
3.11 Quá trình truyền tin của mạng ZigBee 51
1
MỞ ĐẦU
Mạng viễn thông ngày nay đã tạo ra một cầu nối liên kết loài ngƣời trên khắp
thế giới, con ngƣời sử dụng mạng để trao đổi, quản lý, giao tiếp, mua bán… Việc sử
dụng tai nghe không dây, truy cập wifi đang trở nên quen thuộc và tác động đến đời
sống hàng ngày. Với sự phát triển không ngừng của khoa học kĩ thuật, mạng cảm
biến không dây xuất hiện ngày một phổ biến với nhiều ứng dụng trong các lĩnh vực
của cuộc sống nhƣ ứng dụng giám sát và điều khiển trong sản xuất, tự động hóa gia
đình và điện dân dụng, ứng dụng trong y tế và giám sát sức khỏe...
Một yêu cầu rất quan trọng trong mạng cảm biến không dây là tiết kiệm năng
lƣợng của pin để đảm bảo cho mọi hoạt động mạng ổn định trong một khoảng thời
gian đủ lớn. Mặc dù mạng ZigBee có mức tiêu hao năng lƣợng thấp nhƣng việc lựa
chọn giải thuật định tuyến tối ƣu năng lƣợng cũng quyết định rất lớn đến hoạt động
lâu dài của mạng.
Mạng ZigBee là đƣợc áp dụng cho các hệ thống điều khiển và cảm biến có
tốc độ truyền tin thấp nhƣng chu kỳ hoạt động dài. Đối tƣợng mà mạng ZigBee
nhắm vào là mạng điều khiển dành cho nhà thông minh (SmartHome), tự động hóa
quá trình( Home Automation, Building Automation), trong các hoạt động theo dõi,
tiếp nhận và xử lý thông tin trong các lĩnh vực nhƣ y tế (Health Care), quản lý năng
lƣợng sao cho hiệu quả hơn (Smart Energy)…Khi đƣợc sử dụng trong các hệ thống
này, mạng ZigBee phát huy tất cả những điểm mạnh của nó nhƣ độ trễ truyền tin
thấp, tiêu hao ít năng lƣợng, giá thành thấp, ít lỗi, dễ mở rộng và thời gian sử dụng
pin dài.
Luận văn “Thuật toán định tuyến tối ƣu năng lƣợng trong mạng cảm
biến ZigBee” nghiên cứu các thuật toán định tuyến trong mạng ZigBee, đặc biệt tập
trung vào vấn đề tối ƣu năng lƣợng tiêu thụ trong mạng cảm biến.
2
Luận văn gồm có 3 chƣơng :
Chương 1 : Tổng quan về mạng cảm biến ZigBee
Chƣơng này tìm hiểu về khái niệm và cấu trúc mạng cảm biến ZigBee
Chương 2 : Thuật toán định tuyến
Chƣơng này tập trung tìm hiểu về một số thuật toán định tuyế và vấn đề tối ƣu năng
lƣợng tiêu thụ trong mạng cảm biến ZigBee
Chương 3 : Mô phỏng thuật toán định tuyến tối ưu năng lượng
Chƣơng này giới thiệu về công cụ mô phỏng, cách thức cài đặt và kết quả thử
nghiệm, đánh giá
3
Chƣơng 1 – TỔNG QUAN VỀ MẠNG CẢM BIẾN ZIGBEE
Mạng cảm biến ZigBee đƣợc xây dựng theo chuẩn giao thức IEEE 802.15.4, vì vậy
để có cái nhìn khái quát nhất, ta tìm hiểu qua về chuẩn IEEE 802.15.4
1.1. Tổng quan về IEEE 802.15.4
Chuẩn giao thức IEEE 802.15.4 đƣợc quy định tại tầng vật lý (Physical
Layer- PHY) và tầng liên kết dữ liệu (Data Link Layer – DLL). Nó là chuẩn cho
giao tiếp trong mạng không dây, năng lƣợng thấp. Các thiết bị trong mạng tự tổ
chức thành một mạng nhỏ gọi là mạng cá nhân (Private Area Net – PAN).
IEEE 802.15.4 định nghĩa hai tầng con của tầng DLL – Điều khiển liên kết
logic (Logical Link Control – LLC) và Điều khiển truy cập truyền thông (Media
Acsess Control – MAC). Tầng MAC định nghĩa việc truy cập tới môi trƣờng chung
của nhiều thiết bị bằng cách sử dụng các giao thức thích hợp nhƣ là Carrier Sense
Multiple Access/ Collision Avoidance – (CSMA/CA), trong khi đó LLC phân phát
các gói dữ liệu tới dịch vụ tƣơng ứng ở tầng mạng (Network Layer – NL).
Tầng vật lý và tầng liên kết dữ liệu trong chuẩn IEEE 802.15.4 định nghĩa
đầy đủ môi trƣờng trong việc giao tiếp và các nguyên lý cho việc truy cập môi
trƣờng theo các cách thích hợp.
Tại tầng vật lý của mô hình OSI, ZigBee căn cứ vào chuẩn IEEE 802.15.4 –
2003 sử dụng công nghệ truyền sóng radio với Offset-Quadrature Phase Shift
Keying (O-QPSK) và Direct Sequence Spread Spectrum (DSSS) nâng cao tỷ lệ
signal-to-noise.
CSMA/CA đƣợc sử dụng tại DLL để tránh xung đột. Việc kiểm tra sự toàn
vẹn dữ liệu đƣợc thực hiện bằng cách truyền lại và sử dụng ACK tại mỗi node để
giảm thiểu khả năng mất dữ liệu.
4
Việc đánh giá độ tin cậy của một mạng đƣợc thực hiện nhờ tính toán tỷ lệ
signal-to-noise và năng lƣợng nhận đƣợc tại điểm cuối liên kết.
Chuẩn IEEE 802.15.4 định nghĩa các dải tần sử dụng khác nhau. Tiêu biểu
có dải tần số 2.4 GHz đƣợc sử dụng cho các thiết bị xây dựng. Mạng cục bộ không
dây – WLAN ( chuẩn IEEE 802.11) và mạng Bluetooth ( chuẩn IEEE 802.15.1)
cũng sử dụng dải tần số này.
Chuẩn IEEE 802.15.4 định nghĩa hai loại thiết bị :
Thiết bị chức năng đầy đủ (Full Function Device) – FFD
Thiết bị bình thƣờng (Reduced Function Device) – RFD.
Sự khác biệt lớn nhất giữa hai loại thiết bị này chính là RFD không có khả
năng khởi động cho một mạng cá nhân (Private Are Network - PAN). Chính vì thế
PAN luôn đƣợc khởi động bằng FFD. Hơn thế nữa, việc giao tiếp trực tiếp chỉ cho
phép giữa hai thiết bị FFD hoặc giữa một FFD và một RFD, không cho phép giao
tiếp giữa các RFD với nhau.
Một mạng PAN là một mạng bao gồm các thiết bị trong một khoảng nhỏ. Sự
kết hợp nhiều mạng PAN là có thể, thậm chí khi các mạng PAN đó sử dụng chung
một tần số. Với cấu trúc tự tổ chức, các mạng PAN rất dễ dàng bảo trì và tự sửa lỗi.
1.2. Cấu hình mạng theo chuẩn IEEE 802.15.4
Chuẩn IEEE 802.15.4 cung cấp 2 cấu hình mạng cơ bản, mạng hình sao
(Star) và mạng ngang hàng (Peer-to-Peer).
Trong mạng hình sao, một node trung tâm là FFD. Node trung tâm sẽ chịu
trách nhiệm đảm bảo giao tiếp giữa các RFD trong mạng. Khi một RFD muốn giao
tiếp với một RFD khác trong mạng, nó bắt buộc phải giao tiếp thông qua node trung
tâm. Mạng cấu hình này sẽ làm quá tải node trung tâm, và khi node trung tâm bị
hỏng thì mọi giao tiếp giữa các thiết bị RFD trong mạng sẽ không thực hiện đƣợc.
Trong mạng ngang hàng, thiết bị FFD sẽ trực tiếp giao tiếp với các thiết bị khác.
Giao tiếp giữa các thiết bị RFD là cho phép, lúc này FFD đóng vai trò nhƣ một bộ
5
chuyển tiếp. Trong mạng này, một thiết bị lỗi có thể đƣợc loại bỏ đi bằng cách tăng
thêm số hàng xóm trực tiếp. Tuy nhiên, với mạng ngang hàng thì việc định tuyến
dọc theo mạng là không thể, khả năng duy nhất để giao tiếp thông qua mạng đó là
sử dụng quảng bá, tuy nhiên việc đó sẽ tăng đƣờng truyền trong mạng.
1.3. Mạng cảm biến ZigBee theo chuẩn IEEE 802.15.4
1.3.1. Khái niệm
Chúng ta đã từng biết đến các chuẩn giao tiếp không dây khá phổ biến nhƣ
:Wimax, 3G, Bluetooth...Với các ứng dụng video không dây, dữ liệu không dây,
mạng không dây, cảm biến không dây….
Hình 1.1 : Các ứng dụng không dây
Trong những năm gần đây xuất hiện một chuẩn giao tiếp mới đƣợc ứng dụng
rất rộng rãi trong nhiều lĩnh vực, đó là mạng ZigBee (đƣợc công bố lần đầu tiên vào
năm 2002 bởi liên minh ZigBee).
Mạng ZigBee đƣợc tạo ra nhằm phục vụ cho những ứng dụng yêu cầu giá
thành và công suất thấp nhƣng phải có khả năng linh động trong phạm vi rộng.
6
Mạng ZigBee đƣợc phát triển và xúc tiến bởi hãng ZigBee Alliance, với sự hỗ trợ từ
hơn 200 công ty trên thế giới nhƣ: SIEMENS, ATMEL, NI, NEC, TEXAS
INSTRUMENTS, EPSON....
Về bản chất mạng ZigBee cũng là một chuẩn giao tiếp không dây nhƣ những
chuẩn không dây khác (UWB, Wi-Fi, IrDA, 3G, Bluetooth..) nhƣng nó mang những
đặc tính kỹ thuật và đặc tính vật lý riêng và do đó sẽ chỉ phù hợp với một mảng ứng
dụng nhất định.
Theo nhƣ hình trên có thể thấy rằng mạng ZigBee có đặc điểm là phạm vi
hoạt động hẹp, tốc độ truyền trong mạng ZigBee thích hợp cho các cảm biến không
dây và chuyên dùng cho các ứng dụng giám sát, điều khiển.
1.3.2. Ưu và nhược điểm của ZigBee
Để thấy đƣợc ƣu điểm và nhƣợc điểm của mạng ZigBee có thể theo dõi bảng
dƣới đây.
Bảng 1.1 : Bảng ƣu, nhƣợc điểm của ZigBee
Ƣu điểm Nhƣợc điểm
* Giá thành thấp
* Tiêu thụ công suất nhỏ
* Kiến trúc mạng linh hoạt
* Đƣợc hỗ trợ bởi nhiều công ty
* Số lƣợng các node lớn (65k)
* Lỗi ở một điểm chính có thể
gây lỗi hệ thống.
* Tốc độ truyền thấp
* Chƣa có đầy đủ các thiết bị
để phát triển
Để cho rõ ràng hơn, ta hãy làm một phép so sánh giữa Mạng ZigBee và một
chuẩn không dây cũng khá phổ biến khác.
7
Bảng 1.2: So sánh ZigBee và Bluetooth
Đặc tính ZigBee Bluetooth
Tiêu thụ công suất 10W 100W
Giá thành ( đầu 2005) 1,1 $ 3$
Độ nhạy -92dbm(0,63pW) -62dbm(6,2pW)
Độ linh hoạt 65536 node
(trong sơ đồ sao)
7 node
(trong sơ đồ sao)
Độ an toàn 128 bit mã hóa 64/128 bit mã hóa
Vùng làm việc Hiệu quả ở 10 - 75m Hiệu quả ở < 10m
Có thể thấy rằng với những ứng dụng cho nhiều phần tử, yêu cầu độ linh hoạt cao,
giá thành thấp, tiêu thụ công suất nhỏ thì dùng Mạng ZigBee là rất phù hợp.
1.3.3. Dải tần trong mạng ZigBee
Tín hiệu truyền trong mạng ZigBee thực chất là tín hiệu radio và đƣợc hỗ trợ
trong các dải tần số sau:
Hình 1.2: Dải Tần ZigBee
8
Dải 868,3 Mhz: Chỉ một kênh tín hiệu .Trong dải này tốc độ truyền là 20kb/s.
Dải 902 Mhz - 928 Mhz: Có 10 kênh tín hiệu từ 1 - 10 với tốc độ truyền thƣờng là
0kb/s.
Dải 2,4 Ghz - 2,835 Ghz: có 16 kênh tín hiệu từ 11 - 26 với tốc độ truyền 250 kb/s.
Trong nhiều ứng dụng, ngƣời ta hay dùng dải tần 2,4 Ghz - 2,835 Ghz. Đây
là dải tần phổ biến và đƣợc hỗ trợ bởi nhiều thiết bị. Hơn nữa với mạng ZigBee, dải
tần này có tới 16 kênh tín hiệu trong dải (mỗi kênh cách nhau 5MHz tần số) với tốc
độ truyền lớn nhất: 250kb/s.
Nhƣ vậy ta có thể thấy rằng mạng ZigBee đã thừa hƣởng những ƣu điểm của
mạng cảm biến không dây nhƣ:
Độ linh động cao
Mức tiêu thụ năng lƣợng thấp
Bảo mật cao
Sử dụng nhƣ một chuẩn mở
Sở dĩ có thể nói nhƣ vậy là do:
Mạng không dây bản chất là không tin cậy, nguyên nhân là do đặc
tính vật lý của nó. Kim loại, nƣớc, thậm chí cả cơ thể con ngƣời cũng có thể là vật
cản sóng hoặc ảnh hƣởng tới sóng truyền trong mạng không dây. Tránh một thiết bị
không dây để nhận sóng truyền từ một thiết bị là hết sức dễ dàng. Chính vì thế, các
thiết bị trong mạng ZigBee sử dụng nhiều kỹ thuật khác nhau để làm tăng độ tin cậy
của mạng không dây.
Bảo mật trong mạng ZigBee dựa trên thuật toán chuẩn mã hóa cao cấp
– AES 128. Sự chứng thực và tính toàn vẹn của thông điệp đƣợc cung cấp bởi 1 bộ
mã hóa để đảm bảo độ tin cậy giao tiếp giữa hai node trong mạng. Ý tƣởng của việc
này dựa trên một trung tâm xác thực. Điển hình cho kiểu thiết kế này chính là thiết
bị ZC (ZigBee Coordinator), nó đƣợc thiết kế nhƣ một trung tâm xác thực thông tin.
9
Khi mà khái niệm về trung tâm xác thực đƣợc sử dụng, tất cả khóa cho việc mã hóa
thông tin giữa hai thiết bị đều đƣợc cung cấp bới trung tâm xác thực.
Mạng ZigBee đƣợc thiết kế và phân phối giống nhƣ một chuẩn mở
toàn cầu. Nó cung cấp mọi khả năng cho các nhà sản xuất có thể sản xuất các thiết
bị dựa trên các đặc tả ZigBee cung cấp với giả rẻ. Hơn thế nữa, sự tƣơng thích giữa
các thiết bị của các nhà sản xuất khác nhau là rất tốt, miễn sao các nhà sản xuất tuân
thủ đúng các chuẩn do mạng ZigBee cung cấp. Đây là một điều có lợi cho ngƣời
tiêu dùng, ngƣời tiêu dùng có thể mua giá rẻ, đƣợc lựa chọn các sản phẩm của các
nhà sản xuất khác nhau mà không cần lo lắng vấn đề tƣơng thích giữa các thiết bị
ZigBee của các nhà sản xuất khác nhau.
1.4. Cấu trúc mạng cảm biến ZigBee
1.4.1. Tổng quan
Trong truyền thông, khi thực hiện một giao thức, ngƣời ta thƣờng dựa trên
một mô hình kiến trúc chuẩn. Bất kỳ một giao thức truyền thông nào đều có thể qui
chiếu tới một lớp nào đó trong mô hình của kiến trúc tƣơng ứng. Trong truyền
thông ta đã biết đến mô hình qui chiếu OSI 7 lớp.
Trong mạng ZigBee, ngƣời ta cũng định nghĩa một kiến trúc giao tiếp, đó là
kiến trúc ZigBee. Có thể hiểu kiến trúc này cũng tƣơng tự nhƣ kiến trúc OSI 7 lớp
trong truyền thông công nghiệp.
Hình 1.3 : Kiến trúc OSI và kiến trúc ZigBee
10
1.4.2. Kiến trúc cụ thể của mạng ZigBee
Hình 1.4 : Kiến trúc lớp (hay ngăn xếp - Stack) trong kiến trúc ZigBee
Mạng ZigBee đƣợc xây dựng ở trên của hai lớp MAC (Medium Access
Control) và lớp vật lý (PHY). Lớp MAC và lớp PHY đƣợc định nghĩa theo chuẩn
IEEE 802.15.4 dành cho các ứng dụng WPAN (PAN không dây) tốc độ thấp. Hai
tầng đƣợc đặc tả bởi ZigBee đó là: Tầng Mạng (Network Layer – NL) và Tầng Ứng
Dụng (Application Layer – AL).
Tầng mạng chịu trách nhiệm trong việc phân phối gói tin, quảng bá mạng.
Dựa trên chức năng thì ta có thể chia tầng mạng thành 2 phần đó là Thực thể quản
lý tầng mạng - Network Layer Management Entity - NLME và Thực thể dữ liệu
tầng mạng ( - Network Layer Data Entity – NLDE). NLDE sẽ cung cấp cơ chế cần
thiết để chuyển đổi dữ liệu. Mặt khác NLME giám sát, quản lý các vấn đề đƣợc
NLDE cung cấp và các cơ chế trong tầng mạng ví dụ nhƣ giám sát việc định
tuyến…
ZigBee Device Object (ZDO) và ZigBee Application Profile (ZAP), đƣợc
xây dựng trên tầng ứng dụng. ZAP phù hợp với các thông điệp, định dạng thông
11
điệp và quá trình thực thi, nó sẽ cung cấp, đảm bảo sự tƣơng thích giữa các thiết bị.
Một thiết bị ZigBee sẽ đƣợc khởi tạo bằng cách sử dụng chức năng cơ bản của
ZDO, hơn thế nữa các chức năng quản lý cũng đƣợc thực thi bởi các ZDO.
Hình 1.2: Mô hình tầng ZigBee đơn giản
Hình 1.5 cho ta cái nhìn tổng quan về mô hình tầng ZigBee. Nó mô tả liên
kết giữa ZDO – ZAP cũng nhƣ giữa NLME – NLDE. Hơn thế nữa, bằng cách sử
dụng mô hình đƣợc định nghĩa bởi tầng mạng và tầng ứng dụng, hai tầng trong
ZigBee đã có thể trao đổi thông tin với nhau.
1.4.3. Mô hình mạng ZigBee
Trong truyền thông dùng mạng ZigBee thƣờng hỗ trợ 3 mô hình mạng chính:
mạng hình sao, mạng hình cây và mạng sơ đồ lƣới.
Hình 1.6: Các mô hình mạng trong ZigBee
Trong lớp mạng ZigBee cho phép 3 kiểu thiết bị:
Bộ điều phối Zigbee (ZigBee Coordinator - ZC): Chỉ có duy nhất 1 ZC trong
bất kỳ mạng ZigBee nào và nó có chức năng chính là kích hoạt thông tin về mạng
thông qua cấu hình các kênh, PAN ID và hiện trạng ngăn xếp.
12
Bộ định tuyến Zigbee (ZigBee Router - ZR): Là một thành phần của hệ
thống mạng mà chức năng của nó là thực hiện việc vận chuyển các gói tin trong
mạng. Nó thực hiện các bảng kết nối cũng nhƣ định vị địa chỉ cho các ZED của nó.
Thiết bị cuối Zigbee (ZigBee End Device - ZED): Là một thành phần của hệ
thống mạng nhƣng không tham gia vào quá trình vận chuyển tin. Nó có đƣợc tối ƣu
sao cho công suất tiêu thụ là nhỏ nhất nhờ các chế độ bắt tín hiệu và kỹ thuật “ngủ”
("sleep").
Quá trình thiết lập trong một mạng ZigBee nhƣ sau:
- Quét mạng (Network Scan): Các thiết bị trong mạng sẽ quét các kênh tín
hiệu, ví dụ nếu dùng dải tần 2,4GHz thì sẽ có 16 kênh để quét, sau đó thiết bị sẽ
chọn kênh phù hợp nhất để giao tiếp trong mạng. Ta gọi đó là sự chiếm chỗ
(ocupacy).
- Thiết lập/Gia nhập mạng: Thiết bị có thể tạo ra một mạng trên một kênh
hoặc gia nhập vào một mạng đã tồn tại sẵn.
- Phát hiện thiết bị: Thiết bị sẽ yêu cầu mạng phát hiện ra địa chỉ của mình
trên các kênh đƣợc kích hoạt.
- Phát hiện dịch vụ: Thiết bị quét các dịch vụ đƣợc hỗ trợ trên thiết bị trong
phạm vi mạng.
- Liên kết: Thiết bị giao tiếp với nhau thông qua các lệnh và các tin nhắn
điều khiển.
1.4.4. Một số ứng dụng của mạng cảm biến ZigBee
Nhƣ đã nói ở trên: Mạng ZigBee rất phù hợp với những ứng dụng yêu cầu
giá thành thấp, tiêu thụ năng lƣợng nhỏ và tính linh động tốt. Vì vậy ngày nay
ZigBee đƣợc dùng vào rất nhiều ứng dụng trong cuộc sống nhƣ: Các hệ chiếu sáng
thông minh, HVAC, Công nghiệp, cảm biến không dây, bệnh viện....Có thể thấy
trên hình dƣới:
13
Hình 1.7: Các ứng dụng trong mạng cảm biến ZigBee
Hiện nay có rất nhiều hãng sản xuất và bán các IC cũng nhƣ các Module hỗ
trợ truyền nhận bằng ZigBee. Có thể giới thiệu một số sản phẩm phổ biến nhƣ sau :
Bảng 1.3: Nhà cung cấp ZigBee
MC13202 của Freescale MRF24J40 của MICROCHIP
CC2400 của Texas Instrumen Kít ZAXM-201 của NEC
14
Chƣơng 2 – THUẬT TOÁN ĐỊNH TUYẾN
2.1. Tổng quan định tuyến
2.1.1. Khái niệm
Trong ngành mạng máy tính, định tuyến (tiếng Anh: routing hay routeing)
là quá trình chọn lựa các đƣờng đi trên một mạng máy tính để gửi dữ liệu qua đó.
Việc định tuyến đƣợc thực hiện cho nhiều loại mạng, trong đó có mạng điện thoại,
liên mạng, Internet, mạng giao thông.
Định tuyến chỉ ra hƣớng, sự di chuyển của các gói (dữ liệu) đƣợc đánh địa
chỉ từ điểm nguồn của chúng, hƣớng đến đích cuối thông qua các node trung gian;
thiết bị phần cứng chuyên dùng đƣợc gọi là router (bộ định tuyến). Tiến trình định
tuyến thƣờng chỉ hƣớng đi dựa vào bảng định tuyến, đó là bảng chứa những lộ trình
tốt nhất đến các đích khác nhau trên mạng. Vì vậy việc xây dựng bảng định tuyến,
đƣợc tổ chức trong bộ nhớ của router, trở nên vô cùng quan trọng cho việc định
tuyến hiệu quả.
Các mạng nhỏ có thể có các bảng định tuyến đƣợc cấu hình thủ công, còn
những mạng lớn hơn có topo mạng phức tạp và thay đổi liên tục thì xây dựng thủ
công các bảng định tuyến là vô cùng khó khăn. Tuy nhiên, hầu hết mạng điện thoại
chuyển mạch chung (public switched telephone network - PSTN) sử dụng bảng
định tuyến đƣợc tính toán trƣớc, với những tuyến dự trữ nếu các lộ trình trực tiếp
đều bị nghẽn. Định tuyến động (dynamic routing) cố gắng giải quyết vấn đề này
bằng việc xây dựng bảng định tuyến một cách tự động, dựa vào những thông tin
đƣợc giao thức định tuyến cung cấp, và cho phép mạng hành động gần nhƣ tự trị
trong việc ngăn chặn mạng bị lỗi và nghẽn.
Định tuyến động chiếm ƣu thế trên Internet. Tuy nhiên, việc cấu hình các
giao thức định tuyến động thƣờng đòi hỏi nhiều kinh nghiệm cho nên tốt nhất vẫn là
nên kết hợp giữa định tuyến thủ công và tự động.
15
Những mạng trong đó thông tin đƣợc vận chuyển, ví dụ nhƣ Internet, chia dữ
liệu thành các gói, rồi dán nhãn với các đích đến cụ thể và mỗi gói đƣợc lập lộ trình
riêng biệt. Các mạng xoay vòng, nhƣ mạng điện thoại, thực hiện định tuyến để tìm
đƣờng cho các vòng (ví dụ nhƣ cuộc gọi điện thoại) để chúng có thể gửi lƣợng dữ
liệu lớn mà không phải tiếp tục lặp lại địa chỉ đích.
Định tuyến IP truyền thống vẫn còn tƣơng đối đơn giản vì nó dùng cách định
tuyến đến bƣớc kế tiếp (next-hop routing), router chỉ xem xét nó sẽ gửi gói thông
tin đến đâu, và không quan tâm đƣờng đi sau đó của gói trên những bƣớc truyền còn
lại. Tuy nhiên, những chiến lƣợc định tuyến phức tạp hơn có thể đƣợc dùng, và
thƣờng đƣợc dùng trong những hệ thống nhƣ MPLS, ATM hay Frame Relay, những
hệ thống này đôi khi đƣợc sử dụng nhƣ công nghệ bên dƣới để hỗ trợ cho mạng IP.
Các kiểu định tuyến bao gồm:
- Anycast : Cho phép định tuyến từ một node tới một node
Hình 2.1: Định tuyến Anycast - 1
Hình 2.2 : Định tuyến Anycast – 2
- Broadcast : Định tuyến từ 1 node tới tất cả các node
Hình 2.3: Đính tuyến Broadcast
16
- Multicast : Định tuyến từ 1 node tới nhiều node
Hình 2.4: Định tuyếnMulticast
- Unicast :Định tuyến từ một node tới một node
Hình 2.5: Định tuyến Unicast
2.1.2 Thuật toán định tuyến
2.1.2.1. Thuật toán vector khoảng cách - Distance-vector routing protocols
Thuật toán này dùng thuật toán Bellman-Ford. Phƣơng pháp này chỉ định
một con số, gọi là chi phí (hay trọng số), cho mỗi một liên kết giữa các node trong
mạng. Các node sẽ gửi thông tin từ điểm A đến điểm B qua đƣờng đi mang lại tổng
chi phí thấp nhất (là tổng các chi phí của các kết nối giữa các node đƣợc dùng).
Thuật toán hoạt động với những hành động rất đơn giản. Khi một node khởi
động lần đầu, nó chỉ biết các node kề trực tiếp với nó, và chi phí trực tiếp để đi đến
đó (thông tin này, danh sách của các đích, tổng chi phí của từng node, và bƣớc kế
tiếp để gửi dữ liệu đến đó tạo nên bảng định tuyến, hay bảng khoảng cách). Mỗi
node, trong một tiến trình, gửi đến từng “hàng xóm” tổng chi phí của nó để đi đến
các đích mà nó biết. Các node “hàng xóm” phân tích thông tin này, và so sánh với
những thông tin mà chúng đang “biết”; bất kỳ điều gì cải thiện đƣợc những thông
tin chúng đang có sẽ đƣợc đƣa vào các bảng định tuyến của những “hàng xóm” này.
Đến khi kết thúc, tất cả node trên mạng sẽ tìm ra bƣớc truyền kế tiếp tối ƣu đến tất
cả mọi đích, và tổng chi phí tốt nhất.
17
Khi một trong các node gặp vấn đề, những node khác có node hỏng này
trong lộ trình của mình sẽ loại bỏ những lộ trình đó, và tạo nên thông tin mới của
bảng định tuyến. Sau đó chúng chuyển thông tin này đến tất cả node gần kề và lặp
lại quá trình trên. Cuối cùng, tất cả node trên mạng nhận đƣợc thông tin cập nhật, và
sau đó sẽ tìm đƣờng đi mới đến tất cả các đích mà chúng còn tới đƣợc.
2.1.2.2. Thuật toán trạng thái kết nối (Link-state routing protocol)
Khi áp dụng các thuật toán trạng thái kết nối, mỗi node sử dụng dữ liệu cơ sở
của nó nhƣ là một bản đồ của mạng với dạng một đồ thị. Để làm điều này, mỗi node
phát đi tới tổng thể mạng những thông tin về các node khác mà nó có thể kết nối
đƣợc, và từng node góp thông tin một cách độc lập vào bản đồ. Sử dụng bản đồ này,
mỗi router sau đó sẽ quyết định về tuyến đƣờng tốt nhất từ nó đến mọi node khác.
Thuật toán đã làm theo cách này là Dijkstra, bằng cách xây dựng cấu trúc dữ
liệu dạng cây, trong đó node hiện tại là gốc, và chứa mọi node khác trong mạng. Bắt
đầu với một cây ban đầu chỉ chứa chính nó. Sau đó lần lƣợt từ tập các node chƣa
đƣợc thêm vào cây, nó sẽ thêm node có chi phí thấp nhất để đến một node đã có
trên cây. Tiếp tục quá trình đến khi mọi node đều đƣợc thêm.
Cây này sau đó phục vụ để xây dựng bảng định tuyến, đƣa ra bƣớc truyền kế
tiếp tốt ƣu … để từ một node đến bất kỳ node khác trên mạng.
2.2. Các thuật toán định tuyến trong mạng ZigBee
Tổng quan : Nhƣ đã biết mạng ZigBee định nghĩa tầng mạng và tầng ứng
dụng cho thiết bị IEEE 802.15.4. Tầng ứng dụng cung cấp khung làm việc hay cung
cấp API cho các ứng dụng. Trong khi đó tầng mạng bao gồm cơ chế cấu hình cho
tầng mạng và định tuyến.
Mạng hình sao: Mạng có một thiết bị điều phối chung (Zigbee Coordinator-
ZC). Mỗi thiết bị sẽ truyền trực tiếp gói tin tới ZC
Mạng hình cây: Một cây định tuyến tại ZC đƣợc tạo dựa trên quan hệ cha-
con. Trong mạng hình cây, định tuyến phân cấp có thể đƣợc sử dụng.
18
Một lƣu ý rằng: ngay trong cấu hình mạng lƣới thì việc phân cấp quan hệ cha
con luôn đƣợc tạo bởi tầng MAC của IEEE 802.15.4.
2.2.1. Định tuyến ZigBee
Cơ chế định tuyến của ZigBee đƣợc thiết kể ở tầng mạng. Gói dữ liệu đƣợc
đóng gói tại DLL và thông qua tầng vật lý để chuyển tiếp tới RD (thiết bị định
tuyến- Routing Device). RD sẽ mở gói dữ liệu tại tầng liên kết dữ liệu của nó, kiểm
tra thông tin bƣớc truyền kế tiếp cho đích truyền riêng và đóng gói lại gói dữ liệu để
vận chuyển. Node đích đầu tiên sẽ phải mở gói dữ liệu tại tầng liên kết dữ liệu của
nó. Sau đó, gói dữ liệu tiếp tục đƣợc mở tại tầng tại tầng mạng và chuyển lên tầng
cao hơn.
Hình 2.6: Mô hình định tuyến ZigBee đơn giản
Các khung đƣợc định tuyến bởi ZC và ZR (Zigbee Routor: node đinh tuyến
Zigbee) thông qua mạng PAN. Thiết bị cuối Zigbee (ZED) không tham gia vào việc
chuyển tiếp gói tin. Chính vì thế ZED thực thi nhƣ những thiết bị RFD đơn thuần.
Các cấu trúc mạng PAN khác nhau và các yêu cầu về mạng khác nhau cũng yêu cầu
những khái niệm khác nhau về định tuyến hay là với mỗi mạng PAN có cấu trúc
khác nhau ta cần một khái niệm định tuyến phù hợp.
Đối với mạng tĩnh, định tuyến từ nguồn (Source Routing) là một khái niệm
thích hợp bởi vì nó cung cấp thông tin định tuyến của mạng thông qua các bản ghi
cấu hình mạng đƣợc định nghĩa trƣớc đó. Với việc sử dụng khái niệm định tuyến
này sẽ rút ngắn khoảng thời gian định tuyến thành công qua mạng.
19
Đối với mạng động cần cung cấp khả năng thay đổi trong cấu trúc mạng,
thiết bị ZigBee có thể rời khỏi phạm vi của ZR liên kết với nó và có thể liên kết với
mạng thông qua một ZR khác. Trong trƣờng hợp này, định tuyến động đƣợc tạo ra
bằng cách sử dụng các bản tin yêu cầu định tuyến RREQ cho các định tuyến chƣa
biết hoặc các định tuyến chƣa làm việc sẽ hiệu quả hơn nhiều. Các RREQ là các gói
dữ liệu ở tầng mạng, nó đƣợc truyền đi để xác định định tuyến tốt nhất, các đƣờng
liên kết có sẵn thông qua mạng để tới đƣợc node đích. Khi một thiết bị Zigbee
(Zigbee Device –ZD) hay ZC nhận đƣợc yêu cầu định tuyến và một trong số node
con ZED của nó hoặc là bản thân nó chính là đích thì nó sẽ trả lời bằng một bản tin
trả lời (RREP - Route Reply). Mỗi node trên đƣờng tới mục tiêu sẽ tự tăng chi phí
tích lũy định tuyến của nó lên. Bằng cách sử dụng chi phí định tuyến của mỗi bƣớc
nhảy, nó có thể giúp chỉ ra con đƣờng tốt nhất tới đích cho node nguồn.
Đặc tả ZigBee sử dụng thuật toán Ad hoc On Demand Distance Vector -
AODV làm thuật toán định tuyến. Với thuật toán định tuyến này, các RREQ đƣợc
truyền tới tất cả các thiết bị trong mạng. Các thiết bị trong mạng sẽ trả lời bằng gói
tin RREP. Mỗi bƣớc truyền chuyển tiếp các gói tin RREP, nó sẽ thêm vào gói tin
thông tin định tuyến bao gồm: chi phí định tuyến và thông tin bƣớc truyền kế tiếp.
Khi một RREP nhận đƣợc bởi RREQ khởi tạo nó (cho lần đầu tiên hoặc với chi phí
định tuyến thấp hơn), bảng thông tin định tuyến sẽ đƣợc cập nhật hoặc tạo mới để
ghi lại đƣờng định tuyến đó.
Truyền thông tin thông qua một mạng PAN có thể đƣợc thực hiện bằng việc
đánh địa chỉ theo kiểu unicast, multicast, hoặc broadcast.
2.2.2. Quảng bá gói tin trong ZigBee (ZigBee Broadcasting)
Sử dụng việc định địa chỉ Broadcast, tất cả node trong mạng đều đƣợc thông
báo về khung gửi. Khung định địa chỉ sẽ không bao giờ nhận đƣợc gói tin ACK. Do
đó, truyền tin kiểu broadcast thực sự là không tin cậy. Điển hình của quảng bá trong
mạng ZigBee là có quá nhiều gói tin tới mỗi node hàng xóm. Khi một gói tin quảng
bá đƣợc nhận thành công tại một node, thì mọi gói tin quảng bá khác sẽ bị bỏ qua.
20
Ngoài ra, ZigBee thực hiện cơ chế nhận thụ động này. Bất cứ khi nào, một gói tin
quảng bá đƣợc nhận, một mục trong bảng giao dịch sẽ đƣợc tạo ra.
Bảng giao dịch thông tin quảng bá lƣu trữ thông tin mà thiết bị lân cận đã
chuyển tiếp một quảng bá cụ thể. Với hiểu biết này, việc phát lại một quảng bá chỉ
cần thiết nếu ít nhất một trong các thiết bị lân cận chƣa chuyển tiếp gói tin quảng
bá.
Định địa chỉ Multicast nghĩa là gửi một khung tới tất cả thành viên trong
nhóm. Nhóm lúc này phải đƣợc đƣợc nghĩa trong mạng. Cũng nhƣ broadcast,
multicast cũng đƣợc thực hiện bằng cách gửi nhiều gói tin dữ liệu trong mạng. Mỗi
node trong mạng sẽ quyết định gói tin thuộc về con của nó hay bản thân nó, trong
trƣờng hợp khác, các gói dữ liệu sẽ bị loại bỏ.
Multicast là một dạng lai giữa uinicast và broadcast. Tùy thuộc vào chế độ
của multicast, chúng có thể đƣợc chuyển tiếp bởi tất cả các bƣớc nhảy liên tục tới
broadcast hoặc gửi bởi unicast đến khi gói tin nhận đƣợc bởi một trong số node
trong nhóm multicast. Chỉ các thiết bị trong nhóm multicast cần chủ động để nhận
gói tin quảng bá của nhóm. Thiết bị nhận nhận các gói tin bằng cách kiểm tra cờ
multicast trong tiêu đề gói tin ZigBee. Nếu một gói tin multicast đƣợc xác định, địa
chỉ đích đƣợc sử dụng nhƣ một định danh – ID của nhóm multicast, sẽ xác định duy
nhất một nhóm multicast trong toàn bộ mạng.
2.2.3. Quan hệ nhiều - một – Many-to-one
Trong nhiều trƣờng hợp sử dụng, tồn tại một node trong mạng PAN, nó thu
thập dữ liệu của tất cả thiết bị khác. Điều này có thể gây ra bởi có một thiết bị điều
khiển tập trung hoặc một thiết bị thu thập thông tin. Nhƣ một node thu thập đƣợc
gọi là tập trung hay tổng hợp. Nếu không có bất cứ một tối ƣu hóa nào, tất cả thiết
bị trong mạng cần phải khởi tạo một RREQ để lấy thông tin định tuyến hƣớng tới
bộ tập trung. Chính vì thế, đặc tả ZigBee đã định nghĩa một mô hình đinh tuyến tối
ƣu cho những trƣờng hợp đó gọi là đinh tuyến nhiều-một many-to-one. Điều đó có
nghĩa, bộ tập trung khởi tạo gói tin định tuyến, nó sẽ đƣợc quảng bá trong mạng.
21
Trên tuyến đƣờng định tuyến gói tin, mỗi thiết bị định tuyến của mạng sẽ tạo một
bảng mục tƣơng ứng tới bộ tập trung.
2.3. Thuật toán định tuyến theo yêu cầu – AODV
2.3.1. Tổng quan
Định tuyến là một cơ chế rất quan trọng của tầng mạng ZigBee. Nếu cơ chế
định tuyến làm việc không hiệu quả sẽ ảnh hƣởng tới hiệu năng của toàn bộ mạng.
Cơ chế định tuyến hay thuật toán định tuyến và tầm ảnh hƣởng của nó bị chi phối
bởi nhiều yếu tố, ví dụ nhƣ: kích thƣớc mạng, cấu trúc của mạng, tài nguyên của
mạng.
ZigBee sử dụng cơ chế, thuật toán AODV cho việc định tuyến bên trong mạng lƣới
của nó – mesh network. Phần phức tạp nhất trong cơ chế AODV chính là tìm ra
tuyến – route discovery.
Tìm tuyến là một cơ chế của tầng mạng ZigBee để thu thập thông tin định
tuyến từ mạng. Những thiết bị chƣa biết trong mạng, chƣa có trong bảng định tuyến
thiết bị, sẽ chờ đợi một gói tin RREQ để cho phép truyền thông qua bƣớc nhảy bổ
sung.
Đặc tả ZigBee mô tả tìm ra định tuyến nhƣ sau, khám phá định tuyến đƣợc
khởi tạo bằng cách gửi một tin RREQ tại thiết bị gốc. Gói tin RREQ sẽ đƣợc quảng
bá tới tất cả thiết bị. Mỗi thiết bị nhận đƣợc gói tin RREQ sẽ thêm vào gói tin
những thông tin nhƣ giá trị chi phí của lần truyền cuối cùng. Hơn nữa, thiết bị tìm
kiếm một mục trong bảng định tuyến tƣơng ứng với địa chỉ nguồn và định danh
RREQ trong gói tin. Nếu tồn tại một mục phù hợp trong bảng và chi phí cao hơn so
với chi phí mới tìm đƣợc, bảng định tuyến sẽ đƣợc cập nhật hoặc đƣợc tạo tƣơng
ứng với mục RTE đó.
Các vấn đề chính trong thuật toán:
+ Quảng bá gói tin tìm đƣờng khi cần thiết
+ Phân biệt giữa quản lý kết nối cục bộ và bảo trì mạng tổng quát
22
+ Khuếch tán thông tin khi mạng cục bộ thay đổi tới những node lân cận,
những node cần thông tin này.
2.3.2. Tìm đường - Path Discovery
Quá trình phát hiện đƣờng đƣợc khởi tạo khi một node nguồn cần kết nối tới
một node khác mà nó chƣa có thông tin định tuyến tới node đó trong bảng định
tuyến. Mỗi node trong nó sẽ luôn chứa thông tin riêng biệt về: thứ tự node – node
sequence number và định danh quảng bá – broadcast_id. Node nguồn sẽ khởi tạo
việc tìm đƣờng bằng cách quảng bá gói tin yêu cầu định tuyến tới các hàng xóm của
nó. Gói tin yêu cầu định tuyến–RREQ đó bao gồm các thông tin: <source_addr,
source_sequence_#, broadcast_id, dest_id, dest_sequence_#, hop_cnt>
<source_addr, broadcast_id>: tạo nên một khóa duy nhất cho gói tin RREQ, nó
phân biệt gói tin RREQ này với gói tin RREQ khác. Thông tin broadcast_id sẽ
đƣợc tăng khi node nguồn yêu cẩu thêm một RREQ mới. Mỗi node lân cận xử lý
gói tin RREQ bằng cách gửi lại một gói tin RREP tới node nguồn hoặc quảng bá
tiếp gói tin RREQ tới lân cận của nó sau khi đã tăng chỉ sổ hop_cnt. Lƣu ý rằng,
một node trong mạng có thể nhận đƣợc nhiều gói tin quảng bá yêu cầu định tuyến
giống nhau từ những lân cận khác nhau của nó. Nếu một node trung gian nhận đƣợc
một gói tin RREQ, nếu gói tin đó nó đã nhận đƣợc bằng cách so sánh trƣờng địa chỉ
nguồn – source_addr và broadcast_id, nó sẽ loại bỏ gói tin dƣ thừa đó và sẽ không
quảng bá tiếp gói tin đó.
Nếu node lân cận đó không thể đáp ứng gói tin RREQ, nó sẽ theo dõi thông
tin của gói tin đó bằng cách lần ngƣợc lại đƣờng đi của gói tin, các thông tin sau
vào gói tin RREP: địa chỉ đích, địa chỉ nguồn, định danh quảng bá – broadcast_id,
thời gian cho phép của gói tin, số thứ tự của node nguồn.
23
Hình 2.7 : Mô tả quá trình tìm đƣờng – path discovery
2.3.3. Thiết lập đường ngược
Gói tin RREQ có 2 số thứ tự đó là: số thứ tự nguồn, và số thứ tự đích cuối
cùng. Số thứ tự của nguồn đƣợc sử dụng để duy trì thông tin định tuyến về node
nguồn luôn đƣợc cập nhật và số thứ tự đích chỉ ra cách định tuyến mới nhất tới node
đích trƣớc khi nó đƣợc chấp nhận bới node nguồn.
Gói tin RREQ sẽ phải đi từ node nguồn tới nhiều node đích khác nhau, nó sẽ
tự động ghi lại con đƣờng để trở lại node nguồn. Để ghi lại con đƣờng đó, một
node sẽ ghi lại địa chỉ node lân cận, từ nơi mà nó nhận đƣợc bản sao đầu tiên của
gói tin RREQ. Định tuyến đƣờng ngƣợc này sẽ đƣợc duy trì trong một khoảng thời
gian đảm bảo để gói tin RREQ đi qua mạng và thực hiện một trả lời tới nơi gửi nó.
2.3.4. Thiết lập đường tiến
Cuối cùng, gói tin RREQ có thể đến node nào đó, node đó có thể là node
đích của nó hoặc nằm trên con đƣờng tới node đích. Đầu tiên node đó sẽ kiểm tra
xem gói tin RREQ nhận đƣợc thông qua liên kết hai chiều bi-directional link. Nếu
node trung gian này có chứa thông tin định tuyến tới node đích nó sẽ tiến hành các
bƣớc kiểm tra bằng cách so sánh số thứ tự đích trong bảng định tuyến của node hiện
tại với số thứ tự đích trong gói tin RREQ. Nếu số thứ tự đích lƣu trữ trong gói tin
RREQ lớn hơn số thự tự đích lƣu trong bảng định tuyến của node hiện thời thì node
24
hiện thời không phải sử dụng thông tin định tuyến của nó để đáp ứng gói tin RREQ.
Thay vào đó, node hiện thời sẽ tiếp tục quảng bá gói tin RREQ này tới các node lân
cận của nó. Node trung gian hiện thời chỉ thực hiện việc phản hồi lại gói tin RREQ
chỉ khi nó chứa thông tin định tuyến mà ở đó số thứ tự đích của nó lớn hơn hoặc
bằng số thứ tự đích chứa trong gói tin RREQ. Nếu nó chứa thông tin định tuyến tới
node đích, và nếu gói tin RREQ chƣa đƣợc xử lý trƣớc đó, node hiện thời sẽ thực
hiện một gói tin RREP tới lân cận của nó, nơi mà phát gói tin RREQ này cho nó.
Một gói tin RREP thì bao gồm các thông tin: <địa chỉ nguồn, địa chỉ đích, số thứ tự
đích, số bƣớc nhảy, thời gian sống của gói tin>.
Tại thời điểm một gói tin quảng quá tới đƣợc một node, node mà cung cấp
thông tin đinh tuyến tới node đích, một con đƣờng ngƣợc trở lại node nguồn, node
mà phát đi gói tin RREQ cũng đƣợc thành lập. Khi mà gói tin RREP quay trở lại
node nguồn, nơi phát ra gói tin RREQ, mỗi node dọc theo con đƣờng đó sẽ thiết lập
con trỏ tới node đó, lƣu trữ và cập nhật thông tin về thời gian trễ cho bảng định
tuyến tới node nguồn và node đích và ghi lại số thứ tự cuối cùng của đích cần đến.
Một node mà không thuộc con đƣờng ngƣợc sẽ bị trễ thời gian trong khoảng
3 giây và sẽ bị xóa con trỏ ngƣợc.
Một node khi nhận đƣợc một gói tin RREP lần đầu tiên nó sẽ lan truyền gói
tin này tới node nguồn hay là node mà nó nhận đƣợc gói tin RREQ và cứ vậy cho
tới node nguồn cuối cùng. Nếu nó nhận đƣợc nhiều hơn một gói tin RREQ nó sẽ
phải cập nhật thông tin định tuyến và chỉ truyền gói tin RREQ nếu gói tin đó có
chứa thông tin số thứ tự đích lớn hơn số thứ tự đích của gói tin RREQ trƣớc đó hoặc
có cùng số thứ tự đích nhƣng có số bƣớc nhảy nhỏ hơn. Nó sẽ cấm tất cả các gói tin
RREP khác mà nó nhận đƣợc, điều này đảm bảo số lƣợng gói tin RREP đƣợc truyền
tới nguồn trong khi vẫn đảm bảo thông tin định tuyến tốt nhất. Node nguồn có thể
bắt đầu truyền dữ liệu ngay khi nhận đƣợc gói tin RREP đầu tiên và có thể cập nhật
thông tin định tuyến nếu tìm đƣợc thông tin định tuyến tốt hơn.
25
2.3.5. Quản lý bảng định tuyến
Bên cạnh thông tin về số thứ tự của nguồn và số thứ thứ tự của đích, một số
thông tin có ích khác cũng đƣợc lƣu trữ trong bảng thông tin định tuyến và đƣợc gọi
là trạng thái mềm – soft state. Một liên kết tới thông tin định tuyến về con đƣờng
ngƣợc đƣợc gọi là: thời gian hết hiệu lực yêu cầu định tuyến – route request
expiration timer. Mục đích của bộ đếm thời gian này chính là làm sạch con đƣờng
định tuyến ngƣợc từ node phát gói tin RREP về node nguồn, nó đảm bảo những
node không nằm trên con đƣờng đó đƣợc loại bỏ. Bộ đếm thời gian này phụ thuộc
vào các yếu tố nhƣ kích thƣớc của mạng. Một biến số quan trọng trong bảng định
tuyến đƣợc đề cập tới đây là route-caching-timeout, hoặc là có thể hiểu là thời gian
sau khi một định tuyến đƣợc cân nhắc để loại bỏ.
Trong bảng định tuyến cũng lƣu trữ địa chỉ của các lân cận tích cực , các lân
cận đƣợc cân nhắc là tích cực nếu nó có thể khởi phát hoặc chuyển tiếp một gói tin
tới đích trong một khoảng thời gian cho phép. Thông tin địa chỉ này sẽ đƣợc duy trì
chính vì vậy tất cả các lân cận tích cực sẽ thông báo nếu đƣờng liên kết dọc theo tới
node đích bị gẫy.
Mỗi một phần tử trong bảng định tuyến sẽ chứa các thông tin sau: đích, bƣớc
nhảy tiếp theo, số bƣớc nhảy, số thứ tự của node đích, lân cận tích cực cho định
tuyến, thời gian hiệu lực cho phần tử bảng định tuyến.
Mỗi khi một phần tử trong bảng định tuyến đƣợc sử dụng để truyền dữ liệu
từ nguồn tới đích, thời gian trễ cho phần tử này sẽ đƣợc tính lại từ thời gian hiện tại
cộng thêm thời gian trễ định tuyến tích cực.
2.3.6. Bảo trì đường dẫn
Việc di chuyển của các node không nằm trên đƣờng dẫn tích cực không ảnh
hƣởng tới việc định tuyến tới đích. Đƣờng dẫn tích cực là đƣờng dẫn từ node nguồn
tới node đích. Nếu node nguồn di chuyển trong phiên truyền dữ liệu, nó có thể khởi
tạo lại việc tìm đƣờng để tìm ra một định tuyến mới tới đích. Ngay cả khi node đích
26
di chuyển hoặc một vài node trung gian trên đƣờng dẫn tích cực di chuyển thì một
gói tin RREP đặc biệt sẽ đƣợc gửi tới node nguồn. Theo chu kỳ, một thông điệp
hello có thể đƣợc sử dụng đảm bảo liên kết đối xứng giữa nguồn và đích một cách
tốt nhất, mục đích của thông điệp là phát hiện hiện lỗi trên đƣờng liên kết. Bên cạnh
việc kiểm tra đƣờng liên kết bằng phát đi thông điệp hello, còn có 1 cách khác nhƣ
là 1 sự thay thế đó là việc sử dụng LLACK – Link Layer Ack. Một liên kết lỗi sẽ
đƣợc thông báo nếu cố gắng chuyển tiếp một gói tin tới bƣớc chuyển lỗi kết tiếp.
Một trong bƣớc nhảy kế tiếp không thể kết nối, node trƣớc đó sẽ phải lan
truyền một gói tin RREP không mong muốn với số thứ tự đã đƣợc làm mới (số thứ
tự phải là số lớn hơn số trƣớc đó) và số bƣớc nhảy sẽ chuyển thành vô cùng tới tất
cả các node lân cận. Các node phía sau sẽ chuyển tiếp gói tin đó tới các lân cận của
nó và cứ thế. Quá trình này sẽ tiếp tục đến khi tất cả node nguồn tích cực đƣợc
thông báo. Nó kết thúc bởi vì thuật toán AODV chỉ duy trì các định tuyến lặp miễn
phí – loop-free và định tuyến đó chỉ có hữu hạn các node trong mạng. Khi nhận
đƣợc thông báo của một liên kết hỏng, node nguồn có thể khởi động lại quá trình
tìm đƣờng nếu nó vẫn muốn định tuyến tới đích. Để xác định định tuyến đó vẫn còn
cần thiết, một node có thể kiểm tra các định tuyến đƣợc sử dụng gần đây cũng nhƣ
kiểm tra khối điều khiển giao thức cấp trên để xem liệu kết nối đó vấn đƣợc mở
bằng cách sử dụng một đích đƣợc chỉ định. Nếu node nguồn hoặc bất kỳ một node
thuộc định tuyến trƣớc đó quyết định sẽ xây dựng lại định tuyến tới node đích, nó sẽ
gửi một gói tin RREQ với số thứ tự đích lớn hơn số thứ tự đích trƣớc đó để chắc
chắn một định tuyến mới sẽ đƣợc xây dựng lại và có thể tồn tại và nếu không có
một node nào trả lời gói tin RREQ đó thì mặc định định tuyến cũ sẽ đƣợc sử dụng
nhƣ một định tuyến chắc chắn.
2.3.7. Quản lý kết nối cục bộ
Một node có thể biết thông tin về lân cận của nó bằng một trong hai cách.
Bất cứ khi nào một node nhận đƣợc thông tin quảng quá từ lân cận, nó sẽ cập nhật
thông tin của lân cận đó đảm bảo nó luôn lƣu trữ thông tin của lân cận. Trong
27
trƣờng hợp một node không gửi bất kỳ một gói tin nào tới các lân cận tích cực dƣới
nó – downstream bên trong phạm vi hello_interval, nó sẽ quảng bá tới lân cận của
nó một thông điệp hello (một gói tin RREP đặc biệt) nó chứa thông tin định danh và
số thứ tự của node. Số thứ tự của node không thay đổi với thông điệp hello trong
quá trình truyền tin này. Thông điệp hello này bị ngăn ngừa không đƣợc quảng bá
lại bên ngoài các lân cận của node bởi vì nó chỉ đƣợc phép sống trong một khoảng
thời gian. Lân cận nhận đƣợc gói tin cập nhật thông tin cục bộ của node. Việc nhận
một quảng bá hoặc là nhận một thông điệp hello từ một lân cận mới hoặc là lỗi khi
nhận allowed_hello_loss liên tiếp thông điệp hello từ node trƣớc đó trong lân cận là
dấu hiệu chỉ ra rằng liên kết cục bộ đã bị thay đổi. Lỗi khi nhận thông điệp hello từ
lân cận không tích cực sẽ không kích hoạt bất kỳ hành động của giao thức. Nếu
những thông điệp hello không đƣợc nhận từ những bƣớc nhảy kế tiếp dọc theo
đƣờng dẫn tích cực, lân cận tích cực sử dụng bƣớc nhảy kế tiếp sẽ đƣợc gửi thông
báo rằng đƣờng liên kết bị lỗi.
Quản lý thông tin kết nối cục bộ với thông điệp hello có thể đƣợc sử dụng để
chắc chắn rằng chỉ những node với đƣờng liên kết hai chiều đƣợc cân nhắc là những
lân cận. Với mục đích này thì mỗi thông điệp hello gửi bởi một node sẽ liệt kê tất cả
những node là lân cận. Mỗi node sẽ kiêm tra để chắc chắn rằng nó chỉ sử dụng định
tuyến tới lân cận của nó khi mà nó có thể nghe đƣợc thông điệp hello từ node đó.
Để tiết kiệm băng thông cục bộ, việc kiêm tra nhƣ vậy chỉ khi mà các node đã đƣợc
cấu hình rõ ràng.
2.4. Thuật toán hình cây
2.4.1. Tổng quan
Thuật toán hình cây là giao thức của tầng mạng và tầng datalink, giao thức
này sử dụng gói tin “trạng thái kết nối” để định dạng một mạng hình cây đơn, cũng
nhƣ một mạng hình cây mở rộng. Loại mạng này cơ bản là một loại mạng có tính
chất tự tổ chức và tự hỗ trợ để hạn chế lỗi mạng một mức độ lỗi cho phép, đặc biệt
hơn do đây là một loại mạng có tính chất tự tổ chức nên nó cũng có thể tự sửa chữa
28
khi gặp sự cố ở một node mạng nào đó. Các node mạng chọn một node làm gốc cây
và tạo các nhánh cây một cách tự do. Sau đó cách nhánh cây tự phát triển kết nối tới
những nhánh cây khác nhờ vào thiết bị gốc (DD- Designated Deviece).
2.4.2. Cây đơn nhánh
Quá trình hình thành nhánh cây bắt đầu bằng việc chọn gốc cây. Sau khi một
node gốc đƣợc chọn, nó sẽ mở rộng kết nối với các node khác để tạo thành một
nhóm. Sau khi một node đƣợc kích hoạt nó sẽ dò tìm HELLO message từ các node
khác (HELLO message tƣơng tự nhƣ beacon trong tầng MAC theo chuẩn IEEE
802.15.4). Nếu trong một thời gian nhất định nào đó nó không nhận đƣợc bất kỳ
một HELLO message nào, thì node này sẽ tự trở thành node gốc và lại gửi HELLO
message tới các node lân cận. Node gốc mới này sẽ chờ gói tin yêu cầu kết nối từ
các node lân cận trong một khoảng thời gian nào đó, nếu nó vẫn không nhận đựơc
bất kỳ yêu cầu kết nối nào từ các node lân cận thì nó sẽ trở lại thành một node bình
thƣờng và lại tiếp tục dò tìm HELLO_MESSAGE. Node gốc cũng có thể đƣợc chọn
lựa dựa trên tham số của mỗi node mạng (ví dụ nhƣ phạm vi truyền, công suốt, vị
trí, khả năng tính toán ).
Sau khi trở thành node gốc, nó sẽ phát quảng bá gói tin HELLO_MESSAGE
theo chu kỳ, gói tin HELLO_MESSAGE này gồm một phần địa chỉ MAC và địa chỉ
ID của node gốc. Những node mạng nhận đựợc gói tin này sẽ gửi trả lời lại bằng gói
tin yêu cầu kết nối (REQ) tới node gốc (nơi vừa phát đi). Khi node gốc nhận đựợc
gói tin yêu cầu kết nối, nó sẽ ngay lập tức gửi trả lại gói tin vừa đƣa ra yêu cầu bằng
một gói tin khác CONNECTION_RESPONSE., gói tin này chứa địa chỉ ID cho
node thành viên (node B), địa chỉ ID này do node gốc qui định. Để xác nhận thông
tin thì node thành viên B này sẽ gửi lại node gốc gói tin Ack.
Nếu tất cả các node đều ở trong phạm vi phủ song của node gốc thì kiến trúc
mạng là kiến trúc hình sao, tất cả các node thành viên sẽ liên lạc trực tiếp với node
gốc qua một bƣớc truyền (onehop). Một nhánh có thể phát triển thành cấu trúc
mạng liên lạc qua nhiều bƣớc truyền (multihop).
29
Tất nhiên node gốc chỉ có thể quản lý đƣợc một số hữu hạn các node, và các
nhánh của mạng cũng chỉ có thể vƣơn tới những khoảng cách hạn chế… chính vì
thế mà có lúc node mạng cũng cần phải từ chối kết nối của những node mới. Việc từ
chối này đƣợc thực hiện nhờ vào việc chỉ định một ID đặc biệt cho node này. Bảng
danh sách các node lân cận và tuyến đƣờng luôn luôn đƣợc cập nhật mới thông qua
gói tin HELLO_MESSAGE. Trong một thời gian nhất định, nếu vì một lý do nào
đó mà một node không đựợc cập nhật các thông tin trên thì nó sẽ bị loại bỏ.
Tất nhiên trong một mạng có tính chất tự do, tự tổ chức nhƣ loại mạng này
thì không thể tránh khỏi việc một node mạng thuộc nhánh này lại nhận đựợc gói tin
HELLO_MESSAGE của nhánh khác. Vậy trong trƣờng hợp này node mạng này sẽ
tự động thêm địa chỉ ID của nhánh mới này (CID) vào danh sách các node lân cận
và gửi nó tới node gốc (CH) thông qua gói tin báo cáo tình trạng đƣờng truyền, để
từ đó node gốc (CH) có thể biết đƣợc nhánh mạng nào tranh chấp để xử lý.
Bản tin báo cáo tình trạng kết nối cũng chứa danh sách ID node lân cận của
node đó, điều này giúp cho node gốc biết đựợc trọn vẹn cấu trúc mạng để có thể
đƣa ra cấu trúc tối ƣu. Khi cấu trúc mạng cần thay đổi, node gốc (CH) sẽ phát đi
bản tin cập nhật tới các node thành viên. Node thành viện nào nhận đựợc bản tin
cập nhật này lập tức thay đổi các thông tin về node gốc nhƣ trong bản tin này, đồng
thời cũng tiếp tục gửi đến các node ở cấp thấp hơn trong nhánh cây tại thời điểm đó.
Khi một node thành viên có vấn đề, không thể kết nối đƣợc thì node gốc phải
định dạng lại tuyến đƣờng. Thông qua bản tin báo cáo tình trạng đƣờng truyền đƣợc
gửi theo chu kỳ thì node gốc có thể biết đƣợc vấn đề của node mạng đó. Nhƣng khi
node gốc gặp phải vấn đề trong liên lạc thì việc phát bản tin HELLO_MESSAGE
theo chu kỳ sẽ bị gián đoạn, khi đó các node thành viên sẽ mất đi node gốc, và
nhánh đó sẽ phải tự định dạng lại từ đầu theo cách tƣơng tự nhƣ quá trình định dạng
nhánh cây.
30
2.4.3. Cây đa nhánh
Để tạo định dạng lên loại mạng này thì cần phải sử dụng thiết bị gốc (DD).
Thiết bị này có trách nhiệm gán địa chỉ ID nhóm (địa chỉ này là duy nhất) cho các
node gốc(CH). Địa chỉ ID nhóm này kết hợp với địa chỉ ID node (là địa chỉ NID mà
node gốc gán cho các node thành viên trong nhánh của mình) tạo ra địa chỉ logic và
đựợc sử dụng trong các gói tin tìm đƣờng. Một vai trò quan trọng nữa của thiết bị
gốc DD là tính toán quãng đƣờng ngắn nhất từ nhánh mạng tới DD và thông báo nó
tới tất cả các node mạng.
Khi thiết bị gốc DD tham gia vào mạng, nó sẽ hoạt động nhƣ một node gốc
của nhánh số 0 (CID 0) và bắt đầu phát quảng bá HELLO_MESSAGE tới các node
lân cận. Nếu một node gốc (CH) nhận đƣợc bản tin này, nó sẽ gửi bản tin yêu cầu
kết nối tới DD để tham gia vào CID 0, sau đó node gốc này sẽ yêu cầu DD gán cho
nó một ID nhánh (CID). Nhƣ vậy thì node gốc này có hai địa chỉ logic, một là thành
viên của CID 0, thứ hai là địa chỉ của node gốc. Khi node gốc tạo ra một nhánh mới,
(một CID mới), nó sẽ thông báo đến các node thành viên của nó bằng bản tin
HELLO_MESSAGE.
Khi một thành viên nhận đựợc bản tin HELLO_MESSAGE từ thiết bị DD,
nó sẽ thêm địa chỉ ID của CID 0 vào danh sách thành viên rồi thông báo cho node
gốc. Node gốc đựợc thông báo này sẽ chọn node thành viên này nhƣ là một node
trung gian giữa nó với node gốc của nó, rồi gửi bản tin yêu cầu kết nối mạng tới các
node thành viên để thiết lập kết nối với thiết bị DD. Node trung gian này yêu cầu
một kết nối và tham gia vào thành viên của nhóm số 0. Sau đó nó sẽ gửi bản tin yêu
cầu CID tới thiết bị DD. Đến khi nhận đựợc đáp ứng CID, node trung gian này gửi
bản tin đáp ứng liên kết mạng này tới node CH, bản tin này chứa các thông tin về
địa chỉ ID nhánh mới cho node gốc CH. Sau khi node gốc có đựợc CID mới, thì
cách thành viên trong nhánh của node gốc cũng sẽ nhận đựợc thông qua
HELLO_MESSAGE.
31
Trong mạng này thì việc tự tổ chức mạng là một tính chất khá mạnh mẽ, và
mềm dẻo. Cứ nhánh mạng liền trƣớc sẽ có nhiệm vụ gán CID cho nhánh mạng sau.
Mỗi một node thành viên của nhánh phải ghi lại thông tin về nhánh gốc và các
nhánh con của nó, hoặc cả ID của node trung gian nếu có. Thiết bị gốc phải có trách
nhiệm lƣu giữ toàn bộ thông tin về cấu trúc cây mạng của các nhánh. Cũng giống
nhƣ các node thành viên của nhánh thì các node gốc CH cũng là thành viên của thiết
bị gốc và nhƣ vậy chúng cũng phải có trách nhiệm thông báo tình trạng đƣờng
truyền đến DD. Để thực hiện thì node gốc phải gửi định kỳ bản tin thông báo tình
trạng đƣờng truyền trong mạng tới DD, bản tin này chứa danh sách CID lân cận.
DD sau khi xử lý thông tin sẽ tính toán, chọn lựa ra đƣờng truyền tối ƣu nhất rồi
thông báo định kỳ tới các nhánh của nó thông qua bản tin cập nhật. Nhƣ trên ta có
thể thấy vai trò của thiết bị gốc này là rất quan trọng, chính vì thế luôn cần có
những thiết bị gốc dự phòng (BDD) sẵn sang thay thế thiết bị chính khi gặp sự cố.
Các node trung gian vừa liên kết các nhánh mạng, vừa chuyển tiếp các gói
tin giữa các nhánh mạng. Khi node trung gian nhận đựợc một gói tin, nó sẽ kiểm tra
địa chỉ đích của gói tin đó, sau đó sẽ chuyển tới địa chỉ đích của nó nếu địa chỉ đích
nằm trong nhánh này hoặc là chuyển tiếp tới node trung gian tiếp theo của nhánh
liền kề nếu địa chỉ đích không nằm trong nhánh của nó.
Chỉ duy nhất thiết bị gốc mới có thể gửi bản tin tới tất cả các node trong
mạng, bản tin này đựợc chuyển dọc theo tuyến đƣờng của các nhánh. Các node
trung gian thì chuyển tiếp các gói tin quảng bá từ nhánh gốc đến các nhánh con.
2.5. Vấn đề tối ƣu năng lƣợng tiêu thụ trong mạng cảm biến ZigBee
Năng lƣợng trong mạng cảm biến ZigBee bị giới hạn so với các mạng không
dây khác do bản chất của các thiết bị cảm biến. Thông thƣờng, mỗi node mạng cảm
biến đƣợc trang bị một nguồn năng lƣợng giới hạn. Trong một số ứng dụng, việc bổ
sung năng lƣợng rất khó khăn, có khi là không thể bổ sung, vì vậy thời gian sống
của mạng phụ thuộc nhiều vào thời gian sống của mỗi node mạng, thời gian này lại
phụ thuộc vào nguồn năng lƣợng của PIN.
32
Vậy làm thế nào để kéo dài chu kỳ sống của thiết bị. Với mạng cảm biến
ZigBee câu hỏi đặt ra là làm thế nào để giảm thiểu năng lƣợng tiêu thụ bằng phần
mềm? Để thực hiện đƣợc điều đó, tất cả các giao thức truyền thông phải hƣớng đến
tiết kiệm năng lƣợng.
Tiết kiệm năng lƣợng ở lớp vật lý: Sử dụng kỹ thuật điều chế tín hiệu số: O-
QPSK, FSK cải thiện hiệu suất bộ khuếch đại công suất. Các kỹ thuật mã hóa sửa
sai phức tạp nhƣ Turbo Code, LDPC không đƣợc sử dụng, kỹ thuật trải phổ đƣợc sử
dụng để cải thiện SNR ở thiết bị thu và giảm tác động của fading kênh truyền...
Tiết kiệm năng lƣợng ở lớp MAC: Sử dụng kỹ thuật đa truy cập TDMA hoặc
CSMA-CA hiệu chỉnh với mục đích giảm năng lƣợng tiêu thụ.
Tiết kiệm năng lƣợng trong các giao thức định tuyến: Trong mạng adhoc nói
chung, và WSN nói riêng, đƣờng đi giữa các node trong mạng sẽ thay đổi theo thời
gian (do node di chuyển, do chất lƣợng kênh truyền thay đổi theo thời tiết, do node
hết năng lƣợng). Tiết kiệm năng lƣợng là một vấn đề phức tạp. Một số bài toán
đƣợc đặt ra nhƣ: làm thế nào để xây dựng đƣợc thuật toán định tuyến nhanh chóng
mà không cần phải gửi tới tất cả các node trong mạng. Cần một thuật toán tìm
đƣờng đi mà sao cho tổng năng lƣợng tiêu tốn là thấp nhất hoặc tỉ lệ giữa lƣợng dữ
liệu truyền và năng lƣợng tiêu thụ là cao nhất...
Tiết kiệm năng lƣợng trong quản lý bảo mật: Sử dụng một cơ chế phân bố,
cung cấp và quản lý khóa bảo mật khi một node từ bỏ khỏi mạng WSN, hoặc một
nhóm những node trong mạng bắt đầu trao đổi với nhau sao cho số lƣợng bản tin
trao đổi giữa các node là thấp nhất, qua đó tiết kiệm năng lƣợng tiêu thụ.
Ngoài ra thông tin còn thể đƣợc xử lý trƣớc khi gửi đi để giảm năng lƣợng
tiêu thụ chung.
Mạng cảm biến ZigBee cũng nhƣ mạng cảm biến không dây có đặc điểm là
số lƣợng node trong mạng lớn, khoảng cách giữa các node lân cận trong mạng là
nhỏ. Thành phần cấu thành lên mạng ZigBee đa phần là các node, chi phí cho các
node là thấp. Mức tiêu thụ năng lƣợng thấp hơn nhiều, bởi vì việc thay thế pin
33
(nguồn năng lƣợng chính cung cấp cho các node trong mạng) thậm chí một tháng
một lần cũng sẽ rất vất vả hay nói cách khác thời gian và chi phí để duy trì hệ thống
sẽ phải tăng lên nhiều.
Mặt khác trong mạng cảm biến không dây thì giao tiếp không dây là kỹ thuật
chính, giao tiếp giữa các node trong mạng sẽ bị nhiều hạn chế do các yếu tố khoảng
cách hoặc vật cản. Chính vì thế cần có thuật toán phù hợp giúp toàn bộ hệ thống
hoạt động hiệu quả về năng lƣợng, khi năng lƣợng đƣợc quản lý một cách hiệu quả
sẽ tăng lên chu kỳ sống của hệ thống.
Nhƣ đã đề cập ở các phần trên chuẩn IEEE 802.14.5 không cung cấp một
chiến lƣợc định tuyến nào tại tầng mạng. Việc định tuyến dữ liệu tại tầng mạng
đƣợc cung cấp tại tầng liên kết dữ liệu. Việc định tuyến trong mạng cảm biến không
dây nói chung và trong mạng cảm biến ZigBee gặp rất nhiều vấn đề khó khăn, thách
thức đó là:
+ Mạng cảm biến có một số lƣợng lớn các node, cho nên ta không thể xây
dựng đƣợc sơ đồ địa chỉ toàn cục cho việc triển khai số lƣợng lớn các node.
+Dữ liệu trong mạng cảm biến thu nhận đƣợc từ nhiều nguồn khác nhau.
+Hầu hết trong các ứng dụng, các node nói chung là tĩnh sau khi đƣợc triển
khai ngoại trừ một số node có thể di động.
+ Mạng cảm biến là một ứng dụng riêng biệt
+Việc nhận biết vị trí là vấn đề quan trọng, vì tập hợp dữ liệu thƣờng dựa
theo vị trí.
+Khả năng dƣ thừa dữ liệu rất cao, vì các node cảm biến thu thập dữ liệu dựa
trên các nguồn chung.
+Công nghệ năng lƣợng chƣa đáp ứng.
Do vậy thiết kế lớp mạng trong cảm biến ZigBee phải đảm bảo các nguyên
tắc sau:
34
Hiệu quả năng lƣợng phải đƣợc đặt lên hàng đầu
Để đạt đƣợc hiệu quả trong quản lý năng lƣợng tại lớp mạng đòi hỏi phải có
thuật toán định tuyến dữ liệu phù hợp cho phép tối ƣu năng lƣợng cho tất cả các
node trong mạng. Một hƣớng đi khác là tùy theo vào cấu hình mạng, ta đƣa ra thuật
toán định tuyến phù hợp với cấu hình mạng để tối ƣu hóa nhất có thể năng lƣợng
của mạng.
Tuy nhiên vấn đề định tuyến cũng gặp không ít những thách thức
+ Tính động của mạng: Các thành phần cấu thành nên mạng ZigBee có thể di
động đặc biệt là các node cảm biến. Khi đó việc định tuyến sẽ phải đối mặt nhiều
vấn đề nhƣ: đƣờng liên lạc, cấu hình mạng, năng lƣợng và độ rộng băng thông.
+ Triển khai các node mạng: Trong mạng cảm biến ZigBee các node cảm
biến đƣợc phân bố ngẫu nhiên tạo ra một cấu trúc ad-hoc, trong cấu trúc đó việc đặt
các thiết bị ZC và ZR cũng rất quan trọng, sẽ góp phần vào hoạt động hiệu quả năng
lƣợng của mạng. Trong mạng cảm biến nói chung và mạng cảm biến ZigBee, quá
trình định tuyến bị ảnh lớn bởi năng lƣợng. Sở dĩ nói vậy vì năng lƣợng truyền đi
của sóng vô tuyến là một hàm suy hao theo khoảng cách và đặc biệt suy giảm nhiều
trong trƣờng hợp có nhiều vật cản. Việc định tuyến đa bƣớc nhảy sẽ giảm việc tiêu
hao năng lƣợng hơn là việc truyền dữ liệu trực tiếp giữa các node. Định tuyến trực
tiếp sẽ tốt trong trƣờng hợp tất cả node cảm biến đều gần ZC, ZR.
Tiết kiệm năng lƣợng trong hầu hết các mạng/ thiết bị viễn thông đang là
một vấn đề đƣợc quan tâm hàng đầu đối với các nhà mạng cũng nhƣ ngƣời sử dụng.
Tuy nhiên, với đặc tính riêng của mình, vai trò của tiết kiệm năng lƣợng trong mạng
WSN nói chung và mạng cảm biến ZigBee nói riêng là cực kỳ quan trọng. Nó ảnh
hƣởng trực tiếp đến chu kỳ sống của các bộ cảm biến trong, qua đó ảnh hƣởng đến
hiệu quả của toàn hệ thống.
Một số nguyên lý dƣới đây có thể tối ƣu việc quản lý năng lƣợng trong
mạng ZigBee:
35
Cơ bản ZigBee sử dụng thuật toán AODV là thuật toán định tuyến cho gói
tin. Đặc tả ZigBee đƣa ra một số tối ƣu cho định tuyến. Đó là: many-to-one,
neighbor table và link status message.
Bảng lân cận - Neighbor table: ZigBee sử dụng bảng lân cận để giảm số gói
tin RREQ đƣợc truyền trong mạng. Bảng lân cận chứa các thông tin về mỗi lân cận
để có thể gia nhập hoặc tái gia nhập mạng thông tin định tuyến. Cơ chế định tuyến
này đƣợc tối ƣu bởi vì nó sử dụng địa chỉ của thiết bị nhƣ một phần thông tin trong
bảng lân cận. Hơn thế nữa, chi phí để tới node đích thông qua các lân cận cũng
đƣợc lƣu lại. Bảng thông tin này đƣa ra một cái nhìn khái quát hơn về các lân cận
trung gian và cho phép tự kết nối của thiết bị. Điều đó có nghĩa mỗi gói tin khởi
nguồn từ thiết bị không nằm trong bảng lân cận sẽ thêm một mục vào trong bảng
lân cận.
Thông tin trạng thái đƣờng kết nối – Link Status Message: Việc xây dựng
một mạng không dây đòi hỏi cân nhắc đến yếu tố di động của mạng. Nó làm tăng
tính động cho các thiết bị. Để nhận biết sự thay đổi cấu trúc của mạng các thiết bị
ZC và ZR cần thiết gửi các gói tin về trạng thái liên kết trong mạng. Thông điệp về
trạng thái của mạng sẽ đƣợc gửi tới tất cả lân cận trong phạm vi của ZC và ZR để
các lân cận biết đƣợc vị trí của chúng trong mạng và chất lƣợng của mạng tại thời
điểm gửi. Việc gửi các gói tin này giúp cho các lân cận luôn trong trạng thái đƣợc
cập nhật thông tin. Điều này giúp cho việc định tuyến của hệ thống đƣợc diễn ra
nhanh chóng. Tuy nhiên việc sử dụng gói tin trạng thái liên kết chỉ nên áp dụng với
các mạng đòi hỏi tính động, với các mạng tĩnh thì điều này là không cần thiết.
2.6. Thuật toán định tuyến tối ƣu năng lƣợng trong mạng cảm biến
ZigBee
Nhƣ đã đề cập ở phần trên, năng lƣợng trong mạng cảm biến nói chung và
mạng cảm biến ZigBee là vấn đề còn nhiều thách thức. Làm thế nào để tiết kiệm
năng lƣợng, tiết kiệm ở bƣớc nào là tốt nhất…Luôn là câu hỏi đƣợc các nhà nghiên
cứu đặt ra nhiều nhất.
36
Ta biết rằng quá trình truyền tin là quá trình tiêu hao rất nhiều năng lƣợng do:
Tiêu hao năng lƣợng qua công suất phát sóng các sensor trong mỗi node
mạng.
Tiêu hao năng lƣợng khi xử lý thuật toán định tuyến.
Tiêu hao khi có sự xung đột giữa 2 gói tin đƣợc truyền cùng thời điểm, hoặc
gói tin bị hỏng, phải yêu cầu truyền lại.
Tiêu hao do vấn đề nghe khi rỗi ( Idle Listening). Nó xảy ra khi thành phần
sóng vô tuyến thực hiện nghe xem có dữ liệu để nhận không.
Tiêu hao do vấn đề nghe thừa ( Over hearing). Nó xảy ra khi một node mạng
nhận đƣợc gói tin dành cho node khác.
Nếu việc định tuyến sai, dẫn đến truyền tin sai sẽ làm thay đổi trạng thái toàn mạng.
Khi đó, việc định tuyến và truyền tin lại vô cùng mất thời gian và tiêu tốn nhiều
năng lƣợng. Vì vậy, định tuyến đúng, truyền tin chính xác là một bƣớc quan trọng
nếu muốn tiết kiệm năng lƣợng.
Vấn đề khó khăn nhất chính là đƣa ra đƣợc một thuật toán định tuyến để tối
ƣu năng lƣợng cho tất cả các trƣờng hợp. Với từng điều kiện cụ thể, mỗi thuật toán
sẽ phát huy một thế mạnh riêng. Trong điều kiện nghiên cứu của luận văn, ta tìm
hiểu một số thuật toán định tuyến sau :
Thuật toán định tuyến LEACH [13] là thuật toán định tuyến phân cấp. Mục
đích chính của định tuyến phân cấp là để duy trì hiệu quả việc tiêu thụ năng lƣợng
của các node cảm ứng bằng việc đặt chúng trong giao tiếp đa bƣớc nhảy trong một
cụm cụ thể và bằng việc thực hiện tập trung và hợp nhất dữ liệu để giảm số bản tin
đƣợc truyền tới ZC. Sự hình thành các cụm chủ yếu dựa trên năng lƣợng dữ trữ của
các cảm biến và vùng lân cận của cảm biến so với các node chủ của cụm. LEACH
là một trong những tiếp cận định tuyến phân cấp đầu tiên cho mạng cảm ứng. Ý
tƣởng của LEACH là động lực cho rất nhiều thuật toán định tuyến phân cấp khác
37
phát triển. Chẳng hạn nhƣ thuật toán định tuyến HERA [3] mà chúng ta đã nói ở
trên.
Mục tiêu chính của LEACH là:
+ Mở rộng thời gian sống của mạng
+ Giảm sự tiêu thụ năng lƣợng của mỗi node mạng
+ Sử dụng tập trung dữ liệu để giảm bản tin truyền trong mạng
LEACH thông qua mô hình phân cấp để tổ chức mạng thành các cụm, mỗi
cụm sẽ đƣợc quản lý bởi một node chủ. Node chủ sẽ thực hiện nhiều nhiệm vụ đó
là: thu thập dữ liệu từ các node thành viên theo chu kỳ, trong quá trình thu thập dữ
liệu node chủ sẽ cố gắng tập hợp dữ liệu để giảm dƣ thừa về những dữ liệu dƣ thừa
giống nhau, ngoài ra node chủ sẽ truyền trực tiếp dữ liệu đã đƣợc tập hợp đến các
trạm cơ sở, việc truyền này đƣợc tiến hành bằng bƣớc nhảy đơn, cuối cùng LEACH
sẽ tạo ra mô hình ghép kênh theo thời gian, mỗi node trong cụm sẽ đƣợc gán một
khe thời gian mà có thể sử dụng để truyền tin.
Việc đƣa ra đƣợc một thuật toán tối ƣu năng lƣợng cho tất cả các trƣờng hợp
cấu hình trong mạng cảm biến ZigBee là thách thức lớn. Bản thân thuật toán định
tuyến AODV đã có sẵn ƣu điểm đó, nó là nền tảng để phát triển các thuật toán định
tuyến khác. Tuy nhiên trong một số trƣờng hợp cụ thể, ta có thể đƣa ra thuật toán
phù hợp, có thể tối ƣu đƣợc năng lƣợng hơn thuật toán AODV.
Tiêu chí đánh giá tối ƣu năng lƣợng của thuật toán AODV :
Đối với hệ thống nói chung, hiệu suất là độ đo công việc mà hệ thống thực
hiện đƣợc bao gồm tính sẵn sàng, thông lƣợng, và thời gian đáp ứng. Vì thế, ở đây
chúng ta sử dụng các thông số sau để đánh giá hiệu suất của các giao thức định
tuyến trong mạng mô phỏng :
Tỉ lệ gói tin nhận đƣợc : là tỉ lệ giữa số lƣợng các gói tin đến đƣợc đích và số
lƣợng các gói tin dƣợc tạo ra bởi node phát.
38
Độ trễ trung bình đầu cuối : là tổng độ trễ đƣợc tính từ khi node nguồn phát
gói tin đến khi node đích nhận đƣợc gói tin. Nó bao gồm : trễ phát hiện đƣờng, xếp
hàng tại các hàng đợi, trễ do phát lại tại tầng MAC và trễ thời gian truyền.
Ý nghĩa : Hai độ đo này đánh giá kết quả hoạt động của giao thức định
tuyến. Nó có ý nghĩa đối với hoạt động của giao thức lớp trên nhƣ giao thức giao
vận và giao thức ứng dụng. Ngoài ra, đối với mạng adhoc, việc hạn chế tài nguyên
mạng đòi hỏi các giao thức phải sử dụng hiệu quả các tài nguyên này. Với giao thức
định tuyến, đó chính là chi phí để thực hiện các yêu cầu định tuyến. Do đó, ngƣời ta
đã xét thêm một thông số nữa để thể hiện việc sử dụng các tài nguyên mạng. Đó là
tải định tuyến chuẩn hóa: là tỉ lệ giữa số các gói tin định tuyến trên số gói tin dữ liệu
đƣợc gửi đi. Nếu gói tin định tuyến đi qua nhiều chặng thì mỗi chặng đƣợc tính nhƣ
là một truyền thông.
Thông lƣợng trung bình : là tỉ lệ giữa số gói tin dữ liệu đƣợc truyền trên một
đơn vị thời gian.
Ý nghĩa : Khi băng thông sẵn có trên mạng thì mô phỏng băng thong thực sự
có đƣợc là bao nhiêu? Thông số thông lƣợng T sẽ cho biết băng thông thực sự khi
mô phỏng và có thể cho thấy sự hiệu quả của giao thức định tuyến. Thông lƣợng
trung bình cao nghĩa là băng thong dành cho định tuyến ít, khi đó giao thức định
tuyến hoạt động tốt.
Tải thông tin định tuyến : là tỉ lệ giữa gói tin định tuyến đƣợc gửi đi với số
gói dữ liệu đƣợc gửi tới đích.
Ý nghĩa : Nó cho biết hiệu năng sử dụng băng thông của giao thức định
tuyến ( bao nhiêu băng thông đƣợc sử dụng cho bản tin định tuyến, bao nhiêu băng
thông đƣợc sử dụng cho các gói tin dữ liệu. Phần tải định tuyến trong giao thức định
tuyến theo yêu cầu thông thƣờng lớn do nó phải gửi bản tin cập nhật định kỳ trên
toàn mạng. Trƣờng hợp lý tƣởng là không có bản tin định tuyến, chỉ có gói tin dữ
liệu đƣợc truyền trên mạng, tuy nhiên, nếu không có giao thức định tuyến thì không
thể triển khai thực tế.
39
Trong phạm vi nghiên cứu của luận văn, em xin đƣa ra kiến nghị thuật toán
dƣới đây nhƣ là một thay thế có thể cho thuật toán AODV trong việc tối ƣu năng
lƣợng của mạng trong một số trƣờng hợp áp dụng cụ thể đó là trong cấu trúc mạng
phẳng.
Dƣới đây là thuật toán dựa trên thuật toán hình cây – tree based on scheme. –
Hierarchical Routing Algorthim – HERA [3]:
Thuật toán HERA đƣợc sử dụng bởi nó mang lại một số lợi ích cho tầng
MAC. Hay nói cách khác, ZigBee đƣợc xây dựng trên nền tảng 2 tầng PHY và
MAC, việc sử dụng thuật toán định tuyến HERA sẽ khai thác đƣợc hết những ƣu
điểm của tầng MAC. (Tầng MAC chỉ định nghĩa cấu hình mạng hình sao và cấu
hình p-2p), Mạng ZigBee đƣa thêm cấu hình mạng hình cây và cấu hình mạng lƣới.
Với thuật toán HERA, dữ liệu đƣợc sinh ra bởi các thiết bị cảm biến và đƣợc
đƣa tới bộ nhận –sink và đƣợc định tuyến tiếp tới gốc của cây thông qua quan hệ
cha-con, nghĩa là tất cả các node sẽ chuyển tiếp dữ liệu đến cha của nó.
Mặt khác đối với giao tiếp cảm biến – cảm biến và bộ nhận – cảm biến dữ
liệu sẽ đƣợc định tuyến chuyển lên hoặc chuyển xuống dọc theo cây thông qua địa
chỉ đích của dữ liệu bằng cách khai thác lƣợc đồ địa chỉ phân cấp đƣợc cung cấp bởi
ZigBee.
Đây là thuật toán khởi tạo trƣớc – proactive hay còn gọi là table driven ( nghĩa là
dựa trên sự phân phát theo chu kỳ thông tin định tuyến để đạt đƣợc các bảng định
tuyến nhất quán và chính xác đến tất cả các node mạng, việc sử dụng phƣơng pháp
định tuyến này cho cấu trúc mạng phẳng sẽ luôn tối ƣu nhất về việc định tuyến do
vậy cũng là tốt nhất trong việc tiết kiệm năng lƣợng ) đích đến của định tuyến sẽ
đƣợc giải quyết trƣớc khi một node cảm biến cần định tuyến một gói tin.Cây định
tuyến thu đƣợc sẽ tƣơng ứng với cây mẫu đƣợc thiết lập trong tầng MAC.
Để thu thập tất cả thông tin tạo bởi các cảm biến tại bộ thu tín hiệu trong
mạng đa bƣớc nhảy – multi-hop, mỗi node sẽ chuyển tất cả dữ liệu tới bộ điều phối
– coordinator.
40
Thuật toán địn tuyến HERA giảm số lƣợng thông điệp trao đổi bởi vì nó tuân
theo các thủ tục đƣợc xây dựng ở tầng MAC. Nó luôn xem xét những thông điệp
nào đƣợc trao đổi trong quá trình hình thành liên kết mạng. Một sự kết hợp giữa các
tầng trong ZigBee đƣợc thực hiện giữa việc định tuyến và tầng MAC.
Thuật toán HERA tƣơng đối đơn giản, gọn nhẹ, không yêu cầu nhiều về bộ
nhớ đểlƣu trữ bảng định tuyến. Những đặc tính trên giúp HERA thành ứng viên
tiềm năng trong định tuyến dựa trên chuẩn IEEE 802.15.4 mạng cảm biến không
dây. Mặt khác cũng phải lƣu ý rằng, việc định tuyến không phải bao giờ cũng tối ƣu
hóa đƣợc tất cả các vấn đề ví dụ nhƣ vấn đề về bƣớc nhảy, băng thông. Tuy nhiên
bởi vì thuật toán HERA sử dụng chiến lƣợc đa tầng, việc tối ƣu hóa định tuyến có
thể đạt đƣợc bằng cách thiết kế một cách chính xác các thủ tục liên kết với chuẩn
IEEE 802.15.4 để tạo ra các phép định tuyến tối ƣu hóa theo những mục tiêu xác
định.
41
Chƣơng 3 – MÔ PHỎNG THUẬT TOÁN ĐỊNH TUYẾN TỐI
ƢU NĂNG LƢỢNG
3.1. Công cụ mô phỏng
Sử dụng phần mềm ảo hóa Vmware Workstation cài đặt hệ điều hành
Ubuntu 10.04.4. Sử dụng công cụ mô phỏng NS-2 trên Hệ điều hành này.
3.1.1. Ubuntu 10.04
Download phần mềm Vmware Workstation 10
Download Ubuntu 10.04.3 phiên bản desktop tại địa chỉ http://old-
releases.ubuntu.com/releases/lucid/ . Chọn phiên bản “PC (Intel x86) desktop CD ”
Sau khi cài đặt xong Ubuntu, cần tiến hành cài thêm các gói phần mềm sau (
để phục vụ cho việc chạy và biên dịch NS-2)
Install GCC và G++ version 4.3
$ sudo apt-get install build-essential autoconf automake libxmu-dev
$ sudo apt-get install libx11-dev libxmu-dev libxmu-headers libxt-dev libtool
$ sudo apt-get install dpkg-dev g++ libc6-dev make
$ sudo apt-get install tcl8.4 tk8.4
$ sudo apt-get install build-essential
3.1.2. NS-2
3.1.2.1. Giới thiệu về NS-2
NS (Netwok Simulator v2) là phần mềm mô phỏng mạng điều khiển sự kiện
riêng rẽ hƣớng đối tƣợng, đƣợc phát triển tại UC Berkely, viết bằng ngôn ngữ C++
và OTcl. NS rất hữu ích cho việc mô phỏng mạng diện rộng (WAN) và mạng local
(LAN). Bốn lợi ích lớn nhất của NS-2 phải kể đến đầu tiên là:
• Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại
• Khả năng đánh giá các giao thức mạng mới trƣớc khi đƣa vào sử dụng
42
• Khả năng thực thi những mô hình mạng lớn mà gần nhƣ ta không thể
thực thi đƣợc trong thực tế
• Khả năng mô phỏng nhiều loại mạng khác nhau
3.1.2.2 Kiến trúc chƣơng trình NS-2
Hình 3.1 : Kiến trúc và thƣ mục cài đặt NS-2.34 trong môi trƣờng Linux(Ubuntu)
3.1.2.3. Các đặc tính của NS-2
NS-2 thực thi những tính năng sau:
Các kỹ thuật quản lý hàng đợi Router nhƣ DropTail, RED, CBQ
Multicasting
Mô phỏng mạng không dây
+ Đƣợc phát triển bởi Sun Microsystems + UC Berkeley (Dự án Daedalus)
+ Thuộc mặt đất (di động, adhoc, GPRS, WLAN, BLUETOOTH), vệ tinh
+ Chuẩn IEEE 802.11 có thể đƣợc mô phỏng, các giao thức Mobile-IP và
adhoc nhƣ DSR, TORA, DSDV và AODV
Hành vi nguồn traffic – www, CBR, VBR
TK8.4.1
8
OTcl tclcl Tcl8.4.18 ns-2.34 nam-1.14
tcl
ex test lib
...
...
Các ví dụ Các kiểm tra
Mã C++
Mã OTcl
ns-allinone-2.34
mcast
43
Các agent truyền tải – UDP, TCP
Định tuyến
Luồng packet
Mô hình mạng
Các ứng dụng – Telnet, FTP, Ping
Các packet tracing trên tất cả các link và trên các link xác định
3.1.2.4. Cài đặt ns2.34 và gói leach protocol
a) Cài đặt ns2.34
Tải ns-allinone-2.34 tại địa chỉ :
http://sourceforge.net/projects/nsnam/files/allinone/ns-allinone-2.34/ns-
allinone-2.34.tar.gz/download
Copy file ns-allinone-2.34.tag.gz từ thƣ mục Download vào trong thƣ
mục home
Dùng các lệnh sau :
$ tar –xzvf ns-allinone-2.34.tar.gz
$ cd ns-allinone-2.34
Cài đặt X-window
sudo apt-get install xorg-dev g++ xgraph
Sửa lỗi đƣờng dẫn của otcl tại dòng 6304 of otcl-1.13/configure , chuyển
thành SHLIB_LD="gcc -shared" từ SHLIB_LD="ld -shared"
Chạy Lệnh
$ sudo apt-get install build-essential autoconf automake libxmu-dev gcc-4.3
Cài đặt thêm các công cụ cần thiết cho việc build ns-2
44
Đang ở thƣ mục ns-allinone-2.32, chạy lệnh ./install cài đặt ns2 . Sau khi cài đặt
xong ns-2.34. Thiết lập biến môi trƣờng theo các bƣớc sau:
> sửa file .bashrc trong home
$gedit .bashrc
Thêm những dòng sau vào cuối file :
#LD_LIBRARY_PATH
OTCL_LIB=/home/yenth/ns-allinone-2.34/otcl-1.13
NS2_LIB=/home/yenth/ns-allinone-2.34/lib
USR_LOCAL_LIB=/usr/local/lib
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$otc
#TCL_LIBRARY
TCL_LIB=/home/yenth/ns-allinone-2.34/tcl8.4.18/library
USR_LIB=/usr/lib
export TCL_LIBRARY=$TCL_LIB:$USR_LIB
# PATH
XGRAPH=/home/yenth/ns-allinone-2.34/bin:/home/yenth/ns-allinone-
2.34/tcl8.4.18/unix:/home/yenth/ns-allinone-2.34/tk8.4.18/unix
NS=/home/yenth/ns-allinone-2.34/ns-2.34/
NAM=/home/yenth/ns-allinone-2.34/nam-1.14/
PATH=$PATH:$XGRAPH:$NS:$NAM
Chạy lệnh source .bashrc để cập nhật.
b) Cài đặt leach protocol
Gói leach protocol xây dựng giao thức leach hiện chỉ support ns 2.34.
45
Cài đặt leach protocol và build lại Ns -2.34 theo những bƣớc sau :
Tải gói "ns-234-leach.tar.gz" và copy vào thƣ mục cài đặt ns-2.34
https://docs.google.com/uc?id=0BzLWxPfb8EKhMzMwNjE4MTItZWFkMi00ZT
k1LTk5MTAtZGRmZDBiZDE5ZGYw&export=download&authkey=CNWG1NQ
K&hl=en
Tải file setup “leach-setup.sh” tại địa chỉ
https://docs.google.com/uc?id=0BzLWxPfb8EKhM2RmNjJjMzItN2M5NC00MmV
iLWI4NDctYmVjMDgyYWQ0YWVk&export=download&authkey=CJSU5ZYG&
hl=en
Copy file leach-setup.sh vào cùng thƣ mục ns-allinone-2.34/ns-2.34 với ns-
234-leach.tar.gz
Sửa cấu hình trình biên dịch trong file Makefile.in và Makefile trong thƣ
mục ns-allinone-2.34/ns-2.34 nhƣ sau :
CC = gcc-4.3
CPP = g++-4.3
Di chuyển đến thƣ mục
yenth@yenth-desktop:~/ns-allinone-2.34/ns-2.34$
a. ./configure
b. ./make clear
c. ./make
Chờ cho quá trình build lại ns-2.34 sẽ tích hợp đƣợc gói leach.
3.2. Xây dựng kịch bản
3.2.1. Thuật toán AODV
Trong luận văn, xây dựng 3 kịch bản mô phỏng có nội dung nhƣ sau :
46
Thông số Giá trị
Số node mạng 5,10 , 20 – tƣơng ứng 3 kịch bản
Thời gian mô phỏng 150s
Kích thƣớc không gian mô phỏng 500x400m
Traffic Type ftp
3.2.2. Mạng ZigBee
Có tổng cộng 101 node với tham số vị trí đƣợc khai báo trong file zigbee.scn
Thời gian thực hiện 50s
3.3. Thử nghiệm
Các node mạng mô phỏng đƣợc định nghĩa sẵn tọa độ trong file AODV.scn
trong diện tích mô phỏng với trục tọa độ các node là (x,y,z) trong đó z = 0 -> Mặt
phẳng.
Bởi vì giao thức định tuyến AODV đã đƣợc hỗ trợ sẵn trong NS2 nên ta chỉ
cần khai báo tên giao thức là có thể mô phỏng theo kịch bản.
Mô phỏng gồm 2 tệp :
Tệp aodv.tcl chứa mã lệnh
Các tham số cần khai báo
set val(chan) Channel/WirelessChannel
set val(prop) Propagation/TwoRayGround
set val(netif) Phy/WirelessPhy/802_15_4
set val(mac) Mac/802_15_4
set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
47
set val(ant) Antenna/OmniAntenna
set val(ifqlen) 50
set val(nn) 25
set val(rp) AODV
set val(x) 50
set val(y) 50
set val(nam) aodv.nam
set val(traffic) ftp
Các tham số cấu hình node
$ns_ node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-topoInstance $topo \
-agentTrace OFF \
-routerTrace OFF \
-macTrace ON \
-movementTrace OFF \
-channel $chan_1_
48
for {set i 0} {$i < $val(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0;# disable random motion
}
Tệp aodv.scn chứa khai báo các node có trong mô phỏng
3.4. Đánh giá kết quả
3.4.1. Thuật toán định tuyến AODV
Trong cùng một điều kiện, việc tăng hay giảm số lƣợng các node mạng trong
không gian mạng sẽ làm AODV có những thay đổi nhƣ sau.
a) Tỷ lệ gói tin nhận đƣợc
sendLine recvLine ratio fowardLine
Kịch bản 1 9383 9248 0.9856 2587
Kịch bản 2 27783 27567 0.9922 3579
Kịch bản 3 23781 23626 0.9935 2404
Tỉ lệ phần trăm của AODV là khá cao, đạt 99%, dù có tăng node mạng lên thì vẫn
đảm bảo tốt đƣờng truyền
49
b) Độ trễ trung bình đầu cuối
ms
Kịch bản 1 48.7634
Kịch bản 2 40.1532
Kịch bản 3 38.6466
Càng nhiều node mạng trong hệ thống thì độ trễ đầu giảm đi rõ ràng trong cùng
điều kiện
c) Thông lƣợng trung bình
Size(kbps) Start Time EndTime
Kịch bản 1 404.75 10.08 105.59
Kịch bản 2 895.23 16.10 143.66
Kịch bản 3 826.69 10.12 128.36
50
d) Tải thông tin định tuyến
Kịch bản 1 0.073
Kịch bản 2 0.079
Kịch bản 3 0.090
e) Plot Windows
Kịch bản 1
51
Kịch bản 2
Kịch bản 3
52
Nhƣ ta đã biết, giao thức AODV tức là định tuyến vecto cự ly theo yêu cầu
tùy biến dựa trên thuật toán vector khoảng cách đƣợc sắp xếp tới đích DSDV
(Destination Sequenced Dista-nce Vector) trƣớc đây (Hình 2). AODV tối thiểu hoá
số bản tin quảng bá cần thiết bằng cách tạo ra các tuyến trên cơ sở theo yêu cầu,
ngƣợc với việc duy trì một danh sách hoàn chỉnh các tuyến nhƣ thuật toán DSDV.
Khi một node nguồn muốn gởi một bản tin đến một node đích nào đó và
không biết rằng đã có một tuyến đúng đến đích đó, nó phải khởi đầu một quá trình
khám phá đƣờng truyền để xác định node khác. Nó phát quảng bá một gói yêu cầu
tuyến (RREQ) đến các node lân cận. Node này sau đó sẽ chuyển tiếp gói yêu cầu
đến node lân cận khác. Quá trình cứ tiếp tục nhƣ vậy cho đến khi có một node trung
gian nào đó xác định đƣợc một tuyến “đủ tƣơi” (“fresh enough”) để đạt đến đích.
AODV sử dụng số thứ tự đích để đảm bảo rằng tất cả các tuyến không lặp và chứa
hầu hết thông tin tuyến hiện tại. Mỗi node duy trì số tuần tự của nó cùng với một ID
quảng bá. ID quảng bá đƣợc tăng lên mỗi khi node khởi đầu một RREQ, và cùng
với địa chỉ IP của node, xác định duy nhất một RREQ. Cùng với số tuần tự và ID
quảng bá, node nguồn bao gồm trong RREQ hầu hết số tuần tự hiện tại của đích mà
nó có. Các node trung gian có thể trả lời RREQ chỉ khi nào chúng có một tuyến đến
đích mà số tuần tự đích tƣơng ứng lớn hơn hoặc bằng số tuần tự chứa trong RREQ.
Trong suốt quá trình chuyển tiếp RREQ, các node trung gian ghi vào Bảng
định tuyến của chúng địa chỉ của các node lân cận từ khi nhận đƣợc bản sao đầu
tiên của gói quảng bá, theo đó thiết lập đƣợc một đƣờng dẫn theo thời gian. Nếu các
bản sao của cùng một RREQ đƣợc nhận sau đó, các gói này sẽ bị huỷ bỏ. Một khi
RREQ đã đạt đến đích hay một node trung gian với tuyến “đủ tƣơi”, node đích
(hoặc node trung gian) đáp ứng lại bằng cách phát đơn phƣơng một gói đáp ứng
tuyến (RREP) ngƣợc về node lân cận mà từ đó nó thu đƣợc RREQ. Khi RREP đƣợc
định tuyến ngƣợc theo đƣờng dẫn, các node trên đƣờng dẫn đó thiết lập các thực thể
tuyến chuyển tiếp trong Bảng định tuyến của chỉ node mà nó nhận đƣợc RREP. Các
53
thực thể tuyến chuyển tiếp này chỉ thị tuyến chuyển tiếp tích cực. Cùng với mỗi
thực thể tuyến là một bộ định thời tuyến có nhiệm vụ xoá các thực thể nếu nó không
đƣợc sử dụng trong một thời hạn xác định. Do một RREP chuyển tiếp trên đƣờng
dẫn đƣợc thiết lập bởi một RREQ nên AODV chỉ hỗ trợ việc sử dụng đƣờng truyền
đối xứng.
Trong AODV, các tuyến đƣơc duy trì điều kiện nhƣ sau: Nếu một node
nguồn chuyển động, nó phải khởi động lại giao thức khám phá tuyến để tìm ra một
tuyến mới đến đích. Nếu một node trên tuyến chuyển động, node lân cận luồng lên
của nó chú ý đến chuyển động đó và truyền một bản tin Khai báo sự cố đƣờng
thông (một RREP không xác định) đến mỗi node lân cận tích cực luồng lên để
thông báo cho các node này xoá phần tuyến đó. Các node này thực chất truyền một
Thông báo sự cố đƣờng thông đến các node lân cận luồng lên. Quá trình cứ tiếp tục
nhƣ vậy cho đến khi đạt đến node nguồn. Node nguồn sau đó có thể chọn khởi động
lại một quá trình khám phá tuyến cho đích đó nếu một tuyến vẫn cần thiết [4].
Ngoài ra, giao thức này sử dụng bản tin HELLO đƣợc phát quảng bá định kỳ
bởi một node để thông báo cho tất cả các node khác về những node lân cận của nó.
Các bản tin HELLO có thể đƣợc sử dụng để duy trì khả năng kết nối cục bộ của một
node. Tuy nhiên, việc sử dụng bản tin HELLO là không cần thiết. Các node lắng
nghe việc truyền lại gói dữ liệu để đảm bảo rằng vẫn đạt đến chặng kế tiếp. Nếu
không nghe đƣợc việc truyền lại nhƣ thế, node có thể sử dụng một trong số các kỹ
thuật, kể cả việc tiếp nhận bản tin HELLO. Các bản tin HELLO có thể liệt kê các
node khác mà từ đó node di động đã nghe tin báo, do đó tạo ra khả năng liên kết lớn
hơn cho mạng.
54
3.4.2. Mạng ZigBee
Kết quả trong Nam
Hình 3.8 : Toàn bộ 101 node đƣợc khởi tạo trong mô hình
Với node mạng khởi động là node 0. PAN Coor, chƣơng trình sẽ mô phỏng
toàn bộ quá trình truyền tin của mạng zigbee.
Hình 3.9 : Quá trình truyền tin của mạng ZigBee
55
Hình 3.10 : Quá trình truyền tin của mạng ZigBee
Ta thấy 2 hình trên biểu diễn quá trình định tuyến và truyền tin trong mạng
ZigBee, tại thời điểm này, vẫn có nhiều node chƣa nhận đƣợc truyền tin. Những
node đó có màu đen.
Hình 3.11 : Quá trình truyền tin của mạng ZigBee
56
Tại thời điểm này, tất cả các node trong mạng đều đã hòa vào hệ thống.
Các node mạng trong một mạng Zigbee có thể liên kết với nhau theo cấu trúc
mạng hình sao,hình lƣới và hình cây, sự đa dạng này cho phép công nghẹ Zigbee
đƣợc ứng dụng ngày càng rộng rãi.
57
KẾT LUẬN
Qua quá trình nghiên cứu về mạng cảm biến ZigBee và thuật toán định tuyến tiết
kiệm năng lƣợng. Luận văn đã đạt đƣợc các kết quả sau :
Trình bày một cách tổng quan về chuẩn IEEE 802.15.4 và mạng cảm biến
không dây ZigBee
Nghiên cứu hoạt động của các thuật toán định tuyến,thuật toán tối ƣu năng
lƣợng (AODV, LEACH, HERA..) trong Zigbee, từ đó cho thấy đƣợc lợi thế
của mạng Zigbee trong ứng dụng thực tế.
Thiết kế mô phỏng thuật toán AODV và mạng Zigbee thông qua phần mềm
mô phỏng NS-2.
HƢỚNG PHÁT TRIỂN LUẬN VĂN
Em mong muốn tìm hiểu sâu hơn về mạng cảm biến không dây Zigbee,cũng
nhƣ ứng dụng mạng Zigbee vào thực tế cuộc sống ở Việt Nam (phát triển căn nhà
thông minh, các công cụ tiện ích phục vụ trong y tế, hay các hệ thống cảnh báo tự
động.)
Trong thời gian nghiên cứu khó tránh khỏi những thiếu sót, em rất mong
nhận đƣợc sự nhận xét đóng góp ý kiến của các thầy cô và các bạn để những nghiên
cứu sau này của em sẽ thành công hơn nữa.
Một lần nữa em xin cám ơn thầy Đặng Văn Chuyết đã nhiệt tình giúp đỡ,
định hƣớng và chỉ bảo em thực hiện thành công luận văn
Hà Nội, Ngày 30 Tháng 11 Năm 2013
Học viên
Trần Hải Yến
58
TÀI LIỆU THAM KHẢO
[1] Drew Gislason (2008), ZigBee Wireless Networking
[2] Dr. Wolfgang Kastner, ZigBee Network Layer Simulation on top of IEEE
802.15.4
[3] Tommaso Melodia, Routing in ZigBee: Benefits from exploiting the IEEE
802.15.4 association tree.
[4] ZigBee Alliance. Địa chỉ : http://www.ZigBee.org
[5] “IEEE 802.15.4 Standard Specification”. Địa chỉ : http://www.standards.ieee.org
[6] ZigBee routing. Địa chỉ : http://daintree.net/resources/routing.php
[7] ZigBee. Địa chỉ : http://en.wikipedia.org/wiki/ZigBee
[8] ZigBee Security. Địa chỉ : http://www.daintree.net/resources/security.php
[9] ZigBee Wireless Networkng Systems.
Địa chỉ : http://www.silabs.com/products/wireless/ZigBee/Pages/default.aspx
[10] Chipcon. Địa chỉ : http://www.chipcon.com
[11] Bluetooth. Địa chỉ : http://en.wikipedia.org/wiki/Bluetooth
[12] OSI. Địa chỉ : http://vi.wikipedia.org/wiki/M%C3%B4_h%C3%ACnh_OSI
[13] LEACH[13]. Địa chỉ :
http://en.wikipedia.org/wiki/Low_Energy_Adaptive_Clustering_Hierarchy
[14] Awk scrip. Địa chỉ : http://mohittahiliani.blogspot.in/2010/08/xgraph-and-awk-
scripts-in-ns-2_06.html