Các tham số chính cần thiết để thiết lập định tuyến ZBR bao gồm:
Lm : độ sâu lớn nhất của mạng.
Cm: số nút con lớn nhất mà nút cha có thể nhận.
Rm : số nút con có thể định tuyến lớn nhất mà nút cha có thể chọn .
d : độ sâu của một nút trong mạng.
Ở mỗi độ sâu của mạng, tham số Cskip(d) được định nghĩa với công thức :
Việc đánh địa chỉ bắt đầu tính từ nút gốc ZC (độ sâu d =0), các nút sẽ có địa chỉ là các số nguyên và cách đánh địa chỉ ở nút có khả năng định tuyến (ZR) khác với nút khơng có khả năng định tuyến (ZC). Địa chỉ ở các nút có khả năng định tuyến được tính cách nhau theo giá trị Cskip của nút cha, cịn các nút khơng có khả năng định tuyến (nút lá) được tính theo cơng thức : Địa chỉ nút thứ lá n = địa chỉ nút cha +
Giá trị Cskip(d) sẽ hữu ích khi được gói tin được gửi qua nút là gói tin chuyển tiếp (forward packet). Các thiết bị chuyển tiếp cần được biết liệu thiết bị đích có phải hậu duệ của thiết bị chuyển tiếp hay không (nghĩa là thiết bị đích có nằm trong nhánh của thiết bị chuyển tiếp hay không). Nếu thiết bị chuyển tiếp ở độ sâu d và có địa chỉ là A, thiết bị đích có địa chỉ là D nếu là hậu duệ của thiết bị chuyển tiếp thì biểu thức sau sẽ đúng A < D < A + Cskip(d-1).
Sau khi nhận ra thiết bị đích là hậu duệ của nút chuyển tiếp, bước tiếp theo là tính tốn địa chỉ của các chặng tiếp theo. Nếu thiết bị đích là một trong các nút con, địa chỉ của chặng tiếp theo đơn giản sẽ là địa chỉ đích. Nếu đích đến khơng phải là nút con nhưng là hậu duệ trong nhánh cây, công thức địa chỉ chặng tiếp theo sẽ được tính theo cơng thức :
Hàm int() sẽ trả lại giá trị nguyên sau giá trị của biểu thức được tính trong ngoặc. Ví dụ một mạng có cấu trúc cây phân cấp như hình vẽ 3.32, các giá trị sẽ được tính tốn như sau:
Hình 3. 32: Ví dụ về mạng cây phân cấp đƣợc đánh địa chỉ [4, tr88]
Các giá trị Lm=3, Cm=Rm=2, d = 0,1,2,3.
Nếu nút gốc có địa chỉ Addr=0, nút X có địa chỉ là Addr(X) = 1 (bắt đầu đánh địa chỉ) thì nút Y có địa chỉ cách nút X một khoảng Cskip(0) =7. Vậy nút Y được đánh địa chỉ là Addr(Y) = 1+7 = 8.
Khi Cskip(3)=0, điều đó có nghĩa là thiết bị ở độ sâu này là cấp cuối cùng, khơng có nút con nào nữa, vì vậy, bất kì thiết bị nào ở cấp thứ 3 đều có thể hoạt động như ZED. Ví dụ như trên hình 3.32, hai nút mạng gắn với thiết bị Z sẽ được đánh địa chỉ lần lượt như sau:
Nút 1 có địa chỉ = 9 + 0x2+1 = 10. Nút 2 có địa chỉ = 9 + 0x2+1 = 11.
Chúng ta cũng có thể nhìn được sự hữu ích của Cskip khi xét trường hợp nút 8 muốn tìm nút 11 có phải hậu duệ của nó, nó sẽ xét theo cơng thức 8<11<8+7, vậy là 11 sẽ là hậu duệ trong nhánh của nó.
Khi thiết bị Y hoạt động như một thiết bị định tuyến và muốn chuyển tiếp gói tin tới thiết bị đích là nút 11, địa chỉ tiếp theo của nó chuyển gói tin sẽ là nút 9 với công thức : địa chỉ chặng tiếp theo = 8 + 1 + int ( (11-(8+1) / 3)) x 3 = 9.
Thiết bị nguồn là thiết bị khởi động việc truyền dẫn. Trong mơ hình mạng cây phân cấp, một thiết bị sẽ chuyển tiếp gói tin chỉ khi nó nhận ra một con đường hợp lệ với các điều kiện sau:
- Gói tin được nhận từ một trong các nút con và thiết bị nguồn là một trong những nút con đó.
- Gói tin được nhận từ một nút cha và thiết bị nguồn không phải là hậu duệ của thiết bị này.
Tơ-pơ mạng hình sao có thể được coi là một tơ-pơ mạng đặc biệt của hình cây phân cấp, nơi mà chỉ có ZC là nút cha duy nhất. Trong một mạng hình sao, tất cả các nút con ZR và ZED đều có độ sâu d =1 và có thể liên lạc trực tiếp với ZC.
3.7.3.3. Giao thức định tuyến AODVjr:
Đây là là giao thức định tuyến được đơn giản hóa từ AODV, hỗ trợ cho việc định tuyến trong mạng cây phân cấp, sự khác biệt với giao thức AODV bao gồm:
- Không dùng số thứ tự (sequence number): AODVjr khơng sử dụng số thứ tự để đánh dấu gói tin gửi đi.
- Thông điệp phải hồi RREP chỉ gửi ở nút đích: trong AODV, khi một nút chuyển tiếp nhận ra mình có thể có đường đến đích, nó gửi lại thơng điệp phản hồi cho nút nguồn. Điều này làm gia tăng số lượng thông điệp RREP mà nút nguồn nhận được. AODVjr loại bỏ điều này và thông điệp phản hồi RREP chỉ được gửi từ nút đích. Việc duy trì đường từ nguồn đến đích được nút đích tuần tự gửi thơng điệp kết nối (connect message)
lại cho nút nguồn. Nếu nút nguồn khơng cịn nhận được thông điệp này, con đường định tuyến coi như bị hỏng.
- Khơng có có thơng điệp báo lỗi RERR: AODVjr khơng dùng thơng điệp báo lỗi, một liên kết còn hay mất được thể hiện băng thông điệp kết nối. - Không lưu danh sách nút cần đến : AODVjr sử dụng phương pháp tìm
kiếm kiểu đánh địa chỉ cây phân cấp để định tuyến gói tin. - Khơng có hop count.
- Khơng có hello message.
Giao thức định tuyến AODVjr này áp dụng cho các cây phân cấp có các nút có đủ năng lực định tuyến ( các nút RN+). Khi hoạt động, AODVjr sẽ làm giảm được điểm yếu của mơ hình cây phân cấp là chi phí phải duyệt cây nhiều lần.
3.7.4. Tổng kết các chức năng của tầng mạng
Tầng mạng của mơ hình mạng Zigbee theo tổ chức Zigbee Alliance quy định có các chức năng sau:
- Cấu hình một thiết bị mới. - Khởi tạo một mạng mới.
- Quyết định tham gia hoặc rời bỏ khỏi mạng. - Áp dụng chính sách bảo mật của tầng mạng.
- Định tuyến các gói tin đến đích, chỉ có ZC và ZR mới có chức năng này.
- Thăm dị và duy trì bảng định tuyến của mạng trong một số mơ hình, đề xuất định tuyến tốt nhất dựa vào các thông tin lưu giữ.
- Thăm dò và phát hiện và lưu trữ các nút lân cận (hàng xóm).
- Gán địa chỉ cho các thiết bị gia nhập mạng (chỉ có ZC và ZR mới có).
3.8. Tầng Ứng dụng trong mạng Zigbee [4, tr110-122]
3.8.1. Tổng quan tầng Ứng dụng trong mạng Zigbee
Tầng ứng dụng APL (Application Layer) là tầng cao nhất trong mơ hình cấu trúc mạng không dây Zigbee. Tầng ứng dụng bao gồm 3 lớp con: lớp Hỗ trợ Ứng dụng APS (Application Support), Đối tượng thiết bị Zigbee ZDO (Zigbee Device Object) và lớp nền tảng ứng dụng (Application Framework).
Hình 3. 33: Mơ hình tầng ứng dụng trong mạng Zigbee [4, tr110]
Tầng hỗ trợ ứng dụng APS cung cấp các giao diện giữa tầng mạng và tầng ứng dụng thông qua điểm truy cập NLDE-SAP. Tầng này cũng chia ra làm 2 dịch vụ là dịch vụ dữ liệu APSDE (APS Data Entity) và dịch vụ quản trị APSME (APS Management Entity) vào cung cấp giao diện truy nhập qua các điểm truy nhập dịch vụ lần lượt là APSDE-SAP và APSME-SAP, tầng này cũng có cơ sở dữ liệu tương ứng của tầng là APS IB (APS –Information Base). Tầng nền tảng ứng dụng là mơi trường trong đó các đối tượng ứng dụng (application object) được tổ chức để kiểm sốt và quản lí các tầng giao thức trong thiết bị Zigbee. Các đối tượng ứng dụng này được phát triển bởi các nhà sản xuất và mạng Zigbee cũng hỗ trợ việc tùy biến cho nhiều loại ứng dụng, tối đa là 240 đối tượng ứng dụng trên mỗi thiết bị.
Tầng ứng dụng dùng điểm truy cập APSDE-SAP để gửi nhận dữ liệu giữa các đối tượng ứng dụng này. Mỗi đối tượng ứng dụng có một địa chỉ riêng (được đánh từ 1 đến 240). Địa chỉ 0 để dành cho lớp con đối tượng thiết bị Zigbee ZDO. Để quảng bá thông tin cho tất cả đối tượng ứng dụng, địa chỉ được thiết lập là 255. Địa chỉ của các đối tương này cũng cho phép nhiều thiết bị cùng chia sẻ tần số sóng.
Đối tượng Zigbee ZDO cung cấp giao diện giữa lớp con APS và lớp nền ứng dụng. ZDO chứa các chức năng phổ biến giúp cho việc hoạt động của ứng dụng trong các tầng giao thức của Zigbee, ví dụ như việc cấu hình thiết bị có thể trở thành ZC, ZR hay ZED. ZDO sử dụng các nguyên hàm để thực hiện nhiệm vụ của mình và truy nhập vào APS thơng qua điêm truy nhập APSME-SAP còn lớp con nền ứng dụng tương tác với ZDO thông qua các giao diện mở (ZDO Public Interface).
3.8.2. Lớp con nền tảng ứng dụng (App framework)
việc này là cho phép tăng sự tương thích phát triển ứng dụng sản phẩm giữa các hãng sản xuất khác nhau cho các ứng dụng riêng biệt.
Hình 3. 34: Mơ hình các loại hồ sơ ứng dụng trong Zigbee [4, tr112]
Mỗi hồ sơ ứng dụng sẽ có một số ID 16-bit và chỉ có tổ chức Zigbee Alliance mới được phát hành các hồ sơ này, nếu các nhà phát triển muốn xây dựng hồ sơ, họ phải đưa qua cho tổ chức Zigbee Alliance đánh giá và quyết định xem có thêm vào mơ hình Zigbee hay không. Các hồ sơ ứng dụng sẽ được đặt tên dựa vào ứng dụng của nó (ví dụ như hồ sơ tự động hóa, hồ sơ nhà thơng minh ...).
Cấu trúc của hồ sơ ứng dụng bao gồm 2 thành phần chính: phần các cụm
(cluster) và phần mô tả (description). Một cụm là một tập hợp các thuộc tính được
nhóm cùng nhau, mỗi cụm sẽ được định danh bằng một mã ID 16-bit gọi là ID của cụm. Trong mỗi cụm, các thuộc tính sẽ có những ID riêng và cũng đánh bằng 16- bit, các thuộc tính này sẽ lưu trữ dữ liệu hoặc trạng thái giá trị riêng (ví dụ trong mạng đo nhiệm độ, các cụm sẽ lưu trữ giá trị nhiệt độ tại các thời điểm cần khảo sát vào các thuộc tính này).
Phần cịn lại là phần mô tả, cung cấp các thông tin liên quan đến chính thiết bị. Một số thơng tin như băng tần hỗ trợ của mạng, dạng thiết bị (ZC,ZR, ZED), mức năng lượng hiện thời còn lại... và cũng được định danh bằng 16-bit. Tất cả các thành phần trong hồ sơ ứng dụng sẽ đóng vai trị là con trỏ trỏ tới các thành phần liên quan, giống như cấu trúc của một cơ sở dữ liệu.
Mô tả thiết bị bao gồm 5 phần:
- Mô tả nút (Node description): cung cấp thông tin loại nút và mã nhà sản xuất.
- Mô tả nguồn năng lượng của nút (node power descriptor): xác định
trạng thái hoạt động và mức năng lượng pin hiện thời của nút.
- Mô tả đơn giản (simple descriptor): phần này bao gồm các cụm phân biệt bằng số ID, mỗi cụm có các thuộc tính riêng.
- Mơ tả phức tạp (complex descriptior): thông tin tùy chọn, gồm mã sản phẩm và tên thiết bị.
3.8.3. Lớp con Đối tượng thiết bị Zigbee ZDO (Zigbee Device Object)
Các đối tượng này đóng vai trị là lớp giao diện giao tiếp giữa lớp con hỗ trợ ứng dụng và lớp con nền ứng dụng, với việc chịu trách nhiệm cho việc khởi tạo hỗ trợ lớp ứng dụng, tầng mạng và dịch vụ bảo mật SSP (Security Service Provider). Giống như mơ hình hồ sơ ứng dụng được định nghĩa ở lớp nền tảng ứng dụng, cũng có một hồ sơ được định nghĩa cho lớp đối tượng ZDO này là ZDP (Zigbee Device Profile). ZDP này cũng bao gồm các cụm và mô tả nhưng trong phần cụm lại khơng có các thuộc tính mà lại nằm ở phần ngồi của ZDO, và hồ sơ này hỗ trợ tất cả các loại thiết bị Zigbee. ZDP cũng chỉ có một mơ tả cịn phần cụm thì được chia thành hai nhóm là nhóm bắt buộc và nhóm tùy chọn, nhóm bắt buộc ln có trong bất kì thiết bị Zigbee nào.
Hình 3.35: Mơ hình ZDO trong mạng Zigbee [4,tr 118]
ZDP hỗ trợ việc thăm dò (discovery) và quản lí liên kết (binding
management) giữa các thiết bị, nó hỗ trợ các chức năng thăm dò thiết bị (Device
discovery) để xác định định danh của thiết bị khác trong PAN, hay thăm dò dịch vụ (Service discovery) để yêu cầu các thiết bị khác gửi gửi các thông tin chi tiết như
hồ sơ hoặc mô tả theo dữ liệu rời rạc hoặc theo danh sách. ZDP được cấu hình như mơ hình khách/chủ (client-server), nghĩa là u cầu như một máy khách và trả lời các yêu cầu của thiết bị khác như một máy chủ bằng cách tự thiết lập hai dịch vụ chủ và khách (server sevice & client service) trên chính mình. Các thơng tin sẽ được yêu cầu và trả lời thông qua các lệnh được định sẵn và kèm theo số định danh của cụm trong ZDP.
Các lệnh của ZDP sẽ được gửi bởi dịch vụ của lớp APS, khuôn dạng sẽ gồm hai phần là thứ tự và dữ liệu đi kèm với yêu cầu. Các lệnh chia thành hai nhóm lệnh chính là lệnh chủ và lệnh khách với 3 mục đích : thăm dị (thiết bị, dịch vụ), quản lí liên kết và quản lí mạng tương ứng với 3 đối tượng : đối tượng thiết bị và dịch vụ, đối tượng quản lí liên kết và đối tượng quản lí mạng.
-Các lệnh thăm dị thiết bị và dịch vụ: cho phép yêu cầu thông tin như địa chỉ mạng, danh sách mô tả từ bất kì thiết bị nào trong mạng và lưu vào bộ nhớ đệm hoặc để cấu hình mơ tả trong các thiết bị khác.
- Các lệnh quản lí liên kết: khởi tạo hoặc gỡ bỏ các mối quan hệ liên kết, lưu trữ bảng liên kết (binding table), tạo bảng dự phịng, và phục hồi lại nếu có sự cố.
- Các lênh quản lí mạng: định dang các mạng lân cận, yêu cầu bảng định tuyến lân cận, quản lí việc tham gia và rời bỏ của thiết bị.
Ngồi ra, ZDO cịn có thêm 2 đối tượng nữa là quản lí mạng và quản lí bảo mật.
3.8.4. Lớp con Hỗ trợ Ứng dụng APS (Application Support)
Lớp APS cung cấp các dịch vụ dữ liệu cho cả các đối tượng ứng dụng và cả các ZDO thông qua điêm truy cập APSDE-SAP, dữ liệu nhận được dưới dạng các đơn vị dữ liệu gian thức PDU từ các ZDO hay đối tương ứng dụng sẽ được thêm phần tiêu đề và gửi xuống tầng dưới (tầng mạng). Ngồi ra, phần quản lí APSME cũng chứa các nguyên hàm để thực hiện 3 nhiệm vụ: quản lí liên kết, quản lí cơ sở dữ liệu trong AIB và quản lí nhóm.
- Quản lí liên kết (sử dụng nguyên hàm APSME-BIND.request và APSME-UNBIND.request): cho phép các tầng cao hơn gửi yêu cầu liên kết đến hai thiết bị và thêm chúng vào bảng liên kết nội bộ, hoặc gỡ bỏ khỏi bảng trong trường hợp giải phóng liên kết.
- Quản lí AIB (sử dụng nguyên hàm APSME-GET.request và APSME- SET.request): cho phép các tầng cao hơn đọc và ghi các giá trị vào một thuộc tính trong dữ liệu thơng tin AIB của APS.
- Quản lí nhóm: cho phép thêm/bớt các thiết bị đầu cuối vào một nhóm Khng dạng dữ liệu của lớp con APS như sau:
Hình 3. 36: Khng dạng gói tin của lớp con APS [4,tr 121]
(a) Khuông dạng dữ liệu (b) Khuông dạng lệnh (c) Khuông dạng ACK
Khng dạng gói tin của lớp APS bao gồm 3 dạng là dạng dữ liệu, dạng lệnh và dạng xác nhận, cụ thể:
Frame Control: trường này chứa các thơng tin điều khiển, có cấu trúc như sau
Hình 3. 37: Khn dạng trƣờng FrameControl trong lớp con APS [4, tr 122]
- Trong lớp APS định nghĩa thêm một dạng định chỉ đích nữa là dạng vơ hướng (indirect addressing), dạng địa chỉ này cho phép thiết bị có thể truyền gói tin tới ZC mà không cần biết đích đến, và ZC sẽ tìm kiếm dựa vào địa chỉ nguồn, địa chỉ đầu cuối và định danh cụm trong
- Frame type: dạng gói tin.
- Delivery mode: dạng gửi gói tin.
- Indirect Addr mode: dùng khi gửi vơ hướng. - Security: dùng khi có bảo mật.
- ACK request: bật khi cần gửi xác nhận.
Destination Endpoint: địa chỉ đích của thiết bị đầu cuối.
Group Address: địa chỉ nhóm, thơng điệp sẽ được chuyển tới tất cả các nút
thành viên trong nhóm nếu địa chỉ này được dùng. Nếu dùng địa chỉ này thì địa chỉ