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