【TCP/IP】7. IP 路由

7. IP 路由

  • 7. IP 路由
    • 概述
    • 7.1 直接傳遞與間接傳遞
    • 7.2 IP 路由核心機制
    • 7.3 路由表
      • 7.3.1 路由表的構成
      • 7.3.2 信宿地址采用網絡地址的好處
      • 7.3.3 下一跳地址的優勢
      • 7.3.4 特殊路由表項
      • 7.3.5 路由算法
    • 7.4 靜態路由
      • 7.4.1 特點
      • 7.4.2 自治系統(AS)
      • 7.4.3 配置命令
      • 7.4.4 問題
    • 7.5 動態路由
      • 7.5.1 路由算法分類
      • 7.5.2 路由協議分類
    • 本章要點

7. IP 路由

概述

IP 路由(路由選擇)是為數據報從信源到信宿尋找最佳 / 較佳路徑的過程,核心依據是網絡拓撲結構,通過路由表實現。路由表存在于主機和路由器中,反映局部網絡拓撲,其使用頻率遠高于刷新頻率(路由表由 IP 模塊使用,由路由協議負責建立和刷新)。

7.1 直接傳遞與間接傳遞

數據報從信源到信宿的傳遞分為兩種方式:

  • 直接傳遞:數據報直接發送到最終信宿(信源與信宿位于同一物理網絡)。
  • 間接傳遞:信源與信宿位于不同物理網絡,數據報需經過中間路由器轉發(由多個中間傳遞組成)。

關系:完整的數據傳遞過程由 “1 次直接傳遞 + 0~ 多次間接傳遞” 構成。

7.2 IP 路由核心機制

  • 路由選擇依據:網絡拓撲結構(抽象為 “點 - 線” 模型:點表示路由器,線表示網絡)。
  • 表驅動路由:主機和路由器均通過路由表進行路由選擇,路由表反映局部網絡拓撲,所有路由表的集合反映整體拓撲。
  • 路由表操作:
    • 使用:IP 模塊根據數據報目的 IP 地址和路由表選擇下一跳(高頻操作,每秒可達數百次)。
    • 建立與刷新:由專門的路由協議負責(低頻操作,每隔十秒至數十秒一次)。
  • 路由表維護:ICMP 可對主機路由表進行重定向;動態路由協議(如 OSPF)負責動態刷新路由表,確保其及時反映網絡結構變化。

7.3 路由表

路由表是主機和路由器中反映網絡拓撲的數據集,核心功能是指明去往某信宿的路徑,由多個字段構成。

7.3.1 路由表的構成

路由表為二維表,每個表項包含以下核心字段:

字段含義
信宿地址通常為目標網絡的 IP 地址(而非單主機地址,減小路由表規模)。
子網掩碼用于提取數據報目的 IP 地址對應的網絡地址(與目的 IP “與” 操作后匹配信宿地址)。
下一跳地址數據報通往信宿的 “下一步” 地址(可為路由器 IP 或本地接口,將多個路由器串聯成完整路徑)。
輸出接口路由器發送數據報的接口 IP 地址。
度量衡量路徑優劣的指標(通常為跳數,即途經路由器數量,取最小值)。

7.3.2 信宿地址采用網絡地址的好處

  1. 減小路由表規模:網絡數量遠少于主機數量,簡化表結構。
  2. 匹配網絡抽象結構:抽象拓撲中僅關注網絡,不關注單主機。
  3. 增強適應性:主機增減不影響路由表(信息隱藏)。
  4. 降低開銷:減少路由表維護和路由選擇的計算量。

7.3.3 下一跳地址的優勢

  • 路由表中僅存儲 “下一跳” 而非完整路徑,可:
    1. 大幅減小路由表規模;
    2. 消除路徑冗余信息;
    3. 簡化路由表維護。

7.3.4 特殊路由表項

  1. 特定主機路由
    • 信宿地址為單主機 IP,子網掩碼為255.255.255.255
    • 用途:為特定主機指定特殊路徑(如安全性測試、網絡管控)。
  2. 默認路由
    • 信宿地址和子網掩碼均為0.0.0.00.0.0.0/0)。
    • 用途:當路由表中無匹配的網絡 / 主機地址時,默認使用此路徑(通常指向自治系統外的出口路由器)。
    • 限制:一個路由表最多只能有一條默認路由。

7.3.5 路由算法

IP 模塊根據數據報目的 IP 地址和路由表選擇路徑的步驟:

  1. 提取數據報目的 IP 地址;
  2. 將路由表中各表項的子網掩碼與目的 IP 進行 “與” 操作,得到目標網絡地址;
  3. 匹配規則:
    • 優先匹配特定主機路由(最長掩碼匹配原則);
    • 其次匹配網絡地址
    • 若均不匹配,使用默認路由
    • 若無默認路由,丟棄數據報并發送 “網絡不可達” ICMP 差錯報告。

7.4 靜態路由

靜態路由是通過手工配置建立和維護路由表的方式,適用于小型、拓撲穩定的網絡。

7.4.1 特點

  • 路由器初始僅知曉直連網絡,非直連網絡需手工添加路由表項;
  • 路由表為本地文件,網絡結構變化時需人工調整。

7.4.2 自治系統(AS)

  • 定義:由獨立管理機構控制的一組網絡和路由器的集合,內部拓撲、路由機制自主選擇。
  • 靜態路由應用:自治系統內網絡需手工添加到路由表,去往外部的網絡通過默認路由轉發。

7.4.3 配置命令

  • Windows 系統route命令):
    • 添加:route add 目的網絡 mask 子網掩碼 下一跳 [metric 度量]
    • 刪除:route delete 目的網絡 mask 子網掩碼
    • 顯示:route print
    • 選項:-p(重啟后保留路由)。
  • Cisco 路由器
    • 添加:ip route 目的網絡 子網掩碼 下一跳/出口接口
    • 刪除:no ip route 目的網絡 子網掩碼 下一跳/出口接口
    • 顯示:show ip route

7.4.4 問題

  • 大型網絡中手工配置工作量極大;
  • 無法動態適應網絡拓撲變化(如鏈路故障);
  • 可能產生冗余路徑,增加管理復雜度。

7.5 動態路由

動態路由通過路由協議自動建立和維護路由表,適用于大型、拓撲動態變化的網絡。核心原則是 “最短路徑優先”(以跳數、時延等為度量)。

7.5.1 路由算法分類

  1. 距離 - 向量算法(V-D 算法)
    • 思想:路由器周期性向相鄰路由器廣播 “(信宿,距離)” 序偶(V 為信宿,D 為跳數),根據最短路徑優先原則刷新路由表。
    • 優點:簡單易實現。
    • 缺點:收斂速度慢(網絡變化后,所有路由器同步拓撲信息耗時久);信息交換量大(每次廣播近完整路由表)。
  2. 鏈路 - 狀態算法(L-S 算法 / SPF 算法)
    • 思想:路由器通過 “鏈路狀態通告(LSA)” 交換鄰接鏈路狀態,構建全局拓撲圖,使用 Dijkstra 算法生成以自身為根的最短路徑樹(SPF 樹),再構造路由表。
    • 優點:收斂速度快(局部變化僅擴散相關信息);信息交換量小(僅廣播鏈路狀態變化)。

7.5.2 路由協議分類

動態路由協議分為內部網關協議(IGP)(自治系統內)和外部網關協議(EGP)(自治系統間)。

1. 路由信息協議(RIP)—— IGP,基于距離 - 向量算法

  • 核心機制:以跳數為度量(1 跳 = 1 個路由器),最大有效跳數為 15(16 表示不可達)。
  • 解決的問題
    • 路由環路:限制最大跳數為 15,避免無限循環。
    • 相同距離路徑:先入為主(保留首次收到的路徑)。
    • 失效路徑:為路由表項設定時器(180 秒無更新則標記為 “不可達”,120 秒后刪除)。
    • 慢收斂(計數到無窮):
      • 水平分割 + 毒性逆轉:從某接口收到的路由信息,再從該接口發出時將距離設為 16(不可達),避免環路。
      • 觸發刷新:網絡變化時立即廣播更新,加速收斂。
  • RIPv1 與 RIPv2 的對比
特性RIPv1RIPv2
子網支持不支持(無子網掩碼字段)支持(含子網掩碼字段,兼容 VLSM 和 CIDR)
鑒別機制支持(明文口令 / 加密鑒別)
通告方式廣播(255.255.255.255)組播(224.0.0.9)
報文格式無路由標記、下一跳字段含路由標記(區分路由源)、下一跳字段
  • 報文與封裝:
    • 報文類型:請求(類型 1)、響應(類型 2),響應報文含多個(信宿,距離)序偶。
    • 封裝:UDP 數據報(端口 520),最大報文長度 504 字節(含 25 個路由項)。

2. 開放最短路徑優先(OSPF)—— IGP,基于鏈路 - 狀態算法

  • 核心機制:自治系統劃分為區域(減少路由信息量),主干區域(0.0.0.0)連接所有區域,邊界路由器匯總區域信息。路由器通過 LSA 交換鏈路狀態,構建鏈路狀態數據庫(LSDB),生成 SPF 樹,再構造路由表。
  • 關鍵特性
    1. 支持服務類型路由(根據數據報 TOS 字段選擇路徑)。
    2. 可為接口指派費用(基于吞吐率、時延等,影響路徑選擇)。
    3. 負載均衡(相同費用的路徑平均分配流量)。
    4. 層次化結構(區域隱藏內部拓撲,支持大規模網絡)。
    5. 支持多種鑒別機制(不同區域可采用不同方式)。
    6. 組播通告(減少無關主機開銷)。
  • 報文類型
    • 共 5 種,均含 24 字節標準首部(版本、類型、長度等):
      1. Hello 分組(類型 1):發現 / 維護鄰機關系,周期發送。
      2. 數據庫描述分組(類型 2):交換 LSDB 概要,同步拓撲信息。
      3. 鏈路狀態請求分組(類型 3):請求缺失的 LSA 細節。
      4. 鏈路狀態更新分組(類型 4):泛洪 LSA(核心報文)。
      5. 鏈路狀態確認分組(類型 5):確認 LSA 接收,保證可靠性。
  • 封裝:直接封裝在 IP 數據報中(協議字段 = 89)。

3. 增強型內部網關路由協議(EIGRP)—— IGP,Cisco 私有

  • 核心機制:結合距離 - 向量和鏈路 - 狀態特性,使用擴散更新算法(DUAL) 計算路由。
  • 路由表結構
    • 鄰機表:存儲鄰機狀態信息。
    • 拓撲表:存儲可行后繼路由(備用次佳路由)。
    • 路由表:存儲后繼路由(最佳路由,用于轉發)。
  • 報文類型
    • Hello:發現 / 維護鄰機關系。
    • Update:發送路由更新信息。
    • Query:路由失效且無備用路由時,向鄰機查詢。
    • Reply:響應 Query 報文。
    • Ack:確認收到報文(通過其他報文承載,或單播 Hello 報文)。
  • 封裝:直接封裝在 IP 數據報中(協議字段 = 88)。

4. 邊界網關協議(BGP)—— EGP,基于路徑 - 向量算法

  • 核心機制:用于自治系統間交換路由信息,路徑以 “自治系統號(ASN)序列” 表示,支持基于策略的路由(考慮政治、經濟、安全等因素)。
  • 報文類型
    1. 打開報文(類型 1):建立鄰機關系(TCP 連接建立后發送)。
    2. 更新報文(類型 2):通告新路由或刪除無效路由(核心報文)。
    3. 保持活動報文(類型 3):定期發送,維持鄰機連接。
    4. 通告報文(類型 4):報告錯誤或關閉連接。
  • 封裝:通過 TCP 傳輸(端口 179),保證可靠性。
  • 防環機制:路由更新時,若路徑中已包含本地 ASN,則拒絕該路徑。

本章要點

  • 數據傳遞分為直接傳遞(同一網絡)和間接傳遞(跨網絡,經路由器轉發)。
  • 路由表是路由選擇的核心,含信宿地址、子網掩碼、下一跳、輸出接口、度量,特殊表項包括特定主機路由(255.255.255.255)和默認路由(0.0.0.0/0)。
  • 靜態路由手工配置,適用于小型穩定網絡;動態路由通過協議自動維護,適用于大型動態網絡。
  • 路由算法分為距離 - 向量(如 RIP)和鏈路 - 狀態(如 OSPF),前者簡單但收斂慢,后者復雜但收斂快。
  • 主要路由協議:
    • RIP(IGP,V-D 算法,跳數度量,適用于小型網絡);
    • OSPF(IGP,L-S 算法,區域劃分,適用于大規模網絡);
    • EIGRP(Cisco 私有 IGP,DUAL 算法,復合度量);
    • BGP(EGP,路徑 - 向量算法,AS 間路由,支持策略路由)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/88476.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88476.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88476.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

xFile:高性能虛擬分布式加密存儲系統——Go

xFile:高性能虛擬分布式加密存儲系統 目錄xFile:高性能虛擬分布式加密存儲系統1 背景介紹2 設計初衷與目標3 項目簡介4 系統架構5 核心優勢1. 真正的分布式塊存儲2. 塊級加密與壓縮,安全高效3. 靈活的索引與元數據管理4. 多用戶與權限體系5. …

時序數據庫:高效處理時間序列數據的核心技術

時序數據庫概述時序數據庫(Time Series Database,TSDB)是一種專門為存儲、處理和查詢時間序列數據而優化的數據庫系統。隨著物聯網、金融科技、工業互聯網等領域的快速發展,時序數據呈現出爆炸式增長,傳統的關系型數據…

面試官:你再問TCP三次握手,我就要報警了!

CP三次握手和四次揮手,是面試官最愛問的“開場白”之一 別看它基礎,真要講清楚細節,分分鐘讓你冷汗直流! 這玩意兒就跟程序員相親一樣: 表面上問的是“你老家哪的” 實際上是在試探你有沒有房、有沒有車、能不能落…

RuoYi+Uniapp(uni-ui)開發商城系統

如果你正在考慮用 RuoYi 和 UniApp(uni-ui)搭建一套商城系統,那這套組合確實值得好好研究。它整合了 RuoYi 的快速開發能力和 UniApp 的跨平臺特性,在高效開發的同時還能兼顧多端適配的需求。下面從技術架構、功能模塊、開發實踐到…

面試150 二叉樹的最大高度

思路 考慮從遞歸出發,聯想遞歸三部曲:返回什么、傳入的參數是什么、遍歷的方式是什么。此題現在需要我們整個樹,并且需要從根節點出發,因此我們選擇先序遍歷即可。另一張辦法,則是選擇通過隊列實現層次遍歷&#xff0c…

從零實現一個GPT 【React + Express】--- 【2】實現對話流和停止生成

摘要 這是本系列文章的第二篇,開始之前我們先回顧一下上一篇文章的內容: 從零實現一個GPT 【React Express】— 【1】初始化前后端項目,實現模型接入SSE 在這一篇中,我們主要創建了前端工程和后端工程,這里貼一下我…

SEQUENCE在RAC多實例開啟CACHE的NEXTVAL數值亂序問題

問題說明 在多實例環境中可能會出現從Sequence所取出來的nextval是亂序的,比如第二次比第一次所取的數要小但這并不是我們所希望的。當程序邏輯Base on sequence.nextval數值所謂填充字段的大小來排序時,就會產生問題。 實際上就是由于多實例這一特性造成…

后臺管理系統-權限管理

在后臺管理系統當中,權限管理占著非常重要的位置,權限管理,顧名思義,就是用來管理用戶登錄后臺的權限。 在權限管理中有三個重要的名詞:賬號,角色,權限 賬號:通過賬號進入平臺&…

MySQL表的約束(5)

文章目錄前言一、空屬性二、默認值三、列描述四、zerofill五、主鍵六、自增長七、唯一鍵八、外鍵總結前言 真正約束字段的是數據類型,但是數據類型約束很單一,需要有一些額外的約束,更好的保證數據的合法性,從業務邏輯角度保證數據…

MyBatis:SQL與Java的智能橋梁

MyBatis:SQL 與 Java 的「智能翻譯官」 —— 用 極簡的方式 連接數據庫和 Java 對象,告別 JDBC 的繁瑣操作!核心定位:半自動化 ORM 框架對比項JDBC 原生操作MyBatis 解決方案SQL 編寫拼字符串(易出錯、難維護&#xff…

自動駕駛控制系統

目錄 控制系統概述 無人車控制架構設計 自動駕駛控制核心技術 車輛縱向控制 車輛橫向控制 自動駕駛控制方法 自動駕駛控制技術方案 人機交互系統 控制系統概述 控制技術是智能駕駛的關鍵,旨在環境感知技術的基礎之上,根據決策規劃出目標軌跡,通過縱向和橫向控制系統…

網絡安全基石:從弱口令治理到動態防御體系的構建

引言:數字時代的防御困局 在5G與物聯網技術全面落地的數字新基建時代,企業網絡資產規模呈現指數級增長。Verizon《2023年數據泄露調查報告》顯示,61%的安全事件直接源于憑證失竊,而其中81%的攻擊成功案例可溯源至初始口令強度的不…

Error: fatal: detected dubious ownership in repository at

這個錯誤是 Git 在新版中引入的一種 安全檢查機制,目的是防止不同用戶訪問同一個 Git 倉庫目錄,避免潛在的權限或安全問題。你的情況是:倉庫目錄是屬于另一個用戶。當前以管理員用戶 OVERSPREAD/Administrator 運行 Git。Git 為了安全起見&am…

嵌入式 數據結構學習 (六) 樹、哈希表與內核鏈表

一、樹(Tree)結構詳解1. 樹的基本概念樹的核心特性非線性結構:數據元素之間存在一對多的層次關系遞歸定義:樹的子樹仍然是樹專業術語:度(Degree):結點擁有的子樹數葉子結點:度為0的結點層次(Level):根為第1…

封裝WebSocket

一個基于原生 WebSocket 的封裝庫,實現了自動重連、心跳檢測等功能,用于在前端應用中穩定地與后端 WebSocket 服務通信。下面從設計思路、關鍵功能等方面進行詳細分析:設計思路 這個封裝庫采用單例模式設計,全局維護一個 WebSocke…

SLICEGPT: COMPRESS LARGE LANGUAGE MODELSBY DELETING ROWS AND COLUMNS

發表:ICLR24 機構:ETH Zurich 連接:https://arxiv.org/pdf/2401.15024 ABSTRACT 大型語言模型(Large Language Models, LLMs)已成為自然語言處理的基石,但其使用伴隨著在計算和內存資源方面的高昂代價。…

Python 【技術面試題和HR面試題】? 循環結構、控制語句及綜合應用問答

1.技術面試題 (1)詳細描述單調棧的工作原理和應用場景 答: 原理 維護棧內元素單調遞增 / 遞減,新元素入棧前,彈出破壞單調性的棧頂,保持單調。 應用場景 排隊比身高,搭積木找最大的空地 &#x…

100G系列光模塊產品與應用場景介紹

在當今數字化時代,網絡流量呈爆炸式增長,對數據傳輸速度和帶寬的要求也越來越高。100G 光模塊作為高速數據傳輸的關鍵組件,因其卓越的高速傳輸能力,已成為數據中心、云計算、企業網絡以及 5G 通信網絡等領域的重要組成部分。接下來…

運籌說 第140期 | 從直覺到算法:這些奠基人如何塑造了啟發式方法的科學根基?

運籌說建構知識體系,解析學習要點運 籌 優 化 領 域 教 學 媒 體視頻課程已上線!!!歡迎大家關注同名抖音和嗶哩嗶哩賬號!在人工智能與優化科學的浩瀚星空中,啟發式算法如同一把鑰匙,為人類打開了處…

Flutter編譯安卓應用時遇到的compileDebugJavaWithJavac和compileDebugKotlin版本不匹配的問題

記一次flutter應用,編譯安卓時,報的一個compileDebugJavaWithJavac和compileDebugKotlin版本本匹配的問題。 最終定位的原因是項目一來了audioplayers組件。 audioplayers組件有依賴了audioplayers_android, 它使用1.8編譯的。 版本過低。后來…