這裏特意強調以下幾個字段
4位頭部長度字段,1位代表4個字節,4位最大爲15,表示最長爲60字節,也就是選項字段有40字節。
8位的服務類型字段,前3位通常被忽略,緊接着的4位TOS字段分別表示最小延時,最大吞吐量,最高可靠性和最小費用。最後一位保留字段置0。
3位標誌字段,第一位保留,第二位DF(Don’t Fragment)表示“禁止分片”,如果設置了這個位就表示不進行分片,假如在這種情況下,數據包長度超過MTU,則會丟棄該包併發送一個ICMP差錯報文。第三位MF(More Fragment)表示“更多分片”,表示還有其它分片。除了數據包的最後一個分片外,其它分片第三位都要置1.
8位協議字段區分是哪個上層協議傳遞下來的包,1是ICMP,6是TCP,17是UDP。
16位頭部校驗和字段利用CRC檢驗頭部在傳輸過程中是否損壞。32位的源IP地址和目的IP地址在整個數據報的傳輸中都不變,即使經過了多次轉發。
選項字段一般包括:記錄路由(記錄途徑的所有路由器的IP地址)、時間戳(記錄每次經過一個路由器時的轉發的時間)、鬆散源路由選擇(一個路由器IP地址表,途徑過程中應當包括其所有的路由器)、嚴格源路由選擇(一個路由器IP地址表,途徑過程只能是地址表中的路由器)。
2、路由轉發和選址主要的硬件設備是路由器,路由器當中有個路由表對接收到的IP數據包進行分類,主要和IP數據包的目標IP地址有關。路由機制如下:
(1)查找路由表中和數據包的目標IP地址完全匹配的主機IP地址。如果找到,就使用該路由項。如沒有找到,進行步驟2
(2)查找路由表中和數據包的目標IP地址的網絡ID匹配的網絡IP地址,如果找到,就使用該路由項。如沒有找到,進行步驟2
(3)選擇默認路由項,這通常意味着數據包的下一跳爲默認網關。3、當需要對一個數據包進行轉發時,應當執行如下操作
(1)檢查頭部的TTL值,爲0則丟棄
(2)查看數據頭部的嚴格源路由選項,假如該選項被設置,則檢測數據包的目標IP地址是否爲本機的某個IP地址,若不是,則發送一個ICMP源站選路失敗報文給發送端,並且有必要的的話,發送一個ICMP重定向報文,告訴源端合理的下一跳IP地址
(3)TTL值減1,處理IP頭部選項,假如有必要,對其進行分片再轉發。
4、IPV6與IPV4不同,其用十六進制字符串表示而不是點分十進制。例如:FE80:0000:0000:0000:1234:5678:0000:0012。每個部分2個字節。一般情況下,對於多個連續的0000可以省略,因此上述可變成:FE80::1234:5678:0000:0012。全0壓縮只能使用一次,否則不知道中間省略了多少個全0組。