2、IP協議

一、 IP服務特點:

  1. 無狀態:通信雙方不同步傳輸數據的狀態信息,無法處理亂序和重複的IP數據報;IP數據報提供了標識字段以唯一標識IP數據報,用來處理IP分片和重組,不指示接受順序。
  2. 無連接:通信雙方不維持對方信息,上層協議每次發送數據,需指明對方IP地址。
  3. 不可靠:不保證IP數據報準確到達接收端。發送端檢測到發送失敗,通知上層協議,不試圖重傳。

二、 IPv4頭部結構:通常爲20字節。

這裏寫圖片描述

  1. 4位版本號:指定IP協議版本。IPv4->4;其他擴展協議;
  2. 4位頭部長度:表示該IP頭部有多少個32bit字(4字節)。IP頭部最長60字節。
  3. 8位服務類型:3位優先權字段(忽略)+4位TOS字段+1位保留。4位TOS:最小延時,最大吞吐量,最高可靠性和最小費用。
  4. 16位總長度:整個IP數據報的長度。字節單位。最大65535(2^16-1)字節,長度超過MTU分片。
  5. 16位標識:唯一標識主機發送的數據報。初始值系統隨機,每發送一個數據報+1;在分片時被複制,同一個數據報的所有分片具有相同的標識值。
  6. 3位標誌字段:1保留+1禁止分片+1更多分片
  7. 13位分片偏移:分片相對原始IP數據報開始處的偏移值。
  8. 8位生存時間TTL:數據報到達目標地址之前的路由跳數。發送端設置,每經過一個路由-1,爲0時,路由丟棄數據報,向源端發送ICMP差錯報文。
  9. 8位協議字段:區分上層協議。ICMP 1;TCP 6;UDP 17
  10. 16位頭部校驗:發送端填充,接收端利用CRC校驗
  11. 32位源端IP地址和目的端IP地址:整個傳遞過程不變。
  12. 可變長信息:最多40字節
    · 記錄路由:途徑路由器將自己的IP地址填入IP頭部選項,跟蹤數據報傳遞路徑。
    · 時間戳:路由器將數據報轉發時間填入IP頭部選項,測量數據報傳輸時間。
    · 鬆散路由選擇:指定路由器IP地址列表,數據報必須經過其中所有。
    · 嚴格路由選擇:數據報只能經過指定路由器。
    這裏寫圖片描述

三、 IP分片:

IP數據報超過幀MTU,分片;最終在接受端,分片被IP模塊重新組裝。
IP頭部用於分片和重組的信息:數據報標識,標誌和片偏移。每個分片具有自己的IP頭部,他們具有相同的標識值,片偏移不同。最後一個分片外,其他設置MF標誌。每個分片的IP頭部的總長度字段設置爲該分片長度。
以太網幀MTU 1500字節,IP數據報攜帶的數據部分最長爲1480字節。
這裏寫圖片描述

四、 IP路由:

數據報的路由,決定發送數據報到目標機器的路徑。

這裏寫圖片描述

  1. 對數據報的頭部做CRC校驗,確認無誤分析頭部信息。
  2. 頭部設置源站選路選項(鬆散路由or嚴格路由),IP模塊調用數據報轉發子模塊處理;
  3. 轉發子模塊檢測是否允許轉發,yes->交給IP數據報輸出子模塊;no->丟棄。
  4. 路由表根據數據報的目標IP地址分類,同一類型的法網相同的下一跳路由。

IP輸出隊列:存放所有等待發送的IP數據報;需要轉發的IP數據報,封裝本機上層數據。
路由表更新:通過路由協議或route命令調整路由表->IP路由策略。
路由機制:route命令 或者 netstat命令

IP路由機制:
 路由表中查找與目的IP地址完全匹配的;
 路由表中查找具有相同網絡ID的網絡IP地址;
 默認路由。通常意味着下一跳路由是網關。
這裏寫圖片描述

五、 IP轉發:

修改/proc/sys/net/ipv4/ip_forward內核參數,實現主機數據報轉發。

數據報轉發操作:
1. 檢查TTL值。若爲0,丟棄;
2. 查看是否有嚴格路由選項。若設置,檢測目標IP地址是否是本機的某個IP地址,不是->發送ICMP源站選錄失敗報文給發送端。
3. 有必要,發送源站ICMP重定向報文,告訴合理的下一跳地址;
4. TTL值-1;
5. 處理IP頭部選項
6. 有必要,執行IP分片操作。

六、 重定向:

用於更新路由表。
ICMP重定向報文:
這裏寫圖片描述
固定字段:
8位類型、8位代碼、8位校驗和;
ICMP重定向報文類型->5;

提供接受方兩個信息:
 引起重定向的IP數據報的源端IP地址;
 應該使用的路由器的IP地址。

根據信息斷定引起重定向的IP數據報應該使用的路由器,並更新路由表。
一般而言:主機只能接受重定向報文,路由器只能發送重定向報文。

七、 IPv6頭部結構:

40固定頭部+可變長的擴展頭部

這裏寫圖片描述

固定頭部:
32位表示IPv4地址->點分十進制;
128位表示IPv6地址->十六進制字符串表示;”:”分割8組,每組2字節。
零壓縮法:壓縮連續全零的組,只能使用一次。
擴展頭部:每個擴展頭部類型由前一個頭部中的下一個報文頭部字段指出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章