Zigbee應用開發 網路管理

2021-10-03 04:53:42 字數 1677 閱讀 6413

位址分配機制

z-stack 採用分布式分配機制,整個網路架構由 3 個值決定

lm :網路的最大深度

cm :每個父裝置擁有子裝置數

rm :  每個父裝置擁有路由子裝置數

d :  父裝置所在的網路深度 

當 rm = 1

1 + cm * (lm - d - 1)

當 rm != 1

cskip(d)= (1 + cm -rm - cm *(rm) ^ (lm - d -1))/(1 - rm)

父裝置給路由器分配的網路位址

achild = aparent + (n - 1) *cskip(d) +1

父裝置給終端分配的網路位址

對協調器來說     

cskip(d)= (1 + cm - rm - cm * (rm) ^ (lm - d - 1)) / (1 - rm)

=  (1 + 5 - 3 - 5 * 3 ^ (3 - 0 - 1)) / (1 - 3)

= 21

路由器位址 = aparent + (n - 1)* cskip(d) + 1

路由器1 = 0x0000 + 1 = 0x0001

路由器2 = 0x0000 + 21 + 1 = 0x0016

路由器3 = 0x0000 + 2 * 21 +1 = 0x002b

終端位址 = aparent + rm * cskip(d) + n

終端1 = 0x0000 + 3 * 21 +1 = 0x0040

終端2 = 0x0000 + 3 * 21 + 2 = 0x0041

對路由器1來說

cskip (d)= (1 + cm - rm - cm * (rm)^ (lm - d - 1))/ (1 - rm)

=  (1 + 5 - 3 - 5 * 3 ^ (3 - 1 - 1 )) / (1 - 3)

= 6路由位址 = aparent + (n + 1) * cskip(d)+1 

路由器1 = 0x0001 + 1 = 0x0002

路由器2 = 0x0001 + 1 + 6 = 0x0008

路由器3 = 0x0001 + 1 + 2 * 6 = 0x000e

終端位址 = aparent + rm* cskip(d)+ n

終端1 = 0x0001 + 3 * 6 + 1 = 0x0014

終端2 = 0x0001 + 3 * 6 + 2 = 0x0015

網路管理函式

在nlmed.h 裡有 4 個網路管理函式

//返回指向本裝置的mac位址的指標

byte * nlme_getextaddr(void);

//返回本裝置的網路位址

uint16 nlme_getshortaddr(void);

//返回父裝置的網路位址函式

uint16 nlme_getcoordshortaddr(void);

//引數是指向父裝置的mac位址的指標

void nlme_getcoordextaddr(byte * buf);

開發網路常識

網際網路開發的常用概念 子網掩碼 與ip位址配合使用判斷兩台計算機是否位於同乙個子網路.dhcp協議 每乙個子網路中,有一台計算機負責管理本網路的所有ip位址,它叫做 dhcp伺服器 當新的計算機加入網路,必須向 dhcp伺服器 傳送乙個 dhcp請求 資料報,申請ip位址和相關的網路引數.然後dh...

Python開發 網路基礎

tcp與udp的區別 tcp 傳送控制協議 transmission control protocol tcp是傳輸層的乙個協議,基於ip協議,用於傳輸類似http的資訊。tcp協議是面向連線的協議,通過三次握手機制,盡量保證鏈結的可靠性 tcp鏈結需要三次握手,釋放需要四次揮手。udp 使用者資料...

基於MINA框架快速開發網路應用程式

基於mina框架快速開發網路應用程式 類niosocketconnector用於建立客戶端連線 類iosession用來儲存會話屬性和傳送訊息 類iohandleradapter用於定義業務邏輯,常用的方法有 方法 定義 sessioncreated 當會話建立時被觸發 sessionopened ...