摘 要: 基于域的概念提出一種組播和移動IPv6相結合的移動主機通信方案,。介紹了該方案的網(wǎng)絡體系結構及其路由建立策略,、數(shù)據(jù)重傳策略和切換策略,。
關鍵詞: 組播 IPv6 移動主機
1 移動IPv6的特點
在移動IPv6中,每個移動主機(MH)都有2個地址:本地地址和轉發(fā)地址。本地地址是移動主機與本地網(wǎng)連結時使用的固定不變地址;轉發(fā)地址是移動主機與外區(qū)網(wǎng)絡連接時的臨時地址,即隧道終點地址,當移動主機漫游到外地網(wǎng)絡時使用,。每當移動主機接入新的網(wǎng)絡,轉發(fā)地址就發(fā)生變化,。
移動IPv6的工作過程是:移動主機通過接收移動代理的通告報文分辨其在本地網(wǎng),還是在外地網(wǎng),。移動代理分為本地代理(HA)和外地代理(FA)。如果移動主機檢測到自己位于本地網(wǎng),則不需要移動服務就可以工作,。如果檢測到自己已漫游到外地網(wǎng),則獲得該外地網(wǎng)上的一個轉交地址,。然后移動主機向本地代理登記其新的轉交地址。發(fā)往移動主機本地地址的數(shù)據(jù)被其本地代理接收,本地代理利用隧道技術封裝數(shù)據(jù)包,發(fā)送到移動主機的轉交地址并解除封裝,最終發(fā)送給移動主機,。
2 組播應用于移動IPv6的優(yōu)勢
移動主機區(qū)別于固定網(wǎng)絡設備的最大特點是它具有移動性,。當移動主機從一個網(wǎng)絡切換到另一個網(wǎng)絡時,其IP地址會隨之改變。而IP地址通常會被網(wǎng)絡協(xié)議的高層(如傳輸層或應用層)用來確定一個通信連接,所以這種在通信過程中IP地址的改變將導致重新建立不必要的連接,。例如TCP協(xié)議使用源端地址和目的端地址組成的4元組(目的IP地址,、目的端口號、源IP地址,、源端口號)來確定一個連接,。如果在使用TCP協(xié)議的通信過程中,移動主機的IP地址發(fā)生了改變,則先前建立的連接就必須斷開,并重新建立連接。如在TCP中使用3次握手來重新建立連接,則會造成一定的時延和通信的間斷,。
將組播應用于IPv6,其基本思想是將每個移動主機看成1個組播組,。在通信過程中,如果移動主機的IP地址改變,則只要將新的IP地址加入組播組,就可以接收數(shù)據(jù)了。這樣可以利用組播的優(yōu)勢,當移動主機切換時,保持通信的連續(xù)性,。
3 移動主機通信方案
本文提出一種基于域的組播和移動IPv6結合的移動主機通信方案,。在該方案中,首先建立基于域的網(wǎng)絡體系結構。并采用core-based trees組播路由,以域網(wǎng)關為核心建立從通信主機到移動主機的組播路由,。在此基礎上,提出了保證數(shù)據(jù)在移動網(wǎng)絡中傳輸?shù)目煽啃圆呗?即數(shù)據(jù)重傳策略)以及移動主機在切換時保證數(shù)據(jù)傳輸穩(wěn)定性的方法,。
3.1 基于域的網(wǎng)絡體系結構
基于域的網(wǎng)絡體系結構如圖1所示。網(wǎng)絡被分成域中網(wǎng)絡和與其互聯(lián)的Internet網(wǎng)絡,。其中移動主機MH和固定網(wǎng)絡進行通信的部分稱為無線網(wǎng)絡,。假定固定網(wǎng)絡的通信是可靠的,既不丟失也不損壞數(shù)據(jù),本文所提出的方案只保證無線網(wǎng)絡能可靠地傳輸數(shù)據(jù)。
通過使用域的概念,把移動主機切換分為域內切換和域間切換,以提高移動網(wǎng)絡的數(shù)據(jù)傳輸效率,。例如:一個移動主機可能會在大學的幾個校區(qū)不斷地變換位置,但是大部分時間在該大學的范圍內,。這樣,可以把1個自治網(wǎng)絡作為1個域,即可以把整個大學作為1個域,幾個校區(qū)作為幾個子網(wǎng),。本文著重研究域內切換的情況,。
每個需要加入組播組的主機都必須發(fā)送加入組播組信號給域網(wǎng)關。在建立組播路徑時,只需要對每個組播組以core節(jié)點(即域網(wǎng)關)為中間節(jié)點建立單一的組播樹,。此組播樹包括源端到域網(wǎng)關的路由和域網(wǎng)關到移動主機的路由,。這種方案避免了采用廣播式的組播選路,減少了網(wǎng)絡資源的浪費,減輕了網(wǎng)絡負擔。
移動主機本地代理HA的作用是緩存移動主機當前所在的域網(wǎng)關地址(即移動主機的本地地址到域網(wǎng)關的映射),使要與移動主機通信的主機知道該移動主機組播路由器的位置,。外地代理FA的作用是代表移動主機向域網(wǎng)關發(fā)送組播請求,。為保證無線網(wǎng)絡通信的可靠性,使用移動代理代替移動主機緩存接收數(shù)據(jù)。移動代理只能釋放已正確接收的數(shù)據(jù),以保證移動網(wǎng)絡傳輸數(shù)據(jù)的可靠性,。域網(wǎng)關是組播路由的中心點,即通信主機與移動主機通信的轉接點,負責建立與通信另一端的路由和建立到移動主機的組播路由,。
3.2 建立到移動主機的路由
(1)移動主機作為接收者
移動主機加入到組播組的算法如下,。
①當移動主機切換到另一個網(wǎng)絡后,根據(jù)移動IPv6協(xié)議可以通過外地代理獲得1個外地地址,。同時,外地代理代表移動主機向域網(wǎng)關發(fā)送IGMP請求,要求加入此移動主機的組播組,。
②域網(wǎng)關檢查此組播組是否已存在,如果已存在,則表明此切換是域內切換,不需要向本地代理發(fā)更新信息,只需在域網(wǎng)關為相應的組播組增加新的組播地址并新建1條到此新地址的路由的域網(wǎng)關,。
?、廴绻淮嬖诖私M播組,則表明此移動主機是從別的域切換過來的,因此域網(wǎng)關需要向移動主機的本地代理發(fā)更新信息,通知本地代理更新緩存中的移動代理當前域網(wǎng)關地址。同時在域中記錄此組播組和其對應的組播地址,并建立從域網(wǎng)關到此移動主機的組播路由以及通信主機之間的路由,。
通信主機與移動主機通信的路由算法如下,。
①通信主機向DNS請求得到移動主機本地地址和移動主機組播號(假定DNS能提供移動主機本地地址和組播號),。
?、谕ㄐ胖鳈C發(fā)請求信息給移動主機本地代理(此請求信息包括移動主機的本地地址和組播號),要求移動主機通告移動主機當前的域網(wǎng)關地址。
?、垡苿又鳈C本地代理收到請求后,檢索其緩存,得到移動主機對應的當前域網(wǎng)關地址并把域網(wǎng)關地址發(fā)送給通信主機,。
④通信主機收到此域網(wǎng)關地址后,建立到域網(wǎng)關的組播路由,然后把需要發(fā)送的數(shù)據(jù)發(fā)送給域網(wǎng)關,。域網(wǎng)關根據(jù)域內的組播路由再把數(shù)據(jù)發(fā)送給移動主機的外地代理并由外地代理把數(shù)據(jù)轉發(fā)給移動主機,。
(2)移動主機作為發(fā)送者
移動主機作為發(fā)送者的情況要簡單些。使用移動IPv6協(xié)議,以移動主機的當前外地地址作為組播原地址,、組播號作為移動IPv6的頭部擴展字段(用來標志移動主機)發(fā)送給外地代理,。由外地代理負責路由,轉發(fā)給通信主機。
3.3 數(shù)據(jù)重傳策略
由于移動網(wǎng)絡的不可靠性,因此需要采用一定的策略來保證移動網(wǎng)絡的傳輸可靠性,。
(1)移動主機作為接收者
?、僖苿哟硇枰欢ǖ木彺鎭泶鎯墓潭ňW(wǎng)絡接收的數(shù)據(jù)。移動代理將數(shù)據(jù)發(fā)送給移動主機后并不立即將緩存中的數(shù)據(jù)釋放,而是設置超時定時器,。
?、谝苿又鳈C接收數(shù)據(jù)后,如果數(shù)據(jù)無損壞并且序號不重復,則發(fā)送ACK消息給移動代理。如果接收數(shù)據(jù)的序號與移動主機已正確接收數(shù)據(jù)的序號相同,則丟棄數(shù)據(jù),不做任何響應,。移動主機不需要對接收到的每個數(shù)據(jù)報進行ACK確認,可以一次確認多個數(shù)據(jù)報,。發(fā)送一個數(shù)據(jù)報的ACK確認表明在這個數(shù)據(jù)報之前的所有數(shù)據(jù)報都已正確接收。
?、廴绻麛?shù)據(jù)被損壞或者接收數(shù)據(jù)的序號之間出現(xiàn)不連續(xù)性,則發(fā)送NACK消息給移動代理,希望移動代理重傳數(shù)據(jù),并設置超時定時器,。如果定時器超時,則表明NACK或重傳的信息丟失,需要重發(fā)NACK消息。
?、芤苿哟硎盏揭苿又鳈C的ACK消息后,釋放此ACK序號以及此序號之前的數(shù)據(jù),。如果收到NACK消息,則重新發(fā)送此序號的數(shù)據(jù)。如果移動代理的超時定時器到,表明ACK消息丟失或移動主機已離開網(wǎng)絡,則移動代理可以釋放緩存,。
(2)移動主機作為發(fā)送者
?、僖苿又鳈C向移動代理發(fā)送數(shù)據(jù),移動代理正確接收到數(shù)據(jù)后,向移動主機發(fā)送ACK消息,。移動主機也可以一次確認多個數(shù)據(jù)報。
?、谌绻麛?shù)據(jù)被損壞或者接收數(shù)據(jù)的序號之間出現(xiàn)不連續(xù)性,則發(fā)送NACK消息給移動主機,要求移動主機重傳數(shù)據(jù),并設置超時定時器,。如果超時定時器到,表明NACK或重傳的信息丟失,則重發(fā)NACK消息。
?、廴绻苿又鳈C收到NACK消息,則重新發(fā)送此序號的數(shù)據(jù),。
3.4 切換策略
(1)移動主機作為接收者的切換算法。
?、偌俣ㄒ苿又鳈C從FA切換到FA′,移動主機首先加入組播組,。
②MH向FA′登記時,向FA′發(fā)送的信息包括:原FA地址,、已正確接收的數(shù)據(jù)序號和組播號,。此時,FA和FA′在同一組播組。設移動主機向FA′發(fā)送的信息中已正確接收的數(shù)據(jù)序號為N,即在FA中已正確接收到了序號為N的數(shù)據(jù),FA′接收到數(shù)據(jù)序號最小為N′,。
?、廴绻鸑′>N,則表示序號為N+1~N′-1的數(shù)據(jù)在移動主機切換時丟失,FA′發(fā)送請求信息給FA,要求FA傳輸數(shù)據(jù)序號為(N,N′)間的數(shù)據(jù)給FA′,并發(fā)送release信號給FA,通知FA可以離開組播組。FA通過單播方式傳輸數(shù)據(jù)序號為(N,N′)區(qū)間的數(shù)據(jù)給FA′,。
?、苋绻鸑′≤N,則表示移動主機在切換過程中無數(shù)據(jù)丟失,只需發(fā)送release信號給FA,通知FA可以離開組播組。
(2)移動主機作為發(fā)送者的切換算法,。
假定移動主機從一個網(wǎng)絡(移動代理為FA)切換到另一個網(wǎng)絡(移動代理為FA′),。移動主機有序號1~L的數(shù)據(jù)需要發(fā)送,在FA網(wǎng)絡中發(fā)送序號為1~n的數(shù)據(jù),鑒于網(wǎng)絡的延遲或數(shù)據(jù)的丟失,可能移動主機沒有收到1~n的數(shù)據(jù)的全部確認就已經發(fā)生切換。設移動主機收到FA序號為1~m的ACK(m≤n≤L),。
?、僖苿又鳈CMH切換到FA′時向FA′登記,并向FA′發(fā)送原FA和已正確接收的數(shù)據(jù)序號。
?、贔A′發(fā)送消息給FA,要求FA代替移動主機向組播組發(fā)送移動主機在FA中已正確收到的數(shù)據(jù)確認序號的數(shù)據(jù),本例中為1~m的數(shù)據(jù),。FA′代替移動主機向組播組繼續(xù)發(fā)送序號從移動主機在FA中已正確收到的數(shù)據(jù)確認序號以后的數(shù)據(jù),本例中為m~L的數(shù)據(jù)。
4 性能分析和總結
本文將組播和移動IPv6相接合,利用組播的優(yōu)勢實現(xiàn)了移動主機在切換位置時通信的連續(xù)性,避免了因為切換時IP地址的改變導致通信連接的重建,。采用core-based trees組播路由,將移動主機所在的域網(wǎng)關作為core,減少了移動主機切換位置時組播路由的重建,。移動主機在1個域中進行切換的概率是遠高于在域間切換的概率,所以重建組播路由的路徑一般只限于域網(wǎng)關與子網(wǎng)的路由器之間。采用ACK和NACK消息在移動主機和其移動代理之間進行傳遞,進行傳輸數(shù)據(jù)的確認和重傳機制,保證了移動網(wǎng)絡的通信可靠性,。
參考文獻
1 Tanenbaum A S.Computer Networks.北京:清華大學出版社,2001
2 Stevens W R著,范建華譯.TCP/IP詳解 卷1:協(xié)議.北京:機械工業(yè)出版社,2001
3 Perkins C.IP Mobility Support.RFC2002,1996
4 Fenner W.Internet Group Management Protocol(Version 2).RFC2236,1997