摘要:通信工程師互聯(lián)網(wǎng)技術IPv6的擴展報頭:IPv4報頭中存在可變長度的選項,利用它可以處理具有指定路徑控制、路徑記錄、時戳(timestamp)和安全等選項的特殊分組。但因這種分組會影響網(wǎng)絡的性能,故選項逐漸被廢棄。
4.5.2 IPv6的擴展報頭
4.5.2.1 從選項到擴展報頭
IPv4報頭中存在可變長度的選項,利用它可以處理具有指定路徑控制、路徑記錄、時戳(timestamp)和安全等選項的特殊分組。但因這種分組會影響網(wǎng)絡的性能,故選項逐漸被廢棄。
然而需要作特殊處理的分組是不可缺少的。例如:利用指定路徑控制使分組通過特定路徑或指定由接收方進行特殊的操作時就需進行特殊的處理。根據(jù)IPv4的運用經驗,IPv6中規(guī)定了使用擴展報頭(extensionheader〉的特殊處理。除了減少IPv6數(shù)據(jù)報轉發(fā)時選項的影響外,IPv6規(guī)范使得對于新的擴展和選項的定義變得更加簡單。在需要的時候可能還會定義其他的選項和擴展。
IPv6采用了一個固定基本報頭和后面一組可選的擴展報頭的模式,它實際上是一般性和有效性折中的產物。為了保證徹底地通用,IPv6還需要包含支持分片(fragmentation)、信源路由以及鑒別等功能;然而,為所有這些功能在數(shù)據(jù)報頭中安排固定的字段是不劃算的,因為大多數(shù)數(shù)據(jù)報并不使用所有的功能,而且IPv6的巨大地址空間也使數(shù)據(jù)轉發(fā)的有效性減弱。例如,當僅僅在一個單一的局域網(wǎng)中發(fā)送數(shù)據(jù)報時,一個包含了空地址字段的數(shù)據(jù)報報頭會在每一個幀中占相當大的比重。
IPv6的擴展報頭的模式與IPv4任選項相似。信源可以選擇在一個給定的數(shù)據(jù)報中要包含或忽略哪些擴展報頭,因此擴展報頭的結構設計具有很大的靈活性。
在IPv6中,可選的internet層信息在單獨的報頭中編碼,這些報頭可以放置在IPv6分組里基本報頭和高層報頭之間,這些報頭就是擴展報頭。IPv6中定義了一系列擴展報頭。IPv6分組中每一個基本報頭和擴展報頭都包含一個下一個報頭(nextheader)字段,每一個擴展報頭都由特定的下一個報頭值(nextheadervalue)來確定。每一個中間的路由器以及最終目的站上的軟件需要對數(shù)據(jù)報進行處理,它們必須使用nextheadervalue來對數(shù)據(jù)報進行分析。在以下的例子中,可以看到一個IPv6分組可以攜帶零個、一個或多個擴展報頭,每一個擴展報頭都由其前面報頭的nextheadervalue來確定。
在圖4-21中,有三個數(shù)據(jù)報,它們分別是:(a)只有一個基本報頭;(b)一個基本報頭和一個擴展報頭:(c)一個基本報頭和兩個擴展報頭。每個報頭的nextheader字段指明了接下去的報頭類型。
在一個分組投送路徑上的所有節(jié)點都不檢查或處理擴展報頭,直到此分組到達由其基本報頭中的信宿地址字段指明的目的節(jié)點(在multicast情況下是multicast節(jié)點中的每一個)后才由目的節(jié)點處理。在目的節(jié)點中,對分組的IPv6基本報頭進行多路分解?調用對應的功能來處理第一個擴展報頭,當沒有擴展報頭時則直接處理高層報頭。每個擴展報頭的內容和語法格式決定是否要繼續(xù)處理下一個報頭。因此,節(jié)點必須嚴格地按照擴展報頭在分組中出現(xiàn)的次序來處理它們。例如,信宿節(jié)點不能對一個分組進行預覽,以便在處理其他擴展報頭之前先處理某一類擴展報頭,當然,對于只有一個基本報頭和數(shù)據(jù)的IPv6數(shù)據(jù)報來說,對它進行分析的效率同分析IPv4數(shù)據(jù)沒有什么兩樣。
有一種例外情況,這就是當前一個報文段是跳到跳選項頭(hopby-hopoptionshead-er),這個擴展報頭中攜帶的信息必須被分組投送路徑上的每一個節(jié)點檢查和處理,包括信源節(jié)點和信宿節(jié)點。跳到跳選項頭如果出現(xiàn)在IPv6報文中,則它一定緊接著IPv6基本報頭,由IPv6基本報頭中nextheader字段中的零值表明下一個報頭是跳到跳選項頭。
如果處理報頭時,節(jié)點被要求處理下一個報頭,但當前報頭中的nextheadei值卻無法由節(jié)點識別,則此節(jié)點必須丟棄分組并且向信源發(fā)送一個ICMP代碼字段為1(發(fā)現(xiàn)無法識別的下一個報頭類型)的ICMP參數(shù)出錯報文,同時ICMP指針宇段包含原來分組中無法識別的值的偏移量。如果一個節(jié)點發(fā)現(xiàn)在一個非IPv6基本報頭的報頭中nextheader宇段值為0,則節(jié)點將采取前述同樣的行為。
每一個擴展報頭都由八比特組組成,八比特組的個數(shù)是8的整數(shù)倍,以便保持隨后的報頭的八比特組與8對齊。目前IPv6定義的擴展報頭包栝:
跳到跳選項報頭(hop-by-hopoptionsheader)攜帶分組傳遞路徑上需要每一個節(jié)點檢査的信息。
路由報頭(routingheader)被IPv6源節(jié)點用來指定到達分組目的地途中必須要訪問的中間節(jié)點,實現(xiàn)類似IPv4中源路由和記錄路由選項的功能。
分段報頭(fragmentheader)用于IPv6源節(jié)點發(fā)送一個比通往目的地路徑上的MTU更大的分組時使用。IPv6的分組和重組是端到端的。
信宿選項報頭(destinationoptionsheader)攜帶僅僅需要分組發(fā)送的目的地檢査的信息。
認證報頭(authenticationheader)提供無連接完整性(connectionlessintegrity)和數(shù)據(jù)源認證(dataoriginauthentication)[RFC2402]。
封裝安全載荷報頭(encapsulatedsecuritypayloadheader)提供機密性(confidenti?ality),也可提供無連接完整性和數(shù)據(jù)源認證[RFC2406]。
返回目錄:
編輯推薦:
通信工程師備考資料免費領取
去領取