69
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ỐNG THÔ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

Zig bee tran hai yen

Embed Size (px)

Citation preview

Page 1: Zig bee tran hai yen

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

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

Page 2: Zig bee tran hai yen

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

Page 3: Zig bee tran hai yen

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

Page 4: Zig bee tran hai yen

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!

Page 5: Zig bee tran hai yen

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

Page 6: Zig bee tran hai yen

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

Page 7: Zig bee tran hai yen

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ể

Page 8: Zig bee tran hai yen

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

Page 9: Zig bee tran hai yen

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

Page 10: Zig bee tran hai yen

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

Page 11: Zig bee tran hai yen

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

Page 12: Zig bee tran hai yen

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.

Page 13: Zig bee tran hai yen

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á

Page 14: Zig bee tran hai yen

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.

Page 15: Zig bee tran hai yen

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ộ

Page 16: Zig bee tran hai yen

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.

Page 17: Zig bee tran hai yen

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.

Page 18: Zig bee tran hai yen

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

Page 19: Zig bee tran hai yen

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.

Page 20: Zig bee tran hai yen

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

Page 21: Zig bee tran hai yen

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

Page 22: Zig bee tran hai yen

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.

Page 23: Zig bee tran hai yen

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:

Page 24: Zig bee tran hai yen

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

Page 25: Zig bee tran hai yen

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.

Page 26: Zig bee tran hai yen

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

Page 27: Zig bee tran hai yen

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.

Page 28: Zig bee tran hai yen

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.

Page 29: Zig bee tran hai yen

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.

Page 30: Zig bee tran hai yen

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.

Page 31: Zig bee tran hai yen

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.

Page 32: Zig bee tran hai yen

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

Page 33: Zig bee tran hai yen

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.

Page 34: Zig bee tran hai yen

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

Page 35: Zig bee tran hai yen

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.

Page 36: Zig bee tran hai yen

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

Page 37: Zig bee tran hai yen

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

Page 38: Zig bee tran hai yen

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

Page 39: Zig bee tran hai yen

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).

Page 40: Zig bee tran hai yen

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.

Page 41: Zig bee tran hai yen

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.

Page 42: Zig bee tran hai yen

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.

Page 43: Zig bee tran hai yen

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

Page 44: Zig bee tran hai yen

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:

Page 45: Zig bee tran hai yen

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:

Page 46: Zig bee tran hai yen

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.

Page 47: Zig bee tran hai yen

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

Page 48: Zig bee tran hai yen

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.

Page 49: Zig bee tran hai yen

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ế.

Page 50: Zig bee tran hai yen

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.

Page 51: Zig bee tran hai yen

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.

Page 52: Zig bee tran hai yen

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

Page 53: Zig bee tran hai yen

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

Page 54: Zig bee tran hai yen

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

Page 55: Zig bee tran hai yen

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.

Page 56: Zig bee tran hai yen

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 :

Page 57: Zig bee tran hai yen

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

Page 58: Zig bee tran hai yen

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_

Page 59: Zig bee tran hai yen

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

Page 60: Zig bee tran hai yen

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

Page 61: Zig bee tran hai yen

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

Page 62: Zig bee tran hai yen

51

Kịch bản 2

Kịch bản 3

Page 63: Zig bee tran hai yen

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

Page 64: Zig bee tran hai yen

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.

Page 65: Zig bee tran hai yen

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

Page 66: Zig bee tran hai yen

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

Page 67: Zig bee tran hai yen

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.

Page 68: Zig bee tran hai yen

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

Page 69: Zig bee tran hai yen

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