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