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