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