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编译的。 版本过低。后来…