一 IPV4數據包格式
1,版本(Version)
由4比特構成,表示標識IP首部的版本號.IPV4的版本號即為4,因此在這個字段上的值也是"4"
2,首部長度 (IHL:Internet Header Length)
由4比特構成,表明IP首部的大小,單位為4字節(32比特).對於沒有可選項的IP包,首部長度則設置為"5".也就是說,當沒有可選項時,IP首部的長度為20字節(4*5=20)
3 服務類型(Type Of Service)
優先級標志位和服務類型標志位,由8比特構成,被路由器用來進行流量的優先排序,不過已被划分為DSCP和ECN
4 DSCP段與ECN段
DSCP(Differential Services Codepoint,差分服務代碼點)是TOS(Type Of Service)的一部分
ECN(Explict Congestion Notification,顯式擁塞通告)用來報告網絡擁堵情況
5 總長度(Total Length)
表示IP首部與數據部分合起來的總字節數.該字段長16比特.因此IP包的最大長度為65535(=2的16次方)字節
6 標識(ID:Identification)
由16比特構成,用於分片重組.同一個分片的標識值相同,不同分片的標識值不同.通常,每發送一個IP包,它的值也逐漸遞增.此外,即使ID相同,如果目標地址,原地址或協議不同的話,也會被認為是不同的分片.
7 標志(Flags)
由3比特構成,表示包被分片的相關信息
8 片偏移 (FO:Fragment Offset)
由13比特構成,用來標識被分片的每一個分段相對於原始數據的位置.第一個分片對應的值為0.由於FO域占13位,因此最多可以表示8192(=2的13次方)個相對位置.單位為8字節,因此最大可表示原始數據8*8192=65535字節的位置
9 生存時間(TTL:Time To Live)
由8比特構成,它最初的意思是以秒為單位記錄當前包在網絡上應該生存的期限.然而在實際中它是指可以中轉多少個路由器的意思.沒經過一個路由器,TTL會減少1,直到變成0則丟棄該包
10 協議(Protocol)
由8比特構成,表示IP首部的下一個首部隸屬於哪個協議.目前常使用的協議如下表所示:
11 首部校驗和 (Header Checksum)
由16比特(2個字節)構成,也叫IP首部校驗和.該字段只校驗數據報的首部,不校驗數據部分.它主要用來確保IP數據報不被破壞
12 源地址(Source Address)
由32比特(4個字節)構成,表示發送端IP地址
13 目標地址(Destination Address)
由32比特(4個字節)構成,表示接收端IP地址
14 選項 (Options):保留作額外的IP選項.它包含着源站選路和時間戳的一些選項
二 IPV6 首部格式
IPv6的IP數據首部格式,如下圖所示:
版本 (Version)
IPV6其版本號為6,因此在這個字段上的值為"6"
通信量類 (Traffic Class)
相當於IPv4的TOS(Type Of Service)字段,也由8比特構成.
流標號(Flow Label)
由20比特構成,准備用於服務質量(QoS:Quality Of Service)控制
有效載荷長度 (Payload Length)
有效載荷是指包的數據部分.IPV4的TL(Total Length)是指包括首部在內的所有長度.然而IPv6中的這個Playload Length不包括首部,只表示數據部分的長度
下一個首部(Next Header)
相當於IPv4中的協議字段
跳變限制(Hop Limit)
源地址 (Source)
目的地址 (Destination)
IPV6的地址
IPv4地址被局限在32位,這意味着該長度只能提供億級的地址空間,IPv6地址有128位,可以提供2的128次方的地址空間
IPv6的地址分為網絡部分和主機部分,分別稱為網絡前綴(network prefix)和接口標識符(interface identifier).這兩個部分在地址上的分布取決於IPv6的通信類型.IPv6通信有3種類別:單播(unicast),任播(anycast)和多播(multicast).