通信結(jié)點就是任何與移動結(jié)點相通信的結(jié)點,它可以是靜止的,也可以是移動的。移動結(jié)點能夠通知通信結(jié)點自己的當(dāng)前位置,這個動作通過通信綁定過程來完成。作為這個過程的一部分,為了對綁定的建立進行授權(quán),需要對返回路徑可達進行測試。當(dāng)向任一個IPv6目的地發(fā)送數(shù)據(jù)包時,結(jié)點必須在自己的綁定緩存中檢查是否存在目的地地址的記錄。如果存在有目的地地址的記錄,這個結(jié)點就使用一種新的路由包頭來向這個綁定中的轉(zhuǎn)交地址發(fā)送數(shù)據(jù)包;否則,這個結(jié)點以通常的方式發(fā)送數(shù)據(jù)包,這個數(shù)據(jù)包將發(fā)送到歸屬代理,歸屬代理截獲這個數(shù)據(jù)包,然后通過隧道把這個數(shù)據(jù)包發(fā)送到移動結(jié)點。本文對此過程進行了詳盡闡述。
一、移動通信結(jié)點的概念描述
每個IPv6結(jié)點為其他結(jié)點維護一個用于綁定的綁定緩存;每個IPv6結(jié)點都應(yīng)該為它的每一個IPv6地址維護一個獨立的綁定緩存;每個“綁定緩存”條目應(yīng)包含以下幾個域。
1.移動結(jié)點的歸屬地址:該域是在綁定緩存中搜索一個發(fā)送數(shù)據(jù)包目的地址的主鍵;如果數(shù)據(jù)包的目的地址與綁定緩存條目中的歸屬地址相匹配,則該條目應(yīng)該被用于路由這個數(shù)據(jù)包。
2.移動結(jié)點的轉(zhuǎn)交地址:在綁定緩存條目中,移動結(jié)點的轉(zhuǎn)交地址與歸屬地址域相關(guān)聯(lián);如果一個被結(jié)點路由的數(shù)據(jù)包的目的地址與該條目中的歸屬地址相匹配,則該數(shù)據(jù)包應(yīng)該被路由到這個轉(zhuǎn)交地址。
3.生存時間:生存時間域的值表示一個綁定緩存條目的剩余生存時間;生存時間域的值由生成或最后修改綁定緩存條目的綁定更新的生存時間域初始化,一旦一個條目的生存時間到期,則該條目必須從綁定緩存中刪除。
4.標(biāo)志域:表示該綁定緩存條目是否是歸屬注冊條目。
5.從移動結(jié)點歸屬地址接收到的綁定更新中序號域的最大值:序號域長度為16位。
6.綁定緩存條目近來的使用信息:在綁定緩存中需要使用這些信息來實現(xiàn)綁定替換策略,并且?guī)椭鷽Q定當(dāng)一個條目的生存時間接近終止時是否應(yīng)該發(fā)送一個綁定更新請求。
沒有標(biāo)記為歸屬注冊的綁定緩存條目可以在任何時候依據(jù)可行的本地緩存替換政策被替換,但它不應(yīng)該因為不必要的原因而被刪除。在任何一個結(jié)點的綁定緩存中,最多為每一個移動結(jié)點的歸屬地址維護一個緩存。一個結(jié)點的綁定緩存的內(nèi)容不能根據(jù)接收到數(shù)據(jù)包的歸屬地址選項而改變;當(dāng)一個結(jié)點重新啟動時,該結(jié)點所有的綁定緩存條目的內(nèi)容都必須被清除。
二、接收來自移動結(jié)點的數(shù)據(jù)包
通信結(jié)點需要對移動結(jié)點發(fā)出的帶有歸屬地址目的地選項或移動頭的數(shù)據(jù)包進行特殊的處理:
1.處理移動頭(MH)消息
所有的IPv6通信結(jié)點在處理移動頭(MH)消息時都必須遵守下面的規(guī)則:
* 如果收到一個類型未知的MH消息,那么通信結(jié)點應(yīng)向數(shù)據(jù)包的源地址發(fā)送一個綁定錯誤消息,狀態(tài)域的值設(shè)為2;通信結(jié)點必須丟棄這一數(shù)據(jù)包。
* 如果下一個頭域的值不是NO_NXTHDR(59),那么該數(shù)據(jù)包應(yīng)被悄悄丟棄。
后續(xù)的檢查依賴于特定的移動頭消息,有兩種類型的移動頭消息。返回路徑可達過程被用于驗證移動結(jié)點的歸屬地址和轉(zhuǎn)交地址的存活性,這種存活性的探測有助于保證綁定更新的安全;另一種移動頭消息直接用于管理綁定。
2.接收帶有歸屬地址目的地選項的數(shù)據(jù)包
如果通信結(jié)點有移動結(jié)點歸屬地址的綁定緩存條目,那么移動結(jié)點發(fā)送的數(shù)據(jù)包中可能會包含一個歸屬地址選項。當(dāng)通信結(jié)點接收到一個包含歸屬地址選項的數(shù)據(jù)包時,它必須要處理這個選項,把這個選項中的歸屬地址域拷貝到IPv6的包頭中,替換掉源地址的初始值。處理完數(shù)據(jù)包所攜帶的選項之后,對數(shù)據(jù)包的后續(xù)處理步驟不必知道原來的源地址是轉(zhuǎn)交地址還是歸屬地址。對于一個包含了綁定更新消息和歸屬地址選項的數(shù)據(jù)包來說,如果綁定更新成功地創(chuàng)建或更新了綁定緩存條目,那么就可以認(rèn)為該數(shù)據(jù)包通過了上面的檢查。
如果一個數(shù)據(jù)包經(jīng)過上面的測試被丟棄。那么通信結(jié)點應(yīng)向包含歸屬地址選項的數(shù)據(jù)包的源地址發(fā)送一人綁定錯誤消息。該消息中的狀態(tài)域的值應(yīng)被設(shè)為1。這些消息的發(fā)送速率應(yīng)受到限制。
一般來說,不需要對歸屬地址選項進行額外的認(rèn)證,但是如果數(shù)據(jù)包的IPv6包頭被認(rèn)證所覆蓋,那么這種認(rèn)證也必須要覆蓋歸屬地址選項,這種覆蓋是通過歸屬地址選項中的選項類型編碼的定義來自動實現(xiàn)的,這一編碼指明了在數(shù)據(jù)包到達最終目的地之前這項數(shù)據(jù)不能被修改,因此該選項也就包含了在認(rèn)證計算的范圍之內(nèi)。由于對IPv6包頭的認(rèn)證會覆蓋歸屬地址選項,因此歸屬地址選項的出現(xiàn)不會降低IPv6包頭中源地址域的安全性。當(dāng)試圖驗證包含歸屬地址選項的數(shù)據(jù)包中的認(rèn)證數(shù)據(jù)時,接受結(jié)點在計算時必須要假定歸屬地址選項中的地址是轉(zhuǎn)交地址,而IPv6包頭中的源地址是歸屬地址。
三、確定所選路由是否可達
在確定所選路由是否可達時,主要包括以下動作。
1.接收歸屬地址測試初始消息
當(dāng)收到歸屬地址測試初始消息時,通信結(jié)點應(yīng)進行如下的檢驗:
* 該消息的MH類型域的值為1;
* 數(shù)據(jù)包一定不能包含歸屬地址目的地選項。
在準(zhǔn)備發(fā)送一個相應(yīng)的歸屬地址測試消息之前,通信結(jié)點應(yīng)檢查它是否已經(jīng)有了返回路徑可達過程所需的要素。對于返回路徑可達過程而言,通信結(jié)點必須有一個密鑰Kcn和一個臨時隨機數(shù)N1。如果通信結(jié)點還沒有這兩個要素,那它就必須先生成Kcn和N1,然后才能繼續(xù)進行返回路徑可達過程。
2.接收轉(zhuǎn)交地址測試初始消息
當(dāng)收到轉(zhuǎn)交地址測試初始消息時,通信結(jié)點應(yīng)進行如下的檢驗:
* 該消息的MH類型域的值為2;
* 數(shù)據(jù)包一定不能包含歸屬地址目的地選項。
在準(zhǔn)備發(fā)送一個相應(yīng)的轉(zhuǎn)交地址測試消息之前。通信結(jié)點應(yīng)檢查它是否已經(jīng)有了返回路徑可達過程所需的要素。對于返回路徑可達過程而言。通信結(jié)點必須有一個密鑰Kcn和一個臨時隨機數(shù)N1。如果通信結(jié)點還沒有這兩個要素,那它就必須先生成Kcn和N1,然后才能繼續(xù)進行返回路徑可達過程。
3.發(fā)送歸屬地址測試消息
如果通信結(jié)點沒有創(chuàng)建一個轉(zhuǎn)交Cookie和與之相關(guān)的歸屬臨時隨機數(shù),那它必須先創(chuàng)建它們。然后才能創(chuàng)建一個歸屬地址測試消息并把它發(fā)送到移動結(jié)點最新的歸屬地址。
四、目的地地址在緩存中的綁定
通信結(jié)點處理的綁定緩存消息包括綁定更新、綁定更新請求、綁定確認(rèn)等。
1.接收綁定更新
一個結(jié)點在接受綁定更新消息之前必須要按照以下步驟對綁定更新進行有效性檢驗;
* 該數(shù)據(jù)包中必須包含一個歸屬地址選項。
* 如果先前已經(jīng)接收到同一歸屬地址的綁定更新,那么本次接收的綁定更新消息中序列號域的值必須大于先前收到的綁定更新中序列號域的值。序列號必須要對65536取模后才能進行比較。如果接收到的綁定更新中的序列號在先前接收的綁定更新中的序列號的范圍內(nèi),那么就認(rèn)為該序列號小于或等于最近接收的序列號,對于超出32767的值也是如此。
如果移動結(jié)點發(fā)送的綁定更新中的序列號小于或等于最近一個成功的綁定更新中的序列號,那么接收結(jié)點必須要回送一個狀態(tài)編碼為141的綁定確認(rèn),并在綁定確認(rèn)中的序列號域填入最近接受的綁定更新的序列號。
如果移動結(jié)點發(fā)送的歸屬或轉(zhuǎn)交臨時隨機數(shù)索引值不再被通信結(jié)點認(rèn)可,那么接收結(jié)點必須要回送一個狀態(tài)編碼分別為144或145的綁定確認(rèn)。
所有由于其他原因(除了序列號或臨時隨機數(shù)索引值較小)而不滿足這些檢驗的綁定更新必須被忽略,并且攜帶這些綁定更新的數(shù)據(jù)包必須被丟棄。
2.請求緩存一個綁定
本文描述了請求結(jié)點緩存一個移動結(jié)點的綁定的有效綁定更新的處理過程,在這個綁定更新中歸屬注冊位(H)沒有被設(shè)置。在這種情況下,接收結(jié)點應(yīng)當(dāng)在它的綁定緩存中為這個移動結(jié)點生成一個新的緩存條目,如果已有這樣的條目,那就應(yīng)當(dāng)更新現(xiàn)有的這一移動結(jié)點的綁定緩存條目。該綁定緩存條目的生存時間來自于綁定更新中的生存時間域,緩存這個綁定的結(jié)點可能會減少這個生存時間;該綁定緩存條目的生存時間必須不能夠大于在綁定更新中規(guī)定的時間值,當(dāng)綁定更新條目的生存時間過期時,這個綁定條目必須被刪除。
從移動結(jié)點接收到的綁定更新中的序列號的值存儲在通信結(jié)點中該移動結(jié)點的綁定緩存條目中;如果通信結(jié)點中沒有該移動結(jié)點的綁定緩存條目,那么通信結(jié)點必須接受從移動結(jié)點接收到的綁定更新中的任何序列號的值。
3.請求刪除一個綁定
本文描述了請求結(jié)點從綁定緩存中刪除一個移動結(jié)點的綁定的有效綁定更新處理過程,在這個綁定更新中,歸屬注冊位(H)沒有被設(shè)置。在這種情況下,接收結(jié)點必須在綁定緩存中刪除與這個移動結(jié)點有關(guān)的任何條目。在收到這樣的綁定更新時,通信結(jié)點不能為移動結(jié)點生成綁定緩存條目。
如果綁定緩存條目是通過使用返回路徑可達過程創(chuàng)建和,那么通信結(jié)點必須確保對于特定歸屬和轉(zhuǎn)交地址的臨時隨機數(shù)不能再被使用。如果這兩個臨時隨機數(shù)仍然是有效的,那么通信結(jié)點必須記住臨時隨機數(shù)索引、地址與序列號之間的特定聯(lián)系。直到某一個臨時隨機數(shù)失效為止。
4.發(fā)送綁定確認(rèn)
當(dāng)任何結(jié)點接收到一個包含綁定更新消息的數(shù)據(jù)包,并且這個消息中的確認(rèn)位(A)被設(shè)置時,它必須回送一個綁定確認(rèn)消息以確認(rèn)收到了綁定更新。如果這個結(jié)點接受了綁定更新,并為移動結(jié)點生成或者修改了一個綁定緩存條目,并且綁定更新中的確認(rèn)位被設(shè)置,那么綁定確認(rèn)的狀態(tài)域必須設(shè)置為小于128的值,如果該結(jié)點接受了綁定更新,但綁定更新中的確認(rèn)位沒有設(shè)置,那么該結(jié)點不應(yīng)發(fā)送綁定確認(rèn);如果這個結(jié)點拒絕了這個綁定更新,沒有為移動結(jié)點生成或者修改一個綁定緩存條目,那么即使綁定更新中的確認(rèn)位沒有被設(shè)置,接收結(jié)點也必須要發(fā)送綁定確認(rèn),其中的狀態(tài)域要設(shè)置成大于或等于128的值。
包含的綁定確認(rèn)的返回數(shù)據(jù)包必須滿足對綁定確認(rèn)的特別的認(rèn)證要求。此外,如果數(shù)據(jù)包被發(fā)往移動結(jié)點除了歸屬地址以外的任何其他地址,那么必須使用路由頭(即使綁定被拒絕)。
數(shù)據(jù)包被發(fā)送到歸屬地址之前所經(jīng)過的中間IP地址應(yīng)由這些因素決定:只要帶有非零生存時間的綁定更新被接受,就要使用轉(zhuǎn)交地址業(yè)構(gòu)造路由頭,否則,如果包含綁定更新的數(shù)據(jù)包的源IP地址能被合法地包含在路由頭中,那么就將使用這個IP地址來構(gòu)造路由頭。注意,不能在用于綁定確認(rèn)的路由頭中使用組播地址、本地鏈路地址、環(huán)回地址、映射到IPv4的地址和未規(guī)定的地址,否則,如果綁定更新中的生存時間為0,但是源IP地址不能被用于路由頭中,那么綁定確認(rèn)必須被發(fā)往移動結(jié)點的歸屬地址。當(dāng)綁定緩存條目的生存時間過期時,這些條目必須從綁定緩存中刪除。
5.發(fā)送綁定更新請求
如果一個被刪除掉的條目仍在被使用著向一個移動結(jié)點發(fā)送數(shù)據(jù)包,那么發(fā)向移動結(jié)點的下一個數(shù)據(jù)包將被按通常的方法路由到移動結(jié)點的歸屬鏈路。雖然與移動結(jié)點的通信沒有被打斷,但是在歸屬網(wǎng)絡(luò)通過隧道封裝向移動結(jié)點發(fā)送數(shù)據(jù)包時會增加多余的開銷和時延。
如果發(fā)送者知道這個綁定緩存條目仍然被使用,那么它可以向移動結(jié)點發(fā)送一個綁定更新請求消息,以試圖避免由于刪除和重新生成綁定緩存條目而帶來的這種開銷和時延。向移動結(jié)點發(fā)送綁定更新請求消息的方式與發(fā)送一般數(shù)據(jù)包的方式相同。
通信結(jié)點可以在速率的限制范圍內(nèi)重傳綁定更新請求消息。當(dāng)通信結(jié)點收到歸屬地址測試初始消息時應(yīng)停止再發(fā)送綁定更新請求。因為這時移動結(jié)點已經(jīng)做出了響應(yīng)并開始了返回路徑可達過程。
結(jié)束語
隨著移動通信技術(shù)的不斷發(fā)展,移動網(wǎng)絡(luò)的發(fā)展方向是“全IP移動網(wǎng)”。IPv6已經(jīng)被確定為構(gòu)筑下一代移動網(wǎng)的基礎(chǔ)和3G必須遵循的標(biāo)準(zhǔn),成為IP多媒體業(yè)務(wù)中不可或缺的技術(shù)。人們普遍認(rèn)為,IPv6(尤其是移動IPv6)技術(shù)必將為整個通信行業(yè)的發(fā)展帶來明媚的春光。
作者:孫海英 聞衛(wèi)軍 來源:中國聯(lián)通網(wǎng)站