位址分配機制
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 ...