Lớp NWK Zigbee cho phép ngƣời sử dụng sử dụng một phƣơng thức định tuyến mới là định tuyến nguồn. Trong phƣơng thức định tuyến này, thiết bị nguồn sẽ tạo ra danh sách tất cả các thiết bị sẽ tham gia chuyển tiếp gói tin và sẽ đƣa đính kém danh sách này trong khung NWK. Theo phƣơng thức này, khi một thiết bị định tuyến nhận đƣợc khung này, nó sẽ đơn giản tìm kiếm địa chỉ của nút tiếp theo từ danh sách chuyển tiếp chứa trong khung. Danh sách này có một chỉ số sẽ tăng mỗi khi khung đƣợc chuyển tiếp để đảm bảo chỉ số luôn chỉ tới hop tiếp theo. Nói cách khác, trong định tuyến nguồn, thiết bị chuyển tiếp khung sẽ tìm kiếm địa chỉ của hop tiếp theo từ danh sách định tuyến thay vì dựa vào bảng định tuyến của nó.
2.1.1. Định dạng khung lớp mạng:
Lớp NWK hỗ trợ hai định dạng khung:
Đồ án tốt nghiệp Chương 2: Chồng giao thức Zigbee/IEEE 802.15.4
- Khung điều khiển – dùng để truyền các bản tin điều khiển lớp mạng. Định dạng chung của khung lớp NWK đƣợc mô tả trong hình 2.18.
Khung gồm 2 phần chính là phần mào đầu NHR(NWK Header) và phần tải(NWK Payload).
Trƣờng đầu tiên của NHR là trƣờng điều khiển khung frame control. Nó chứa các thông tin về:
- Frame type : chỉ rằng đây là khung dữ liệu NWK hay khung lệnh NWK.
- Protocol version : chỉ phiên bản chồng giao thức đƣợc sử dụng, nó tƣơng ứng
với nwkcProtocolVersion.
- Discovery route: trƣờng con này đƣợc thiết lập để cấm hoặc cho phép và một
tuyến đƣợc thiết lập sẵn sàng tới đích, khung sẽ đƣợc gửi tới hop tiếp theo. Nhƣng nếu không có tuyến đƣợc thiết lập tới đích và trƣờng con này đƣợc thiết lập để cấp, thiết bị sẽ không bắt đầu tìm một tuyến mới. Khung sẽ bị bỏ qua hoặc cho vào bộ đệm cho đến khi có tuyến. Nếu trƣờng này đƣợc thiết lập để cho phép, thiết bị sẽ thực hiện tìm tuyến nếu không có tuyến đi tới đích. Cuối cùng, nếu trƣờng này đƣợc thiết lập để yêu cầu tìmm tuyến, thiết bị sẽ khởi tạo tìm tuyến cho việc truyền khung này, ngày cả khi có một tuyến đã sẵn sàng đƣợc thiết lập tới đích.
- Multicast flag: Nếu trƣờng này có giá trị là 1, khung sẽ đƣợc gửi sử dụng
multicast.
- Security : đƣợc thiết lập là 1 nếu chức năng bảo mật lớp NWK đƣợc sử dụng.
- Source route : đƣợc thiết lập là 1 nếu trƣờng source route subframe đƣợc đính kèm trong khung, hay nói cách khác, khung sẽ đƣợc định tuyến bằng kĩ thuật định tuyến nguồn. Định tuyến nguồn là một kĩ thuật mà nguồn dữ liệu sẽ chỉ tuyến mà một gói nên sử dụng để đi trên mạng. Trƣờng source route subframe chứa một danh sách các địa chỉ ngắn 16bit của các nút sẽ đƣợc sử dụng để chuyển tiếp khung trong định tuyến nguồn.
- Destination/Source IEEE Address : nếu các bit này đƣợc thiết lập là 1, tƣơng
ứng trong NHR sẽ chứa các địa chỉ IEEE 64bit của thiết bị đích/nguồn.
Trƣờng source address và destination address là các giá trị địa chỉ mạng 16bit của thiết bị nguồn và đích luôn đƣợc chứa trong NHR.
Trƣờng radius xác định số hop lớn nhất mà khung đƣợc cho phép đi qua. Nếu trƣờng này không đƣợc cung cấp, trƣờng radius của NHR sẽ đƣợc thiết lập bằng 2 lần giá trị của thuộc tính nwkMaxDepth.
Trƣờng sequence number đƣợc sử dụng để quản lý các khung đã đƣợc truyền bởi một thiết bị, tránh lặp lại việc xử lý các khung. Giá trị của nó sẽ tăng mỗi khi một khung đƣợc truyền.
Trƣờng multicast control chỉ tồn tài nếu khung là multicast đƣợc thiết lập qua trƣờng con multicast flag của trƣờng frame control. Trƣờng này gồm các trƣờng con:
- Multicast mode : xác định rằng khung đƣợc gửi bởi một thiết bị không trong
chế độ thành viên hoặc ở chế độ thành viên.
- Nonmember radius : giới hạn số lần một khung multicast đƣợc broadcast lại
bởi các thiết bị không phải là thành viên.Giá trị này sẽ giảm mỗi khi khung đƣợc broadcast lại bởi một thiết bị không là thành viên. Khi bằng 0, khung sẽ không đƣợc broadcast tiếp nữa bởi các thiết bị không phải là thành viên. Tuy nhiên, nếu giá trị của nó là 0x07, sẽ không giới hạn số lần nó đƣợc broadcast lại bởi các thiết bị không phải là thành viên. Mỗi khi một thiết bị thành viên broadcast khung, nó sẽ copy nội dung của trƣờng con max nonmember vào
nonmember radius.
Hình 2.18. định dạng chung của khung lớp mạng.