IPv6數(shù)據(jù)包知識(shí)詳解
作為網(wǎng)絡(luò)的基礎(chǔ),協(xié)議類型現(xiàn)在在使用的有兩種,一個(gè)是IPv4,一個(gè)就是IPv6。為了能容納更多的信息,我們擴(kuò)展了網(wǎng)絡(luò)地址,也就是IPv6誕生的原因,所以,在這里我們來(lái)介紹一下它的結(jié)構(gòu)也就是IPv6數(shù)據(jù)包的技術(shù)知識(shí)。
技術(shù)信息概述
IPv6包由IPv6包頭(40字節(jié)固定長(zhǎng)度)、擴(kuò)展包頭和上層協(xié)議數(shù)據(jù)單元三部分組成。
IPv6包擴(kuò)展包頭中的分段包頭(下文詳述)中指名了IPv6包的分段情況。
其中不可分段部分包括:IPv6包頭、Hop-by-Hop選項(xiàng)包頭、目的地選項(xiàng)包頭(適用于中轉(zhuǎn)路由器)和路由包頭;可分段部分包括:認(rèn)證包頭、ESP協(xié)議包頭、目的地選項(xiàng)包頭(適用于最終目的地)和上層協(xié)議數(shù)據(jù)單元。但是需要注意的是,在IPv6中,只有源節(jié)點(diǎn)才能對(duì)負(fù)載進(jìn)行分段,并且IPv6超大包不能使用該項(xiàng)服務(wù)。
下文還將簡(jiǎn)述IPv6尋址、路由以及自動(dòng)配置的相關(guān)內(nèi)容。
IPv6數(shù)據(jù)包:包頭
IPv6包頭長(zhǎng)度固定為40字節(jié),去掉了IPv4中一切可選項(xiàng),只包括8個(gè)必要的字段,因此盡管IPv6地址長(zhǎng)度為IPv4的四倍,IPv6包頭長(zhǎng)度僅為IPv4包頭長(zhǎng)度的兩倍。
其中的各個(gè)字段分別為:Version(版本號(hào)):4位,IP協(xié)議版本號(hào),值=6。
TrafficeClass(通信類別):8位,指示IPv6數(shù)據(jù)流通信類別或優(yōu)先級(jí)。功能類似于IPv4的服務(wù)類型(TOS)字段。
FlowLabel(流標(biāo)記):20位,IPv6新增字段,標(biāo)記需要IPv6路由器特殊處理的數(shù)據(jù)流。該字段用于某些對(duì)連接的服務(wù)質(zhì)量有特殊要求的通信,諸如音頻或視頻等實(shí)時(shí)數(shù)據(jù)傳輸。在IPv6中,同一信源和信宿之間可以有多種不同的數(shù)據(jù)流,彼此之間以非“0”流標(biāo)記區(qū)分。如果不要求路由器做特殊處理,則該字段值置為“0”。
PayloadLength(負(fù)載長(zhǎng)度):16位負(fù)載長(zhǎng)度。負(fù)載長(zhǎng)度包括擴(kuò)展頭和上層PDU,16位最多可表示65535字節(jié)負(fù)載長(zhǎng)度。超過這一字節(jié)數(shù)的負(fù)載,該字段值置為“0”,使用擴(kuò)展頭逐個(gè)跳段(Hop-by-Hop)選項(xiàng)中的巨量負(fù)載(JumboPayload)選項(xiàng)。
NextHeader(下一包頭):8位,識(shí)別緊跟IPv6頭后的包頭類型,如擴(kuò)展頭(有的話)或某個(gè)傳輸層協(xié)議頭(諸如TCP,UDP或著ICMPIPv6)。
HopLimit(跳段數(shù)限制):8位,類似于IPv4的TTL(生命期)字段。與IPv4用時(shí)間來(lái)限定包的生命期不同,IPv6用包在路由器之間的轉(zhuǎn)發(fā)次數(shù)來(lái)限定包的生命期。包每經(jīng)過一次轉(zhuǎn)發(fā),該字段減1,減到0時(shí)就把這個(gè)包丟棄。
SourceAddress(源地址):128位,發(fā)送方主機(jī)地址。
DestinationAddress(目的地址):128位,在大多數(shù)情況下,目的地址即信宿地址。但如果存在路由擴(kuò)展頭的話,目的地址可能是發(fā)送方路由表中下一個(gè)路由器接口。
IPv6數(shù)據(jù)包:擴(kuò)展包頭
IPv6包頭設(shè)計(jì)中對(duì)原IPv4包頭所做的一項(xiàng)重要改進(jìn)就是將所有可選字段移出IPv6包頭,置于擴(kuò)展頭中。由于除Hop-by-Hop選項(xiàng)擴(kuò)展頭外,其他擴(kuò)展頭不受中轉(zhuǎn)路由器檢查或處理,這樣就能提高路由器處理包含選項(xiàng)的IPv6分組的性能。
通常,一個(gè)典型的IPv6包,沒有擴(kuò)展頭。僅當(dāng)需要路由器或目的節(jié)點(diǎn)做某些特殊處理時(shí),才由發(fā)送方添加一個(gè)或多個(gè)擴(kuò)展頭。與IPv4不同,IPv6擴(kuò)展頭長(zhǎng)度任意,不受40字節(jié)限制,以便于日后擴(kuò)充新增選項(xiàng),這一特征加上選項(xiàng)的處理方式使得IPv6選項(xiàng)能得以真正的利用。但是為了提高處理選項(xiàng)頭和傳輸層協(xié)議的性能,擴(kuò)展頭總是8字節(jié)長(zhǎng)度的整數(shù)倍。
目前,RFC2460中定義了以下6個(gè)IPv6擴(kuò)展頭:Hop-by-Hop(逐個(gè)跳段)選項(xiàng)包頭、目的地選項(xiàng)包頭、路由包頭、分段包頭、認(rèn)證包頭和ESP協(xié)議包頭:#p#
(一)Hop-by-Hop選項(xiàng)包頭包含分組傳送過程中,每個(gè)路由器都必須檢查和處理的特殊參數(shù)選項(xiàng)。其中的選項(xiàng)描述一個(gè)分組的某些特性或用于提供填充。這些選項(xiàng)有:
Pad1選項(xiàng)(選項(xiàng)類型為0),填充單字節(jié)。
PadN選項(xiàng)(選項(xiàng)類型為1),填充2個(gè)以上字節(jié)。
JumboPayload選項(xiàng)(選項(xiàng)類型為194),用于傳送超大分組。使用JumboPayload選項(xiàng),分組有效載荷長(zhǎng)度***可達(dá)4,294,967,295字節(jié)。負(fù)載長(zhǎng)度超過65,535字節(jié)的IPv6包稱為“超大包”。
路由器警告選項(xiàng)(選項(xiàng)類型為5),提醒路由器分組內(nèi)容需要做特殊處理。路由器警告選項(xiàng)用于組播收聽者發(fā)現(xiàn)和RSVP(資源預(yù)定)協(xié)議。
(二)目的地選項(xiàng)包頭指名需要被中間目的地或最終目的地檢查的信息。有兩種用法:
如果存在路由擴(kuò)展頭,則每一個(gè)中轉(zhuǎn)路由器都要處理這些選項(xiàng)。
如果沒有路由擴(kuò)展頭,則只有最終目的節(jié)點(diǎn)需要處理這些選項(xiàng)。
(三)路由包頭
類似于IPv4的松散源路由。IPv6的源節(jié)點(diǎn)可以利用路由擴(kuò)展包頭指定一個(gè)松散源路由,即分組從信源到信宿需要經(jīng)過的中轉(zhuǎn)路由器列表。
(四)分段包頭
提供分段和重裝服務(wù)。當(dāng)分組大于鏈路***傳輸單元(MTU)時(shí),源節(jié)點(diǎn)負(fù)責(zé)對(duì)分組進(jìn)行分段,并在分段擴(kuò)展包頭中提供重裝信息。
(五)認(rèn)證包頭
提供數(shù)據(jù)源認(rèn)證、數(shù)據(jù)完整性檢查和反重播保護(hù)。認(rèn)證包頭不提供數(shù)據(jù)加密服務(wù),需要加密服務(wù)的數(shù)據(jù)包,可以結(jié)合使用ESP協(xié)議。
(六)ESP協(xié)議包頭
提供加密服務(wù)。
IPv6數(shù)據(jù)包:上層協(xié)議數(shù)據(jù)單元
上層數(shù)據(jù)單元即PDU,全稱為ProtocolDataUnit。
PDU由傳輸頭及其負(fù)載(如ICMP IPv6消息、或UDP消息等)組成。而IPv6包有效負(fù)載則包括IPv6擴(kuò)展頭和PDU,通常所能允許的***字節(jié)數(shù)為65535字節(jié),大于該字節(jié)數(shù)的負(fù)載可通過使用擴(kuò)展頭中的Jumbo Payload(見上文)選項(xiàng)進(jìn)行發(fā)送。