摘要:通信工程師互聯網技術考試雙協議棧:雙棧方式(Dualstack)是過渡階段的一種主要的方式。雙棧方式是指主機同時運行IPv4和IPv6兩套協議棧,同時支持兩個版本的網絡層1P協議標準。
4.8.3.2 雙協議棧
雙棧方式(Dualstack)是過渡階段的一種主要的方式。雙棧方式是指主機同時運行IPv4和IPv6兩套協議棧,同時支持兩個版本的網絡層1P協議標準。因為IPv4和IPv6在形式、功能等方面都較相似,IPv6不過是IPv4的改進、完善,二者同屬于網絡層協議,都基于相同的物理平臺,而且加載于其上的傳輸層協議TCP和UDP也沒有太大的區別(最多是針對IPv4的改進版本〉,所以在理論和實踐上,支持雙協議棧的節點既能與支持IPv4協議的節點通信.又能與支持IPv6協議的節點通信。主機和路由器都可以通過雙棧方式來獲得和IPv4及IPv6結點的通信能力。
雙協議棧方式的實現可參見以下的概念模型,如圖4-46所示。

如圖4-46(8)所示,雙協議節點(包括主機和路由器)同時實現了IPv4和IPv6協議,可以和IPv4或IPv6主機建立通信。主機根據目的IP來決定采用IPv4還是IPv6協議發送或接收數據包。在理想的網絡分層模S中,傳輸層和網絡層是獨立的,IP層的改變并不會影響傳輸層協議的運行,但實際上,TCP和UDP協議在校驗碼計算中都采用包含了源和目的IP地址的偽頭部?所以在LinUx、Window3等操作系統的IPv6協議實現中,作為IPv6上層協議的TCP/UDP代碼是獨立于IPv4上的TCP/UDP而實現的,如圖4-46(b)所示,因此稱之為雙棧節點更合適。
目前雙棧是運行最廣泛的遷移機制。不過雙棧只允許相同IP版本之間的通信,即IPv4和IPv4之間的通信,或IPv6和IPv6之間的通信。不同版本IP之間的通信需要通過協議翮譯來完成。
在IPv4向IPv6的過渡初期?絕大多數終端或路由器都是純IPv4節點(只實現了IPv4協議棧的節點)或雙棧節點,在過渡中期,雙棧節點或純IPv6節點將是主要的通佶實體,到過渡后期,所有接人互聯網的設備基本上都是純IPv6節點(只實現了IPv6協議棧的節點〉。
雙棧工作方式可以描述如下:
如果應用程序使用的目的地址是IPv4地址,則使用IPv4協議棧。
如果應用程序使用的目的地址是兼容IPv4地址的IPv6地址,則IPv6就封裝到IPv4中。
如果目的地址是不為IPv4兼容的IPv6地址,則使用IPv6地址,且極可能通過隧道等技術來尋找路由和傳送,或者封裝在默認配置的隧道中。
如果應用程序使用域名來作為目的地址傳送,那么節點首先必須提供一個能夠處理IPv4A記錄和IPv6AAAA或A6記錄(IETF的IPng工作組提倡以IPv6A6記錄來代替AAAA記錄)的地址解析器數據庫。啟用程序必須訪問具有上述解析能力的DNS服務器,從中得到相應的IPv4/IPv6地址,再根據所得地址的具體情況做出反應。
當DNS中同時存在A、AAAA和A6記錄時,可能會有3種不同的操作:
只返回其中的IPv6地址;
只返回其中的IPv4地址;
同時返回IPv4和IPv6地址。
選擇不同的地址類型及不同類型地址的返回次序都會對最終確定的某種類型的IP流量產生影響。
雙協議棧的缺省IP包發送算法為:
①如果IP包的目的地址是IPv4地址:
如果目的站點在可達鏈路上,直接發送;如果目的站點不可達,要么送往在線路由器,要么不可達。
②如果IP包的目的地址是與IPv4兼容的IPv6地址:
如果目的站點在可達鏈路上,直接發送IPv6包;如果目的站點處于off-link,則有三種情況:(a)如果有可達IPv4路由器,則封裝在IPv4包中發往IPv4路由器;(b)如果有可達IPv6路由器,則不封裝,直接發送;(c)如果沒有可達路由器,則不可達。
③如果IP包的目的地址是純IPv6地址:
如果目的站點在可達鏈路上,直接發送IPv6包;如果目的站點處于off-link,則有三種情況:(a)如果有可達IPv6路由器,則直接發送到路由器;(b)如果目的地通過手動隧道可達,并且鏈路上有可達IPv4路由器,則封裝成IPv4包,目的IP地址為隧道終點地址,鏈路地址為可達路由器的鏈路地址。(c)否則為不可達。
④在線/離線的確定:
IPv4使用子網掩碼確定,IPv6使用鄰居發現協議確定。兩者共同使用的是:如果目的地址是IPv4地址,則使用RFC1122比較兩者的掩碼;如果目的地址是與IPv4兼容的IPv6地址,則使用低32位目的地址的子網掩碼比較;如果是IPv6純地址,則使用鄰居發現協議比較。
這種協議棧方式的實現重點在于對網絡路由器的升級改造。
對一個同時支持IPv4和IPv6的路由器來說,需要維護兩種網絡協議,也就是說,在一個路由器平臺運行了兩套類似的路由器軟件,勢必將增加系統運行的復雜性和系統維護的工作量。所以,在目前狀況下,大多數IPv6實驗并不刻意去實現兩個完全不同的TCP/IP棧分別為IPv4和IPv6提供服務,而是努力探索只提供一個混合的協議棧,IPv4和IPv6兩套協議棧中共享其中大部分代碼;此外,兩者本身只額外保留少量標示其特性的代碼。于是,在某種意義上,這種模式已不算典型的“雙棧”了。這樣,就可以大大提高系統的效率。只是這方面還沒有相關統一的協議規范。
另外,就雙協議方式本身而言,并不保證具有創建隧道來進行數據傳送的功能。只是一般來說,隧道技術往往要求具有雙協議棧方式。兩且,這種雙協議棧方式在實踐中的普遍運用,很多時候也需要隧道技術的支持。
編輯推薦
通信工程師備考資料免費領取
去領取
專注在線職業教育25年