IPv6擴充套件頭部

2021-10-06 12:21:40 字數 3528 閱讀 7208

擴充套件頭部

在ipv6中,那些由ipv4選項提供的特殊功能,通過在ipv6頭部之後增加擴充套件頭部實現。路由、時間戳、分片和超大分組等功能都在ipv6擴充套件頭部中實現。基於這種設計,ipv6頭部固定為40位元組,不再處理ip分段的相關資訊,去掉了檢驗和字段等等,

擴充套件頭在ipv6中是可選的,乙個ipv6包中可以包含0個或多個擴充套件頭,擴充套件頭緊隨ipv6基本頭後面,

擴充套件頭部和更高層協議(例如tcp/udp) 頭部與ipv6頭部鏈結起來,形成級聯的頭部。如下圖:

擴充套件頭算作ipv6淨荷的一部分,計算在ipv6基本頭「有效淨荷長度」的範圍內,目前已經定義和使用的擴充套件頭有以下幾種:

逐跳選項頭(hop-by-hop options header)

目的選項頭(destination options header)

路由頭(routing header)

分片頭(fragment header)

認證頭(authentication header)

封裝安全有效載荷頭(esp)

注:1,除加密頭以外,其他擴充套件頭的長度必須是8位元組的整數倍,其中「擴充套件頭長度」欄位以8位元組為單位指明了該擴充套件頭的長度(不包括第一組8位元組),如果值是2,16位元組,實際計算要加1,即24位元組。因為會有0值。

2,ipv6基本頭以及擴充套件頭的「下乙個頭」字段指明緊跟其後的擴充套件頭的型別,

64bit
逐跳選項頭(hop-by-hop options header)逐跳頭用於傳遞那些在路徑中每個節點都需檢測的可選資訊,此擴充套件報頭須被**路徑所有節點處理。目前在路由告警(rsvp和mldv1)與jumbo幀處理中使用了逐跳選項頭。

64bit

| 下乙個頭 | 逐跳頭長度 | 選項【tlv1,tlv2,...tlvn,】 |

| 選項【tlvn+1,tlvn+2,...】 |

逐跳頭資訊部分可以包含乙個或多個tlv(型別—長度—值)選項,

tlv選項的格式如圖4所示。

8bit					8bit

| 選項型別 | 選項資料長度 | 選項資料 |

目的選項頭(destination options header)本擴充套件報頭型別值為60。:

目的選項頭的格式和逐跳頭完全相同,區別在於前者針對的是目的節點,而後者針對的是傳送路徑中的每個節點。

路由頭前,這是此選項頭被目的節點和路由頭中指定的結點處理;

上層頭前(任何的esp頭後),此時只能被目的結點處理。

移動ipv6中使用了目的選項頭,稱為家鄉位址選項。家鄉位址選項由目的選項頭攜帶,用以移動結點離開「家鄉」後通知接受節點此移動結點對應的家鄉位址。接受節點收到帶有家鄉位址選項的報文後,會把家鄉位址選項中的源位址(移動節點的家鄉位址)和報文中源位址(移動節點的轉交位址)交換,這樣上層協議始終認為是在和移動節點的家鄉位址通訊,實現了移動漫遊功能。

路由頭(routing header)

本擴充套件報頭型別值為43,用於源路由選項和移動ipv6。

為傳送方提供了一種ipv6資料報控制機制,以控制(至少部分控制)資料報通過網路的路徑。

注意的是包含了路由頭的ipv6包在路由過程中是需要不斷修改ipv6基本頭中的目的位址的,比如源節點s給目的節點d傳送乙個包,要求這個包經過中間節點l1,l2和l3.那麼在從s到l1的這段路徑中,ipv6頭中的目的位址應該是l1而不是d。

分片頭(fragment header)

本擴充套件報頭型別值為44,用於標識資料報的分段,在ipv4中就有對應的字段。當源節點傳送的報文超過傳輸鏈路mtu(源節點和目的節點之間傳輸路徑的mtu)時,需要對報文進行分段時使用。

分段頭的大小為固定的8位元組(64bit),因此,「擴充套件頭長度」這一字段(圖中「保留」部分)就沒有意義了,傳輸時初始化為零。

res:2bit,保留字段

m:標記位,m=1 表示還有分段,m=0表示該分段是最後乙個分段,

分段標識:32bit,同乙個包的所有分段必須具有相同的分段標示,每個分段單獨傳送,並且在接受者處進行重組。

ipv6的原包稱為「原始資料報」,可以分為兩部分:「不可分片部分」+「可分片部分」,不可分片部分包括ipv6基本頭部,以及那些必須由路由中的節點處理的擴充套件首部(逐跳和路由頭),不可分段部分必須被包含在包的每個分段中。

前者包括ipv6頭部和任何在到達目的地之前需由中間節點處理的擴充套件頭部(即包括路由頭部之前的所有頭部,如果有逐條選項擴充套件頭部,則是該頭部之前的所有頭部)。後者包括資料報的其餘部分(即目的位址選項頭部、上層頭部和有效載荷資料)。

ipv6的分段和重組:

當目的節點收到包的第n個分段(指最後乙個分段,即m=0)的時候,

計算原包的有效負載長度,

計算公式:包的有效負載長度=l+8*pn+dn,

其中l為不可分段的擴充套件頭長度,

pn為第n個分段的偏移量,dn為第n個分段的資料部分長度。

數值l通常在收到第乙個分段的時候就被計算出來了,計算公式:l=第乙個分段的有效載荷長度-第乙個分段包中分段頭後面的資料長度-8。

認證頭(authentication header)

目的是用來增加ip資料報的安全性,ah協議提供無連線的完整性,資料來源認證和抗重放保護服務。

下乙個頭域:是乙個8bit的域,他標識ah頭之後的下乙個載荷的型別,

有效長度:這個8位元的域指示ah長度(單位是4個位元組),減去「2」。

「零」認證演算法只凱能被用於除錯目的,它在ipv6為「2」。

演算法公式 長度=(有效長度+2)*2.

保留區域:16位的域為未來擴充使用而保留。

spi:是乙個任意的32位元的數值,它與目的ip位址和安全協議(ah)組合,唯一的標識本資料報的sa。

序列號:這個是32位無符號數域,包含乙個單調增加的計數器值。

驗證資料:這是乙個包含包的完整性檢驗值的可變長度域。該區域的長度必須是32位元的整數倍。

封裝安全有效載荷頭(esp)

本擴充套件頭型別值為50,用於ipsec,提供報文驗證、完整性檢查差和加密。

IPV6報頭和擴充套件報頭

ipv6頭部 版本 指明當前ip協議的版本。流量分類 相當於ipv4中的tos欄位,但考慮到tos近些年的發展,主要是用於做區分服務等級,所以將該字段的命名改的更貼近現在的用途。流標籤 這是ipv6中特有的乙個字段,這個字段設定的目的主要是為特定的業務流打上標籤。暫保留 有效負載長度 描述了ipv6...

IPv6技術 什麼是IPv6

ipv6技術 1 引言 ipv4位址即將耗盡,因此需要移轉至ipv6的討論,過去數年來一直不曾中斷。ipv4和ipv6在報文結構 報文字段意義以及位址配置諸多方面都有顯著的不同,這給從ipv4到ipv6過渡時期internet的運作帶來了極大的困難。當前接入網技術上幾乎所有的應用都是構建在ipv4上...

IPv6知識概述 IPv6位址

首選格式 x x x x x x x x x表示乙個4位十六進製制數 典型的例子如下所示 2000 0000 0000 0000 0001 2345 6789 abcd ipv6位址每段中的前導0是可以去掉的,但是至少要保證每一段有乙個數字。將不必要的前導0去掉後,上述位址可以表示為 2000 0 ...