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