IPV4報文格式詳解

ipv4報文格式

IPV4報文格式詳解
 版本(version):4比特(bit),4(二進制0100)表明ipv4,6(二進制0110)表明ipv6;
 報文頭長度(IHL,IP Header Length):4比特(bit),該值以4字節(Byte)爲一個單位,所以最長能夠表示15*4=60字節(Byte);最小爲20(不帶Option字段),最長爲60;
 服務類型(TOS,Type of Service):8比特(bit),用於實施QOS,RFC 791中TOS 的IP Precedence分爲8個優先級,值越大優先級越高。RFC2474中對TOS從新定義,前6位定義成DSCP,能夠標識64中等級,後兩位保留;
 報文總長度(Total Length):長度16比特(bit),以字節(Byte)爲單位,包含報文頭和數據,全部IP報文最長65535字節(Byte),2的16次方等於65536;
 標識符(Identification):16比特(bit),主機每發一個報文,加1,分片重組時會用到該字段,與Flags和Fragment Offset聯合使用進行分段操做,一個大包分段爲多個小包時標記爲相同的值;
 標記(Flags):3比特(bit),第一位不使用,第二位是DF(Don’t Fragment)位,表示是否分片,0表示能夠分片,1表示不能分片;第二位是MF(More Fragment)位,表示該報文是否爲最後一片,0表示是,1表示否即還有後續報文;
片偏移(Fragment Offset):13比特(bit),表示分片在原分組中的相對位置,以8個字節爲偏移單位;
生存時間(TTL,Time to Live):8比特(bit),報文發送設備賦值,報文沒通過一臺路設備,該設備會對TTL值減1,當TTL值爲0時丟棄報文,用於防環;
協議(Protocol):8比特(bit),上層所用的協議;
頭部校驗(Header Checksum):16比特(bit),只檢驗數據包的首部,不檢驗數據部分。這裏不採用CRC檢驗碼,而採用簡單的計算方法;由於路由器須要改變包頭裏的TTL值,所以路由器須要爲每一個包從新計算頭部校驗值;
源地址(Source Address):32比特(bit), 源IP地址;
目的地址(Destination Address):32比特(bit), 目標IP地址;
可選項(Options):可變長度;主要用於測試,具體見下方
填充(Padding):填充字段,全0,因IP報文頭長度單位爲32bit(4Byte,),因此報文長度必須爲32bit的整數倍。ide

擴展--服務類型(TOS,Type of Service):

COS、TOS和DSCP:
COS是二層報文優先級IEEE802.1p,TOS和DSCP是三層IP報文頭的優先級
COS是字VLAN幀裏的802.1Q tag裏的一個PRI字段(3bit),表明8個優先級0-7
IPV4報文格式詳解
報文分爲三種狀況:帶優先級和VLAN ID的標籤報文,其優先級值是自身帶的值;只帶優先級的標籤報文,此時VLAN ID爲0,其優先級值是自身帶的值;未帶標籤的報文,通常默認的優先級值爲0,也能夠進行更改指定新的優先級。
TOS和DSCP是IP報文頭的優先級,不一樣的RFC,具體參考QOS;
擴展--可選項(Options)
 鬆散源路由(Loose source Routing):給出一連串路由器接口IP地址,IP包必須沿着這些IP傳送,但容許相繼的兩個IP之間通過多跳;
IPV4報文格式詳解測試

  • Type: 類型。佔1字節,此處設爲131。
  • length: 佔1字節,記錄整個選項的長度。
  • pointer: 指針項,佔1個字節,指向下一個被處理的源站地址,最小值爲4。
  • route data: 路由數據。
     嚴格源路由(Strict Source Routing):給出一連串路由器接口IP地址,IP包必須沿着這些IP傳送,若是下一跳不在IP列表則表示發生錯誤;
    IPV4報文格式詳解
  • Type=137(10001001):佔1字節,code 的值此處設爲137。
  • length:佔1字節,記錄整個選項的長度。
  • pointer:指針項,佔1個字節,指向下一個被處理的源站地址,最小值爲4。
     路有記錄(Record Route):當IP包離開每一個路由器時,記錄路由器的出接口IP地址;
    IPV4報文格式詳解
  • Type: 指明IP選項的類型。此處值爲7。
  • length: 選項的總字節長度。不包含填充的長度,IP填滿時最大爲39;。
  • pointer: 它是一個基於1的指針,指向存放下一個IP地址的位置。它的最小值爲4,指向存放第一個IP地址的位置。隨着每一個IP地址存入清單,ptr的值分別爲8,12,16,最大到36,當記錄下9個IP地址後,ptr的值爲40,表示清單已滿。
  • route data: 路由數據。
     時間戳(Timestamps):當IP包離開每一個路由器時紀錄時間。
    IPV4報文格式詳解
  • Type (01000100):時間戳選項,代碼爲68;
  • length:選項的總長度(通常爲36或40);
  • ponter:指向下一個可用空間的指針(5,9,13等);
  • oflw:表示溢出字段;
  • flg:表示標誌字段: 0:只記錄時間戳。 1:每臺路由器都記錄它的IP地址和時間戳。在選項列表中只有存放4對地址和時間戳的空間。 3:發送端對選項列表進行初始化,存放了4個IP地址和4個取值爲0的時間戳值。只有當列表中的下一個IP地址與當前路由器地址相匹配時,才記錄它的時間戳。
相關文章
相關標籤/搜索