回覆列表
  • 1 # 科學史話

    這裡對IPv4和IPv6頭部的一些常用的重要欄位進行整理總結,沒做出解釋的是一些不常用到的欄位,有興趣可以自行查閱。

    MAC header

    IPv4 header

    Data :::

    1. IPv4 header:

    00

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    Version

    IHL

    Differentiated Services

    Total length

    Identification

    Flags

    Fragment offset

    TTL

    Protocol

    Header checksum

    Source IP address

    Destination IP address

    Options and padding :::

    · Version:IP版本號4 ;

    · IHL: IP 頭部長度,以位元組表示;

    · Total Length:整個IP報長度,包含IP頭部和資料,以位元組表示 ;結合IP頭部長度便可確定IP報資料部分的開始和結束;

    · TTL:IP資料包生存週期,通常每經過一次路由該值就會被減一;

    · Protocol:表示傳輸層是哪種協議,該值有IANA統一規定

    Source/Destination IP address: 訊息的源/目的IP地址,這兩地址不會隨著訊息的路由而發生變化。

    和IPv4資料報分片相關的Field:

    首先接受為何要分片,乙太網規定網路間傳輸的MTU為1500個位元組,超過1500個位元組的IP報就需要被分片;此外不同的鏈路層(Token Ring,FDDI…)規定的MTU值是不同的,在一個IP報從源地址送到目的地的過程中可能需要經過各種不同的網路,所以即使在以太網裡面不分片,在其他網路裡面可能被分片。

    · Identification: 源主機每發出一個數據包就會為該資料包分配一個唯一的Identification值,通常是依次遞增的方式分配;加入IP報在某個路由上需要分片,則Identification會被複制到每一個分片的IP頭中。

    · Flags:一共有三個bit,第一個bit目前不用,始終為0;第二個bit為0表示允許分片;為1表示不允許分片;第三個bit為0表示這是最後一個IP報分片,為1表示後面還有更多的IP報分片;

    · Fragement Offset:表示該分片距離原始IP資料包的偏移位元組數;

    · Total Length:IP報被分片後,該值需要被更新為新分片的總長度;

    MAC header

    IPv6 header

    Data :::

    2. IPv6 header:

    00

    01

    02

    03

    04

    05

    06

    07

    08

    09

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    Version

    Traffic Class

    Flow Label

    Payload Length

    Next Header

    Hop Limit

    Source address :::

    Destination address :::

    Data :::

    · Version:IP版本號6 ;

    · Payload Length:由於IPv6的基本頭部的長度是固定的,所以只需要記錄Payload的長度即可定位一個IP資料包的結束,這裡的Payload包含IPv6的擴充套件頭部。

    · Hop Limit:和IPv4中的TTL作用一致;

    · Source/Destination IP address: 訊息的源/目的IP地址,格式變為IPv6的IP地址格式;這兩地址不會隨著訊息的路由而發生變化。

    · Next Header:相當於IPv4中的protocol域,標識上層協議(協議的標識值與IPv4相容);此外的另一個作用是標識IPv6的擴充套件頭部,目前IPv6定義了7中擴充套件頭部,每一中擴充套件頭部都有一個數值來標識,比如基本頭部中的Next Header中的值是44,表示基本頭部後面緊跟一個分段擴充套件頭部;

    0

    逐跳頭

    43

    選路頭( R H )

    44

    分段頭( F H)

    51

    身份驗證頭( A H )

    52

    封裝安全性淨荷( E S P )

    59

    沒有下一個頭

    60

    目的地選項頭

    擴充套件頭部的基本結構如下:

    擴充套件頭部的第一位元組也是Next Header,作用同基本頭部中的Next Header,IPv6除了基本頭部之外可以帶多個擴充套件頭部,如果帶有擴充套件頭部則基本頭部中的Next Header指示第一個擴充套件頭部型別,否則指示傳輸層的協議型別;如果帶有多個擴充套件頭部,則擴充套件頭部中的Next Header依次指示下一個擴充套件頭部型別,最後一個擴充套件頭部的Next Header指示傳輸層的協議型別;如下圖所示:

    擴充套件頭部的第二個位元組是該擴充套件頭部的長度,依此可找到該擴充套件頭部的結束位置;某些型別的擴充套件頭部(比如,分段擴充套件頭部)長度是固定的,則該位元組作為保留位元組不用。

    IPv6的分片:

    IPv6對IPv4的分片進行了以下主要改進:

    1) IPv6只允許源節點對資料包進行分片,不允許中間路由分片,這樣一來一個數據包如果需要分片則只進行一次分片即可;源主機為了判斷是否需要分片,需要獲取路徑MTU;

    2) IPv4的頭部有些欄位只和分片有關係,也就是說,在無需分片的時候,這些欄位是沒有用的,IPv6對此進行了改進,只有在需要分片的時候,才加一個“分段擴充套件頭部”,把和分片相關的資訊放到這個擴充套件頭部中,從而提高了傳輸效率。

    分段擴充套件頭部結構:

    · 分段偏移值:與 I P v 4的分段偏移值欄位很相似。此欄位共 1 3位,以8位元組為單位,表示此包(分段)中資料的第一個位元組與原來整個包中可分段部分的資料的第一個位元組之間的位置關係。換言之,若該值為1 7 5,表示分段中的資料從原包的第1 4 0 0位元組開始。

    · M:此位表示是否還有後續欄位。若值為 1,表示後面還有後續欄位;若值為 0則表示這是最後一個分段。

    · 標識:該欄位與I P v 4的標識欄位類似,但是為3 2位,而在I P v 4中為1 6位。源節點為每個被分段的I P v 6包都分配一個3 2位識別符號,用來唯一標識最近 (在包的生存期內)從源地址傳送到目的地址的包。

    注意:整個I P v 6包中只有部分可以被分段,可分段的部分包括:淨荷和只能在到達最終目的地時才處理的擴充套件頭。對於 I P v 6頭和在發往目的節點的途中必須由路由器處理的擴充套件頭,如選路頭或逐跳選項頭,則不允許進行分段。

  • 中秋節和大豐收的關聯?
  • 如果老公每月給你五萬,讓你不要管他的事不見面不離婚你願意嗎?