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