【網絡】TCP/IP協議網絡層 - 路由機制詳解(含路由表詳解、重定向機制)

一、IP路由

1、路由機制

1、路由表:在Linux環境下,我們可以通過 route 來查看路由表

  • Destination:表示網絡或主機
  • Gateway:網關地址;
  • Genmask:網絡掩碼;
  • Flags:路由項標誌,常見的有5種:U(活動的)、H(目標是一臺主機)、G(目標是網關)、D(由重定向生成的)、M(被重定向修改過);
  • Metric:路由距離,即到達指定網絡所需的中轉數;
  • Ref:路由項被引用的次數(Linux中未被使用);
  • Use:該路由項被使用的次數;
  • Iface:該路由項對應的輸出網卡接口;

其中路由表中的第一項是 default ,即所謂的默認路由項,該項包含一個 G 標誌,說明路由的下一項就是網關 。

說明:由於歷史的原因,許多有關TCP/IP的文獻曾經把網絡層使用的路由器稱爲網關,在今天很多局域網採用都是路由來接入網絡,因此通常指的網關就是路由器的IP!

2、路由表的工作流程

    1、查找路由表中和數據報的目標IP地址完全匹配的主機IP地址。如果找到,就使用該路由項,如果沒有找到就轉到步驟2;

    2、查找路由表中和數據報的目標IP地址具有相同網路ID的網絡IP地址,如果找到,就使用,沒有就轉到步驟3;

    3、選擇默認路由項,這通常意味着數據報的下一跳路由是網關。

3、路由表的更新

路由表必須能夠更新,以反映網絡連接的變化,這樣IP模塊才能準確、高效的轉發數據報。

可以通過 route 命令或者其它工具來手動修改路由表,是靜態的路由更新方式。對於大型的路由器,他們通常通過BGP(編輯網關協議)、RIP(路由信息協議)、OSPF等協議來發現路徑,並更新自己的路由表。

2、重定向機制

1、ICMP(因特網控制報文協議)重定向報文

ICMP報文主要分爲兩種:

1、差錯類型報文,主要用來回應網絡錯誤,比如目標不可達到(類型3)或者重定向(類型5)

2、查詢類型報文,比如 ping 程序 就是使用 ICMP實現的(類型爲8);

其中重定向的報文格式如下:

ICMP重定向報文的數據部分含義很明確,它給接收方提供了以下信息:

  • 引起重定向的IP數據報的源端IP地址;
  • 應該使用的路由器IP地址;

2、主機重定向的過程

【注】:文中圖片均剪切自《圖解TCP/IP(第五版)》、《Linux高性能服務器編程》

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