1 基於IPv4的移動IP
1.1 基本通信流程
基於IPv4的移動IP定義三種功能實體:移動節點(mibile node)、歸屬代理(home agent)和外埠代理(foreign agent)。歸屬代理和外埠代理又統稱為移動代理。移動IP技術的基本通信流程如下:
(1)遠程通信實體通過標准IP路由機制,向移動結點發出一個IP數據包;
(2)移動結點的歸屬代理截獲該數據包,將該包的目標地址與自己移動綁定表中移動結點的歸屬地址比較,若與其中任一地址相同,繼續下一步,否則丟棄;
(3)歸屬代理用封裝機制將該數據包封裝,采用隧道操作發給移動結點的轉發地址;
(4)移動結點的拜訪地代理收到該包後,去其包封裝,采用空中信道發給移動結點;
(5)移動結點收到數據後,用標准IP路由機制與遠程通信實體建立連接。
在移動IP協議中,每個移動節點在“歸屬鏈路”上都有一個唯一的“歸屬地址”。與移動節點通信的節點稱為“通信節點”,通信節點可以是移動的,也可以是靜止的。與移動節點通信時,通信節點總是把數據包發送到移動節點的歸屬地址,而不考慮移動節點的當前位置情況。
在歸屬鏈路上,每個移動節點必須有一個“歸屬代理”,用於維護自己的當前位置信息。這個位置由“轉交地址”確定,移動節點的歸屬地址與當前轉交地址的聯合稱為“移動綁定”(簡稱“綁定”)。每當移動節點得到新的轉交地址時,必須生成新的綁定,向歸屬代理注冊,以使歸屬代理及時了解移動節點的當前位置信息。一個歸屬代理可同時為多個移動節點提供服務。
當移動節點連接在歸屬鏈路上(即鏈路的網絡前綴與移動節點位置地址的網絡前綴相等)時,移動節點就和固定節點或路由器一樣工作,不必運用任何其它移動IP功能;當移動節點連接在外埠鏈路上時,通常使用“代理發現”協議發現一個“外埠代理”,然後將此外埠代理的IP地址作為自己的轉交地址,並通過注冊規程通知歸屬代理。當有發往移動節點歸屬地址的數據包時,歸屬代理便截取該包,並根據注冊的轉交地址,通過隧道將數據包傳送給移動節點;由移動節點發出的數據包則可直接選路到目的節點上,無需隧道技術。
為了支持移動分組數據業務,移動IP應解決代理發現、注冊和隧道封裝三項技術。
1.2 代理發現
移動IP通過擴展現有的“ICMP路由器發現”機制來實現代理發現。代理發現機制檢測移動節點是否從一個網絡移動到另一個網絡,並檢測它是否返回歸屬鏈路。當移動節點移動到一個新的外埠鏈路時,代理發現機制也能幫助它發現合適的外埠代理。
(1)代理布告(agent advertisement)
在所連接的網絡上,歸屬代理和外埠代理定期廣播“代理布告”消息,以宣告自己的存在。代理布告消息是ICMP路由器布告消息的擴展,它包含路由器IP地址和代理布告擴展信息。移動節點時刻監聽代理布告消息,以判斷自己是否漫游出本地網絡。若移動節點從自己的歸屬代理接收到一個代理布告消息,它就能推斷已返回歸屬,並直接向歸屬代理注冊,否則移動節點將選擇是保留當前的注冊,還是向新的外埠代理進行注冊。
(2)代理請求(agent solicitation)
拜訪地代理周期性地發送代理布告消息,若移動節點爭需獲得代理信息,它可發送一個ICMP“代理請求”消息。任何代理收到代理請求消息後,應立即發送。代理請求與ICMP路由器請求消息格式相同,只是它要求將IP的TTL域置為1。
1.3 注冊
移動節點發現自己的網絡接入點從一條鏈路切換到另一鏈路時,就要進行注冊。另外,由於注冊信息有一定的生存時間,所以移動節點在沒有發生移動時也要注冊。移動IP的注冊功能是:移動節點可得到外埠鏈路上外埠代理的路由服務;可將其轉交地址通知歸屬代理;可使要過期的注冊重新生效。另外,移動節點在回到歸屬鏈路時,需要進行反注冊。
注冊的其它功能是:可同時注冊多個轉交地址,此時歸屬代理通過隧道,將發往移動節點歸屬地址的數據包發往移動節點的每個轉交地址;可在注銷一個轉交地址的同時保留其它轉交地址;在不知道歸屬代理的情況下,移動節點可通過注冊,動態獲得歸屬代理地址。
移動IP的注冊過程一般在代理發現機制完成之後進行。當移動節點發現已返回歸屬鏈路時,就向歸屬代理注冊,並開始象固定節點或路由器那樣通信,當移動節點位於外埠鏈路時,能得到一個轉交地址,並通過外埠代理向歸屬代理注冊這個地址。
移動IP的注冊操作使用UDP數據報文,包括注冊請求和注冊應答兩種消息。移動結點通過這兩種注冊消息,向歸屬網絡注冊新的轉發地址。
1.4 隧道技術
隧道技術在移動IP中非常重要。移動IP使用IP的IP封裝、最小封裝和通用路由封裝(GRE)三種隧道技術。
(1)IP的IP封裝
由RFC2003定義,用於將IPv4包放在另一個IPv4包的淨荷部分。其過程非常簡單,只需把一個IP包放在一個新的IP包的淨荷中。采用IP的IP封裝的隧道對穿過的數據包來說,猶如一條虛擬鏈路。移動IP要求歸屬代理和外埠代理實現IP的IP封裝,以實現從歸屬代理到轉交地址的隧道。
(2)IP的最小封裝
由RFC2004定義,是移動IP中的一種可選隧道方式。目的是減少實現隧道所需的額外字節數,通過去掉IP的IP封裝中內層IP報頭和外層IP的報頭的冗余部分完成。與IP的IP封裝相比,它可節省字節(一般8byte)。但當原始數據包已經過分片時,最小封裝就無能為力了。在隧道內的每台路由器上,由於原始包的生存時間域值都會減小,以使歸屬代理在采用最小封裝時,移動節點不可到達的概率增大。
(3)由RFC1701定義,是移動IP采用的最後一種隧道技術。除了IP協議外,GRE還支持其它網絡層協議,它允許一種協議的數據包封裝在另一種協議數據包的淨荷中。在某些應用中,GRE防止遞歸封裝的機制也非常有吸引力。