??? 摘 要: 通過移動無線網絡接入Internet的主機可能會經常變換接入點" title="接入點">接入點,本文在構建一個完整IPv6網絡模型,同時通過引入軟切換,有效解決了移動主機" title="移動主機">移動主機在切換過程中可能出現(xiàn)的數據丟失。
??? 關鍵詞: IPv6; 切換; 軟切換; 移動網絡
?
1 系統(tǒng)介紹
??? 通過移動無線網絡連接到Internet的主機可能會經常變換接入點,這就需要提供一個有效機制用以保證數據包到移動主機的有效尋址。在數據收發(fā)過程中,接入點的變換通常稱為切換(handoff),在切換過程中或者切換后的極短時間內,由于主機位置信息" title="位置信息">位置信息的延遲數據包可能會丟失。因為切換正變得越來越頻繁,有效地降低丟包是確保QoS的前提。蜂窩式IPv6(CIPv6:Cellular IP for IPv6)是一個支持主機頻繁切換的協(xié)議,該協(xié)議主要用于本地網,同時也可以與使用于廣域的通用的移動IPv6(MIPv6:Mobile IPv6)有效協(xié)同[1],從而共同構成廣域的移動IPv6網絡。
1.1 模型實體
??? (1)CIPv6節(jié)點:構成CIPv6網絡的基礎元素,主要功能有兩個:①CIPv6節(jié)點可以在CIPv6網絡中為數據包提供無線訪問路由;②為無線訪問提供接入,所以也稱為基站。
??? (2)CIPv6基站:同CIPv6節(jié)點。
??? (3)CIPv6網關:提供CIPv6網絡和Internet的互聯(lián)接口。
??? (4)CIPv6主機:應用CIPv6協(xié)議的移動主機。
1.2 模型構成
??? 圖1是CIPv6網絡結構和數據流向,每個基站周期性地發(fā)射Beacon信號,移動主機通過這些信號尋找最近的基站。通常,所有移動主機發(fā)出的數據包在基站間通過最短路徑" title="最短路徑">最短路徑的方式實現(xiàn)路由,并不考慮目標IP。CIPv6節(jié)點負責維護一個路由緩沖區(qū),移動主機發(fā)送的數據包在每個節(jié)點的路由緩沖區(qū)中創(chuàng)建并更新一個記錄,每個記錄在映射移動主機IP的同時還記錄數據包來源節(jié)點的IP。在每個CIPv6節(jié)點緩沖區(qū)中形成的記錄鏈總是對應一個特定的移動主機,下行數據也通過這個記錄鏈到達移動主機。這個記錄鏈總是對應主機的最新位置,因為當主機移動時,通過上行數據包,記錄鏈也會隨時被更新。此外,下行數據到移動主機的路由也由記錄鏈負責。為防止記錄鏈超時,移動主機會周期地發(fā)送控制數據包,控制數據包是IPv6協(xié)議的擴展,協(xié)議頭實現(xiàn)了適應CIPv6網絡的最短路徑方式和CIPv6控制信息。當移動主機未處于發(fā)送數據的激活狀態(tài)時,仍可以接收數據,這時CIPv6節(jié)點會維護一個分頁緩沖區(qū),所有的下行數據由分頁緩沖區(qū)負責提供路由,分頁緩沖區(qū)比路由緩沖區(qū)有更長的超時時間。
?
1.3 位置管理和路由
??? CIPv6使用兩個并行的緩沖區(qū)來維護移動主機的位置信息,兩個緩沖區(qū)的操作方式基本相同。當移動主機處于活動狀態(tài),CIPv6網絡必須可以管理移動主機在基站間的移動,以保證數據到達主機,所以移動主機必須隨時向網絡通報每次切換。對于睡眠狀態(tài)的主機,位置信息是相對次要的,最小化通信量以保證電量的節(jié)省具有更高的優(yōu)先級。所以,兩個CIPv6緩沖區(qū)分別對應活動主機和睡眠主機。雙緩沖區(qū)還有性能方面的優(yōu)勢,單緩沖區(qū)用以存儲所有移動主機的位置信息時,下行數據就需要在整個緩沖區(qū)中遍歷一次,這對于睡眠主機沒意義。
2? CIPv6的功能
2.1位置管理
??? CIPv6允許睡眠模式的移動主機在不進行位置信息更新的情況下跨基站邊界漫游,網絡運營商可以將基站集群組織成分頁區(qū),分頁區(qū)可以由任意數量的基站構成,每個分頁區(qū)擁有CIPv6網絡中唯一的ID。每個基站通過Beacon信號周期性地發(fā)送分頁區(qū)的ID,從而使移動主機在跨分頁區(qū)時得到必要的數據包。睡眠移動主機在跨越分頁區(qū)時必須發(fā)送一個分頁更新數據包,分頁更新數據包會采用最短路徑方式上行,最終到達CIPv6網關。其間經過的節(jié)點形成分頁緩沖區(qū),分頁緩沖區(qū)中形成一個記錄對應每個睡眠移動主機。當數據包下行到CIPv6節(jié)點時,由分頁緩沖負責其路由。如果所到節(jié)點沒有分頁緩沖區(qū),則數據包會繼續(xù)下行到相鄰節(jié)點;如果仍然沒有分頁緩沖區(qū)或者分頁緩沖區(qū)沒有對應移動主機的記錄,則數據包被丟棄。在整個下行路徑上的節(jié)點可能有分頁緩沖區(qū),也可能沒有,這取決于最后一次分頁更新數據包的上行路徑。當移動主機接收到下行數據包后,便由睡眠狀態(tài)轉為激活狀態(tài),同時通過發(fā)送路由更新數據包建立其路由緩沖區(qū),后續(xù)的下行數據由路由緩沖區(qū)負責其路由。
2.2 路由
??? 分頁緩沖區(qū)和路由緩沖區(qū)都可以為CIPv6網絡中的數據包提供路由,表1列出了兩者的差異。
?
2.3 切換
??? 切換的初始化由移動主機完成。當活動主機靠近一個新的基站時,它會發(fā)送一個路由更新數據包,并將后續(xù)的數據包指向新的基站。路由更新數據包會更新對應的整個路由緩沖記錄鏈。睡眠主機僅當進入新的分頁區(qū)時才會發(fā)送分頁更新數據包;當在同一個分頁區(qū)中切換基站時,睡眠主機不發(fā)送數據,因為在一個分頁區(qū)中的分頁緩沖區(qū)都相同。
2.4 漫游
??? 當移動主機在不同的CIPv6網絡間漫游時,主機將根據基站周期發(fā)送的Beacon信號判斷已經進入新的CIPv6網絡,Beacon信號同時包含新CIPv6網絡的網關IP。主機一旦作出判斷,就自動啟用無地址狀態(tài)模式[2],無地址狀態(tài)模式會自行配置新的IP,并檢驗新IP是否與新的CIPv6網絡IP沖突,如不沖突就以此IP作為在新CIPv6網絡中的臨時IP。
3 協(xié)議
3.1協(xié)議參數
??? 表2為CIPv6網絡的協(xié)議參數。
?
3.2 Beacon 結構
??? CIPv6基站必須周期性地發(fā)送Beacon 信號,使得移動主機總可以有一個可用基站。Beacon 信號是基于IPv6的廣播,基本形式為:FF02:0:0:0:0:0:0:1,具體結構如表3。
?
3.3包格式
3.3.1路由更新數據包
??? 路由更新數據包是一個基于IPv6的包含最短路徑擴充的協(xié)議。具體結構如表4。
?
??? S標志含義:1為軟切換,默認值為0,不支持軟切換的基站忽略此標志。I標志的含義為:指示間接軟切換。
3.3.2 分頁更新數據包
??? 與路由更新數據包類似,分頁更新數據包也是一個基于IPv6的包含最短路徑擴充的協(xié)議。源地址為IPv6主機IP,目標地址為IPv6網關IP,S標志和I標志均為0。
3.4 路由
??? IPv6網絡的路由算法具有特殊性,它并不需要通常IP網絡的路由能力,IP網絡的路由能力完全由CIPv6網關實現(xiàn)。
3.4.1 路由器的拓補
??? 在上行方向,數據包基于最短路徑方式到達CIPv6網關,每個節(jié)點都將數據包發(fā)往與其連接到IPv6網關的相鄰節(jié)點,相鄰節(jié)點的上行選擇由網絡管理員事先設定,或者通過簡單的最短路徑算法選擇最短路徑從而替代手工設定。當網絡復雜度較高時,通過計算后的手工設定會有更高的效率。
3.4.2 上行路由
??? 當數據包到達一個節(jié)點后,該數據包首先被用以更新到達節(jié)點的路由緩沖區(qū)和分頁緩沖區(qū),然后被發(fā)送到上行相鄰節(jié)點。為了更新緩沖區(qū),節(jié)點會讀取數據包類型、端口號、源IP地址。分頁更新數據包更新分頁緩沖區(qū),路由更新數據包同時更新分頁緩沖區(qū)和路由緩沖區(qū),數據包則會刷新所有緩沖區(qū)的狀態(tài),但不會改變分頁緩沖區(qū)和路由緩沖區(qū)。兩個緩沖區(qū)都包含IPv6地址、接口、MAC地址、呼出時間和時間戳。接口和MAC地址用作下行數據的路由,時間戳用于存放控制數據包發(fā)來的時間,以便明確映射時間。
??? 當一個數據包由下行連接相鄰節(jié)點發(fā)來時,節(jié)點首先在路由緩沖區(qū)中查找源IP,如果路由沒有變化就刷新記錄:呼出時間被刷新為當前時間+路由超時,如果該節(jié)點有分頁緩沖區(qū),分頁緩沖區(qū)也作相同處理。如果路由發(fā)生變化,數據包就被丟棄。當更新數據包到達一個節(jié)點時,節(jié)點首先檢驗數據包的合法性,如果不能通過合法性檢測,則更新數據包就被丟棄[3],并在系統(tǒng)日志中記錄該事件。如果數據包合法,節(jié)點就在緩沖區(qū)中建立新的路由記錄" title="路由記錄">路由記錄:新數據包IPv6地址、接口、MAC地址、呼出時間(當前時間+路由超時)、時間戳。如果緩沖區(qū)中對應IP已經存在,根據時間戳進行判斷,到來數據包時間戳更新時,則更新對應記錄,否則丟棄數據包。
3.4.3 下行路由
??? 當一個節(jié)點從其上行連接節(jié)點收到一個數據包時,節(jié)點首先檢驗路由緩沖區(qū)中是否包含該目標IP,如果存在則繼續(xù)向下行方向發(fā)送。如果不存在對應記錄,該數據包將以廣播的形式向所有相鄰節(jié)點發(fā)送。如果該節(jié)點有分頁緩沖區(qū),且分頁緩沖區(qū)中包含對應IP的記錄,數據包會繼續(xù)下行,如果分頁緩沖區(qū)中沒有對應記錄,數據包就被丟棄。
4 CIPv6的擴充
4.1 切換擴充
4.1.1 軟切換
??? 為了防止敏感數據的丟失,可以采用軟切換方式。在軟切換時,移動主機會與兩個基站同時通信,這樣下行數據仍然可以同時到達兩個基站,從而防止數據通信的中斷。為了實現(xiàn)軟切換,移動主機需要在新基站建立對應的路由記錄,同時繼續(xù)監(jiān)聽舊主機的下行數據。移動主機通過設置S標志來實現(xiàn)軟切換,節(jié)點通過識別S標志,在數據下行時會同時向新基站和舊基站發(fā)送數據包,直到移動主機向新基站發(fā)送路由更新數據包。一旦移動主機向新基站發(fā)送路由更新數據包,S標志將被清除,舊主機路由緩沖區(qū)中的對應記錄也會被清除,從而完成整個軟切換過程。
??? 如果新基站的訪問路徑大于舊基站,下行數據可能無法到達移動主機。為了防止類似問題,在軟切換時到達新基站的數據包會有一定的延時,這可能導致移動主機收到兩次相同數據包,但不會出現(xiàn)數據包丟失。
4.1.2? 間接軟切換
??? 不是所有無線技術都支持同步多連接,如:有些設備無法實現(xiàn)在監(jiān)聽舊基站的同時向新基站發(fā)送路由更新數據包,在這種情況下可以采用間接軟切換。當需要切換時,主機不向新基站發(fā)送路由更新數據包(因為設備無法實現(xiàn)),路由更新數據包仍被發(fā)送到當前基站,但這個數據包的目標IP(下行時的目標IP)就是新基站的IP,這時將I標志設定為1,表示開始間接軟切換過程。這樣,下行的數據就會根據新的基站地址到達新基站,當基站收到該數據包時即可建立新的主機路由記錄鏈。
4.2 多網關網絡
??? 當CIPv6網絡只有一個網關時,這個網關必須負責上行和下行數據。IPv6網絡可以采用多網關,這樣可以提高網絡的效率,但移動主機和相關節(jié)點必須可以判斷使用哪個網關,例如:通過地理位置或IP空間進行網關分配。
??? 蜂窩式IPv6是一個支持主機頻繁切換的協(xié)議,通過對該協(xié)議的擴充引入軟切換后,不僅可以實現(xiàn)基于移動網絡的IPv6網絡,還可以很好地解決切換過程中的數據丟失。軟切換根據設備的功能性,可以通過直接軟切換和間接軟切換兩種方式實現(xiàn)。
參考文獻
[1] ?Internet Protocol version 6(IPv6) specification. IETF RFC 2460, December 1998.
[2] ?THOMSON S, NARTEN T. IPv6 stateless address autoconfiguration. IETF RFC 2462, December 1998.
[3] ?METZGER P, SIMPSON W. IP authentication using keyed ?MD5. IETF RFC 1828, August 1995.