++实现 ipv6数据报_IPV6报文格式和IPV4有什么区别?
前言
RFC2460定義了IPv6數(shù)據(jù)報(bào)格式。
總體結(jié)構(gòu)上,IPv6數(shù)據(jù)報(bào)格式與IPv4數(shù)據(jù)報(bào)格式是一樣的,也是由IP報(bào)頭和數(shù)據(jù)(在IPv6中稱為有效載荷)這兩個(gè)部分組成的。
但在IPv6數(shù)據(jù)報(bào)數(shù)據(jù)部分還可以包括0個(gè)或者多個(gè)IPv6擴(kuò)展報(bào)頭(Extension header)。
正文
1IPV6報(bào)文格式如下圖所示。IP報(bào)頭部分固定為40字節(jié)長度,而有效載荷部分最長不得超過65535字節(jié)。IPv6和IPv4之間的最大差別在于:IP地址的長度從32位到128位。
通過裁剪IPv4報(bào)頭中的某些字段,或把一些字段移入到擴(kuò)展報(bào)頭中,IPv6基本報(bào)頭的總長度大大減小了。
IPv6使用固定長度的基本報(bào)頭,從而簡化了轉(zhuǎn)發(fā)設(shè)備對IPv6報(bào)文的處理,提高了轉(zhuǎn)發(fā)效率。
盡管IPv6地址長度是IPv4地址長度的4倍,但I(xiàn)Pv6基本報(bào)頭的長度只有40字節(jié),為固定的IPv4報(bào)文頭長度(不包括選項(xiàng)字段)的2倍。
IPv6報(bào)頭格式如下圖所示:
2IPV6報(bào)文各字段作用版本(Version)
版本字段用來表示IP數(shù)據(jù)報(bào)使用的是IPv6協(xié)議封裝,占4位,對應(yīng)值為6(0110)。
通信分類(Traffic Class)
通信分類字段用來標(biāo)識對應(yīng)IPv6的通信流類別,或者說是優(yōu)先級別,占8位,類似于IPv4中的ToS(服務(wù)類型)字段。
流標(biāo)簽(Flow Label)
流標(biāo)簽字段時(shí)IPv6數(shù)據(jù)報(bào)中新增的一個(gè)字段,占20位,可用來標(biāo)記報(bào)文的數(shù)據(jù)流類型,以便在網(wǎng)絡(luò)層區(qū)分不同的報(bào)文。
流標(biāo)簽字段有源節(jié)點(diǎn)分配,通過流標(biāo)簽、源地址、目的地址三元組方式就可以唯一標(biāo)識一條通信流,而不用像IPv4那樣需要使用五元組方式(源地址、目的地址、源端口、目的端口和傳輸層協(xié)議號)。
這樣發(fā)動的最大好處有兩點(diǎn):
一是流標(biāo)簽可以和任意的關(guān)聯(lián),需要標(biāo)識不同類型的流(可以是非五元組)時(shí),無需對流標(biāo)簽做改動;
二是流標(biāo)簽在IPv6基本頭中,使用IPSec時(shí)此域?qū)D(zhuǎn)發(fā)路由器可見,因此轉(zhuǎn)發(fā)路由器可以在使用IPv6報(bào)文IPSec的情況下仍然可以通過三元組(流標(biāo)簽、源地址、目的地址)針對特定的流進(jìn)行QoS(質(zhì)量服務(wù))處理。
有效載荷長度(PayLoad Length)
有效載荷長度字段是以字節(jié)為單位的標(biāo)識IPv6數(shù)據(jù)報(bào)中有效載荷部分(包括所有擴(kuò)展報(bào)頭部分)的總長度,也就是除了IPv6的基本報(bào)頭以外的其他部分的總長度,占20位。
下一個(gè)頭部(Next Header)
下一個(gè)頭部字段用來標(biāo)識當(dāng)前報(bào)頭(或者擴(kuò)展報(bào)頭)的下一個(gè)頭部類型,占8位。
每種擴(kuò)展報(bào)頭都有其對應(yīng)的值。下一個(gè)頭部字段內(nèi)定義的擴(kuò)展報(bào)頭類型與IPv4中的協(xié)議字段值類似,但在IPv6數(shù)據(jù)報(bào)中,緊接著IPv6報(bào)頭的可能不是上層協(xié)議頭部(當(dāng)沒有擴(kuò)展報(bào)頭或者為最后一個(gè)擴(kuò)展報(bào)頭時(shí)才是上層協(xié)議頭),而是IPv6擴(kuò)展報(bào)頭。
這一機(jī)制下處理擴(kuò)展報(bào)頭更搞笑,因?yàn)闃?biāo)識了數(shù)據(jù)報(bào)中對應(yīng)的上層協(xié)議或者擴(kuò)展報(bào)頭類型,轉(zhuǎn)發(fā)路由器只需處理必須處理的擴(kuò)展報(bào)頭,提高了轉(zhuǎn)發(fā)效率。
跳數(shù)限制(Hop Limit)
跳數(shù)限制于IPv4報(bào)文中的TTL字段類似,指定了報(bào)文可以有效轉(zhuǎn)發(fā)的次數(shù),占8位。報(bào)文每經(jīng)過一個(gè)路由器結(jié)點(diǎn),跳數(shù)值就減1,當(dāng)此字段值減到0時(shí),則直接丟棄該報(bào)文。
源地址(Source IP Address)
源IP地址字段標(biāo)識了發(fā)送該IPv6報(bào)文源節(jié)點(diǎn)的IPv6地址,占128位。
目的IP地址(Destination IP Address)
目的IP地址字段標(biāo)識了IPv6報(bào)文的接受節(jié)點(diǎn)的IPv6地址,占128位。
3IPv6擴(kuò)展報(bào)頭在各字段介紹中我們講到了,IPv6報(bào)文中可以攜帶可選的IPv6擴(kuò)展報(bào)頭IPv6擴(kuò)展報(bào)頭是跟在IPv6基本報(bào)頭后面的可選報(bào)頭。由于在IPv4的報(bào)頭中包含了幾乎所有的可選項(xiàng),因此每個(gè)中間路由器都必須檢查這些選項(xiàng)是否存在。
在IPv6中,這些相關(guān)選項(xiàng)被統(tǒng)一移到了擴(kuò)展報(bào)頭中,這樣中間路由器不必處理每一個(gè)可能出現(xiàn)的選項(xiàng)(僅有“逐跳選項(xiàng)”報(bào)頭是必須要處理的),提高了處理器處理數(shù)據(jù)報(bào)文的速度,也提高了其轉(zhuǎn)發(fā)的性能。
IPv6擴(kuò)展報(bào)頭附加在IPv6報(bào)頭目的IP地址字段后面,可以有0個(gè),或者多個(gè)擴(kuò)展報(bào)頭。
IPv6擴(kuò)展報(bào)頭分類:
逐跳選項(xiàng)頭(Hop-by-hop Options Header)
本擴(kuò)展報(bào)頭類型值為0(在IPv6報(bào)頭下一個(gè)頭部字段中定義,下同)。
此擴(kuò)展報(bào)頭須被轉(zhuǎn)發(fā)路徑所有節(jié)點(diǎn)處理。
目前在路由告警(RSVP和MLDv1)與Jumbo幀處理中使用了逐跳選項(xiàng)頭,因?yàn)槁酚筛婢枰ㄖ睫D(zhuǎn)發(fā)路徑中所有結(jié)點(diǎn),而Jumbo幀是長度超過65535字節(jié)的報(bào)文,傳輸這種報(bào)文需要轉(zhuǎn)發(fā)路徑中所有結(jié)點(diǎn)都能正常處理。
目的選項(xiàng)頭(Destination Options Header)
本擴(kuò)展報(bào)頭類型值為60。只可能出現(xiàn)在兩個(gè)位置:
1. 路由頭前,這是此選項(xiàng)頭被目的節(jié)點(diǎn)和路由頭中指定的結(jié)點(diǎn)處理;
2. 上層頭前(任何的ESP頭后),此時(shí)只能被目的結(jié)點(diǎn)處理。
移動IPv6中使用了目的選項(xiàng)頭,稱為家鄉(xiāng)地址選項(xiàng)。
家鄉(xiāng)地址選項(xiàng)由目的選項(xiàng)頭攜帶,用以移動結(jié)點(diǎn)離開“家鄉(xiāng)”后通知接受節(jié)點(diǎn)此移動結(jié)點(diǎn)對應(yīng)的家鄉(xiāng)地址。
接受節(jié)點(diǎn)收到帶有家鄉(xiāng)地址選項(xiàng)的報(bào)文后,會把家鄉(xiāng)地址選項(xiàng)中的源地址(移動節(jié)點(diǎn)的家鄉(xiāng)地址)和報(bào)文中源地址(移動節(jié)點(diǎn)的轉(zhuǎn)交地址)交換,這樣上層協(xié)議始終認(rèn)為是在和移動節(jié)點(diǎn)的家鄉(xiāng)地址通信,實(shí)現(xiàn)了移動漫游功能。
路由頭(Routing Header)
本擴(kuò)展報(bào)頭類型值為43,用于源路由選項(xiàng)和移動IPv6。
分段頭
本擴(kuò)展報(bào)頭類型值為44,用于標(biāo)識數(shù)據(jù)報(bào)的分段,在IPv4中就有對應(yīng)的字段。當(dāng)源節(jié)點(diǎn)發(fā)送的報(bào)文超過傳輸鏈路MTU(源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間傳輸路徑的MTU)時(shí),需要對報(bào)文進(jìn)行分段時(shí)使用。
認(rèn)證頭
本擴(kuò)展報(bào)頭類型值為51,用于IPSec,提供報(bào)文驗(yàn)證,完整性檢查。
封裝安全有效載荷頭
本擴(kuò)展頭類型值為50,用于IPSec,提供報(bào)文驗(yàn)證、完整性檢查差和加密。
上層頭
這是用來標(biāo)識數(shù)據(jù)報(bào)中上層協(xié)議類型,如TCP、UDP、ICMP等。
注意:
目的選項(xiàng)頭最多出現(xiàn)兩次,一次在路由頭前,一次在上層協(xié)議頭前,其他選項(xiàng)頭最多只能出現(xiàn)一次。
IPv6節(jié)點(diǎn)必須能夠處理選項(xiàng)頭(逐跳選項(xiàng)頭除外,它固定只能緊隨基本報(bào)頭之后)在任意位置出現(xiàn),以保證互通性。
總結(jié)
1、對比IPv4數(shù)據(jù)報(bào)頭部格式可以看出,IPv6去除了IPv4報(bào)頭中的頭部長度、標(biāo)識、標(biāo)志、段偏移、校驗(yàn)和、選項(xiàng)、填充這么多字段,卻只增加了流標(biāo)簽這一個(gè)字段,因此IPv6報(bào)頭處理和IPv4報(bào)頭處理相比大大簡化,提高了處理效率。
2、IPv6為了更好地支持各種選項(xiàng)處理,提出了擴(kuò)展頭的概念,新增選項(xiàng)時(shí)不必修改現(xiàn)有的結(jié)構(gòu)就能做到,理論上可以無限擴(kuò)展,體現(xiàn)了優(yōu)異的靈活性。
以上來源網(wǎng)絡(luò),如有侵權(quán),聯(lián)系刪除!
總結(jié)
以上是生活随笔為你收集整理的++实现 ipv6数据报_IPV6报文格式和IPV4有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django2.1支持的mysql版本_
- 下一篇: android控制手机强制手机横竖方向,