網路位址的分配及獲取

2021-06-19 09:13:51 字數 1178 閱讀 2465

在04協議棧裡有這樣乙個公式,a=a(parent)+cskip(d)*rm+n,cskip(d)是不同深度的父裝置分配位址時的偏移量,rm是可以攜帶的最大路由數,n是第n個裝置。其中如果cskip(d)=0x5a6,rm=4,則協調器的第乙個rfd的位址為a=0+0x5a6*4+1=0x1699.

在06協議裡看到這樣乙個描述:對於乙個位址為a、深度為d的路由器,如果下式成立,則具有位址為d的目的位址裝置為子裝置:a若rm=1,cskip(d)= 1+cm*(lm-d-1);

若rm不為1,則cskip(d)=(1+cm-rm-cm*( rm)^(lm-d-1))/(1-rm).

後來在另一本資料上見到乙份資料:

子節點為父裝置的第n個子路由器的短位址分配:

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

achild =aparen +(n-1)*cskip(d),n>1

子節點為父裝置的第n個子終端裝置的短位址分配:

achild = aparent + rm*cskip(d)+ n

下圖為lm=3,cm=6,rm=4的網路位址分配示例。

幾個有用的關於實體地址和網路位址的函式:

根據已知實體地址查詢遠端裝置網路位址,作為乙個廣播資訊傳送給網路中的所有裝置:

afstatus_t zdp_nwkaddrreq( 。。。);

根據已知網路位址查詢遠端裝置實體地址,作為乙個廣播資訊傳送給網路中的所有裝置:

afstatus_t zdp_ieeeaddrreq( 。。。);

快速查詢(不啟動無線查詢,而是根據已儲存於位址管理器中的網路(物理)位址查詢物理(網路)位址):

一般傳送訊息,使用實體地址和網路位址都可以傳送,但最好用網路位址,使用實體地址可能會出現問題。

採用16bit網路位址可以降低功耗問題。如果採用64bit ieee位址傳送資料,首先其資料傳送的最佳路徑難以求得,勢必會增加多次傳送的功耗 其二 如果該資料接收裝置離開網路(當機),傳送之時也就不知道。 採用網路位址傳送資料,可以採用路由演算法 找到最佳路徑 減其功耗。[摘自fjxsos]

ZigBee樹型網路位址分配及結構

樹型路由機制包括配置樹型位址和樹型位址的路由。當協調器建立乙個新的網路,它將給自己分配網路位址0,網路深度d 0。網路深度表示僅僅採用父子關係的網路中,乙個傳送幀傳送到zigbee協調器所傳遞的最小跳數。如 節點a 加入網路並與協調器連線,那麼 節點a 的網路深度是1 節點b 加入網路並與 節點a ...

09 網域名稱及網路位址

測試環境 ubuntu 10.10 gcc版本 4.4.5 一 網域名稱系統 dns 1 dns是對ip位址和網域名稱進行相互轉換的系統,其核心是dns伺服器 2 網域名稱是用來替代ip位址,是賦予伺服器端的虛擬位址 3 linux下使用ping命令檢視網域名稱ip 如 ping www.baidu...

網路位址劃分

網路位址可以分為網路號和主機號,主機號又可以分為子網號和子網主機號。ip位址分為五類,a類保留給 機構,b類分配給中等規模的公司,c類分配給任何需要的人,d類用於組播,e類用於實驗,各類可容納的位址數目不同。1 特徵 a 0 b 10xx c 110x d 1110 e 11110 2 各類位址的劃...