IPv6擁有巨大的地址空間,同時128位的IPv6的地址被劃分成兩部分,即地址前綴和接口地址。與IPv4地址劃分不同的是,IPv6地址的劃分嚴(yán)格按照地址的位數(shù)來進(jìn)行,而不采用IPv4中的子網(wǎng)掩碼來區(qū)分網(wǎng)絡(luò)號和主機(jī)號。IPv6地址的前64位被定義為地址前綴,地址前綴用來表示該地址所屬的子網(wǎng)絡(luò),即地址前綴用來在整個IPv6網(wǎng)中進(jìn)行路由。而地址的后64位被定義為接口地址,接口地址用來在子網(wǎng)絡(luò)中標(biāo)識節(jié)點(diǎn)。在物聯(lián)網(wǎng)應(yīng)用開發(fā)中可以使用IPv6地址中的接口地址來標(biāo)識節(jié)點(diǎn),在同一子網(wǎng)絡(luò)下,可以標(biāo)識264個節(jié)點(diǎn),完全可以滿足節(jié)點(diǎn)標(biāo)識的需要。
另一方面,IPv6采用了無狀態(tài)地址分配的方案來解決高效率海量地址分配的問題,其基本思想是網(wǎng)絡(luò)側(cè)不管理IPv6地址的狀態(tài),包括節(jié)點(diǎn)應(yīng)該使用什么樣的地址,地址的有效期有多長,且基本不參與地址的分配過程。節(jié)點(diǎn)設(shè)備連接到網(wǎng)絡(luò)后,將自動選擇接口地址(通過算法生成IPv6地址的后64位),并加上FE80的前綴地址,作為節(jié)點(diǎn)的本地鏈路地址,本地鏈路地址只在節(jié)點(diǎn)與鄰居節(jié)點(diǎn)之間的通信中有效,路由器設(shè)備將不路由以該地址為源地址的數(shù)據(jù)包。在生成本地鏈路地址后,節(jié)點(diǎn)將進(jìn)行DAD(地址沖突檢測),檢測該接口地址是否有鄰居節(jié)點(diǎn)已經(jīng)使用,如果節(jié)點(diǎn)發(fā)現(xiàn)地址沖突,則無狀態(tài)地址分配過程將終止,節(jié)點(diǎn)將等待手工配置IPv6地址;如果在檢測定時器超時后仍未發(fā)現(xiàn)地址沖突,則節(jié)點(diǎn)認(rèn)為該接口地址可以使用,此時終端將發(fā)送路由器前綴通告請求,尋找網(wǎng)絡(luò)中的路由設(shè)備,當(dāng)網(wǎng)絡(luò)中配置的路由設(shè)備接收到該請求,則將發(fā)送地址前綴通告響應(yīng),將節(jié)點(diǎn)應(yīng)該配置的IPv6地址前64位的地址前綴通告給網(wǎng)絡(luò)節(jié)點(diǎn),網(wǎng)絡(luò)節(jié)點(diǎn)將地址前綴與接口地址組合,構(gòu)成節(jié)點(diǎn)自身的全球IPv6地址。
采用無狀態(tài)地址分配之后,網(wǎng)絡(luò)側(cè)不再需要保存節(jié)點(diǎn)的地址狀態(tài),也不需要維護(hù)地址的更新周期,這將大大簡化地址分配的過程,網(wǎng)絡(luò)可以以很低的資源消耗來達(dá)到海量地址分配的目的。