1.歸屬測試初始消息
移動(dòng)終端向通信終端發(fā)送歸屬測試初始消息以請求歸屬Cookie。這個(gè)消息中的內(nèi)容有:源地址=歸屬地址,目的地址=通信終端,參數(shù)=HoT- Cookies(用來驗(yàn)證響應(yīng)消息是否匹配清請求消息,并保證沒有見到請求消息的接點(diǎn)不能偽造響應(yīng)信息)。此消息通過歸屬代理的反向隧道發(fā)送到通信終端,告知移動(dòng)終端的歸屬地址,然后被通信終端返回。
2.轉(zhuǎn)交測試初始消息
移動(dòng)終端向通信終端發(fā)送轉(zhuǎn)交測試初始消息以請求轉(zhuǎn)交Cookie。這個(gè)消息的內(nèi)容有:源地址=轉(zhuǎn)交地址,目的地址=通信終端,參數(shù)=CoTCookie;此消息直接發(fā)送到通信終端,告知移動(dòng)終端的轉(zhuǎn)交地址。然后被通信終端返回。
3.歸屬測試
此消息用來響應(yīng)歸屬測試初始消息。消息中的內(nèi)容有:源地址=通信終端,目的地址=歸屬地址,參數(shù)=HoTCookie、歸屬Cookie和歸屬臨時(shí)隨機(jī)數(shù)索引。當(dāng)通信終端接收到歸屬測試初始消息后。它將產(chǎn)生一個(gè)歸屬Cookie,歸屬Cookie可用來測試移動(dòng)終端能否收到發(fā)向歸屬地址的消息。從移動(dòng)終端發(fā)出的HoTCookie在歸屬測試消息中返回,用來保證該消息是從位于歸屬代理和通信終端之間路徑上的一個(gè)結(jié)點(diǎn)發(fā)出的。發(fā)送到移動(dòng)終端的臨時(shí)隨機(jī)數(shù)索引能允許通信終端有效地發(fā)現(xiàn)它用來生成歸屬Cookie的臨時(shí)隨機(jī)數(shù)的值。
4.轉(zhuǎn)交測試
此消息用來響應(yīng)轉(zhuǎn)交測試初始消息。消息中的內(nèi)容有:源地址=通信終端,目的地址=轉(zhuǎn)交地址,參數(shù)=CoTCookie、轉(zhuǎn)交Cookie和轉(zhuǎn)交臨時(shí)隨機(jī)數(shù)索引。當(dāng)通信終端接收到轉(zhuǎn)交測試初始消息后,它將產(chǎn)生一個(gè)轉(zhuǎn)交Cookie,用來保證這個(gè)消息來自于在通信路徑上的一個(gè)結(jié)點(diǎn)。轉(zhuǎn)交臨時(shí)隨機(jī)數(shù)索引用來確定生成轉(zhuǎn)交Cookie的臨時(shí)隨機(jī)數(shù)。
當(dāng)移動(dòng)終端收到歸屬和測試轉(zhuǎn)交消息后,返回路徑可達(dá)過程就結(jié)束了。然后,移動(dòng)終端使用自己的授權(quán)機(jī)制向通信終端發(fā)送綁定更新消息。移動(dòng)終端利用已經(jīng)接收到的消息來形成一個(gè)16字節(jié)的會(huì)話密鑰Kbu(Kbu=Hash歸屬Cookiel轉(zhuǎn)交Cookie)。
當(dāng)返回路徑可達(dá)過程結(jié)束后,移動(dòng)終端向通信終端發(fā)送一個(gè)綁定更新消息,過程如圖2所示。
圖2 移動(dòng)終端的通信終端發(fā)送綁定更新過程
圖2 移動(dòng)終端的通信終端發(fā)送綁定更新過程
5.綁定更新
移動(dòng)終端使用已經(jīng)生成的會(huì)話密鑰Kbu來授權(quán)綁定更新。消息中包含下面內(nèi)容:源地址:轉(zhuǎn)交地址,目的地址=通信終端,參數(shù)=歸屬地址、MA
C-Kbu(轉(zhuǎn)交地址|通信終端地址|BU)、歸屬臨時(shí)隨機(jī)數(shù)索引、轉(zhuǎn)交臨時(shí)隨機(jī)數(shù)索引和序列號(hào)。
在綁定更新消息中包含的臨時(shí)隨機(jī)數(shù)索引選項(xiàng),能夠使得通信終端知道用來重新計(jì)算會(huì)話密鑰的歸屬和轉(zhuǎn)交臨時(shí)隨機(jī)數(shù);BU是綁定更新消息中的內(nèi)容,但不包括 IP報(bào)頭、位于IP報(bào)頭和移動(dòng)報(bào)頭之間的任何擴(kuò)展報(bào)頭以及包含在綁定更新消息中的認(rèn)證字段;MAC結(jié)果的前96位用于認(rèn)證報(bào)頭;序列號(hào)用來匹配這個(gè)消息的最后一次認(rèn)可。一旦通信終端認(rèn)證了MAC,就能為移動(dòng)終端創(chuàng)建一個(gè)綁定緩存記錄。
6.綁定應(yīng)答
綁定應(yīng)答用來認(rèn)可一個(gè)綁定更新消息的接收。這個(gè)消息的內(nèi)容包括:源地址=通信終端,目的地址=轉(zhuǎn)交地址,參數(shù)=序列號(hào)、MAC-Kbu(轉(zhuǎn)交地址|通信中斷地址|BA)。
在綁定應(yīng)答消息中包含與綁定更新消息內(nèi)容中相同的序列號(hào)。BA是綁定應(yīng)答消息的內(nèi)容,但不包括IP報(bào)頭,位于IP報(bào)頭和移動(dòng)報(bào)頭之間的任何擴(kuò)展報(bào)頭以及包含在綁定認(rèn)可消息中的認(rèn)證字段。MAC結(jié)果的前96位用于認(rèn)證報(bào)頭。
在發(fā)送綁定更新之前,移動(dòng)終端必須等待歸屬和轉(zhuǎn)交Cookies的到來。由于資源限制、綁定的快速清除或重新啟動(dòng)等因素,當(dāng)通信終端使用這些 Cookies來處理綁定更新消息時(shí),不保證這些Cookies是最新的和可接受的。如果Cookies已經(jīng)變得很舊,則通信終端在綁定認(rèn)可消息中返回一個(gè)錯(cuò)誤代碼。此時(shí),移動(dòng)終端能夠重新嘗試返回路徑可達(dá)過程。
理想情況下,當(dāng)移動(dòng)終端和通信終端建立綁定后,就可以實(shí)現(xiàn)相互間的通信。但在具體實(shí)施中,有可能會(huì)發(fā)生下面的情況:
(1)當(dāng)移動(dòng)終端離開本地鏈路時(shí),本地鏈路上的一些結(jié)點(diǎn)可能被重新配置,原來作為移動(dòng)代理的路由器可能被別的路由器所替換。在這種情況下,移動(dòng)終端可能不再知道它自己歸屬代理的IP地址。IPv6提供了“動(dòng)態(tài)歸屬代理地址發(fā)現(xiàn)”機(jī)制來允許移動(dòng)終端動(dòng)態(tài)的在本地鏈路上發(fā)現(xiàn)一個(gè)歸屬代理的IP地址,移動(dòng)終端可以向這個(gè)歸屬代理注冊自己的轉(zhuǎn)交地址。