当前位置: 首页 > java >正文

计算机网络笔记(二十四)——4.6互联网的路由选择协议

4.6.1有关路由选择协议的几个基本概念

路由选择协议是计算机网络中维护和生成路由表的核心机制。

1. 路由选择的核心目标

  • 转发(Forwarding):路由器基于本地转发表,将分组从输入链路转移到输出链路(单台路由器的本地操作)。
  • 路由选择(Routing):网络范围内的路径计算,确定源到目的地的端到端路径(全局过程)。
  • 比喻:转发类似于立交桥的单个路口决策,路由选择是规划整条旅行路线。

2. 自治系统(Autonomous System, AS)

  • 定义:由同一管理机构管理的网络集合(如一个ISP或企业网络)。
  • 特点
    • 内部使用统一的策略和路由协议(如OSPF、RIP)。
    • 对外通过网关路由器与其他AS通信。
  • 示例:Google的全球网络、中国电信的骨干网。

在这里插入图片描述

3. 内部网关协议(IGP)

  • 作用:在AS内部路由,生成最短路径。
  • 协议举例
    • RIP(路由信息协议):基于跳数,最大15跳,定期广播路由表。
    • OSPF(开放最短路径优先):基于链路状态,计算全网拓扑,支持分层路由。
  • IGP vs 静态路由:IGP动态适应网络变化,静态路由需手动配置。

4. 外部网关协议(EGP)

  • 作用:在AS之间交换路由信息,关注策略而非最短路径。
  • BGP(边界网关协议)
    • 路径向量协议:记录完整AS路径(如AS1 → AS3 → AS2)。
    • 关键属性
      • 本地偏好(Local Preference):管理员自定义优先级。
      • AS-PATH长度:路径越短越优。
    • 热土豆路由(Hot Potato):选择到网关费用最小的出口。

5. 路由选择算法类型

类型原理协议示例
距离向量邻居交换跳数,逐跳更新(易环路)RIP
链路状态洪泛链路信息,全网计算最短路径OSPF
路径向量记录完整AS路径,策略优先BGP

6. BGP的路由决策流程

BGP通过以下步骤选择最佳路径:

  1. 最高本地偏好(管理员策略优先)。
  2. 最短AS-PATH(减少跨AS跳数)。
  3. 最近NEXT-HOP(选出口费用最低的网关)。
  4. 热土豆路由(尽快将流量送出本AS)。

在这里插入图片描述

7. 关键问题与解决方案

  • 环路避免:BGP通过AS-PATH检测环路(若路径包含自身AS则拒绝)。
  • 策略控制:企业AS可能拒绝中转流量(只收发自身流量)。
  • 收敛时间:BGP更新缓慢(分钟级),确保稳定性。

总结

  • IGP:关注AS内部效率,计算最短路径(如OSPF)。
  • BGP:跨AS策略控制,权衡路径属性和管理需求。
  • 路由表生成:IGP填充AS内部路由,BGP填充外部路由。

通过上述机制,互联网实现了分层次、可扩展的路由管理。

4.6.2内部网关协议RIP

一、RIP 基本概念

RIP(Routing Information Protocol,路由信息协议) 是一种基于 距离向量算法(Distance-Vector Algorithm)内部网关协议(IGP),运行在自治系统(AS)内部。
主要特点:

  • 最大跳数为 15(跳数 >15 时网络不可达);
  • 采用 UDP 520端口 传输路由信息;
  • 周期性广播完整路由表(默认 30秒);
  • 简单易部署,适用于小型网络。

二、RIP 工作原理

1. 算法核心:距离向量

  • 距离: 使用 跳数(Hops) 作为度量标准;
  • 更新规则: 若通过相邻路由器到达目标网络的跳数更低,则更新路由表。

在这里插入图片描述

2. 路由更新过程

  • 周期广播:每 30 秒向邻居广播完整路由表;
  • 触发更新:当网络拓扑变化时立即发送更新。

三、RIP 报文格式

RIP 使用 UDP 报文(端口 520),格式如下:

字段长度(字节)说明
Command(1)1:请求;2:响应
Version(1)RIP 版本(v1/v2)
Zero(2)保留字段
AFI(2)地址族标识(IPv4=2)
Route Tag(2)路由标记(区分内部/外部路由)
IP Address(4)目标网络地址
Subnet Mask(4)子网掩码(RIPv2 特有)
Next Hop(4)下一跳地址(RIPv2 特有)
Metric(4)跳数(1-15)

四、RIP 环路避免机制

1. 水平分割(Split Horizon)

  • 规则: 不从某个接口学习到的路由再通过该接口回传;
  • 作用: 避免相邻路由器间的环路。

2. 毒性逆转(Poison Reverse)

  • 规则: 当某条路由失效时,将其跳数设为 16(不可达)并通告;

  • 示例:

    原路由:Network A via Router B, 2 Hops
    失效后:Network A via Router B, 16 Hops
    

3. 最大跳数限制

  • 跳数上限 15,超过则视为不可达(Metric=16),阻止无限循环。

在这里插入图片描述

五、RIPv1 vs RIPv2

特性RIPv1RIPv2
地址类型仅支持有类路由支持 VLSM 和 CIDR
更新方式广播(255.255.255.255)组播(224.0.0.9)
认证不支持支持明文/MD5认证
下一跳指定未指定,可能导致次优路径明确指定下一跳地址

六、示例:RIP 拓扑与路由表更新

1. 拓扑图

在这里插入图片描述

2. 路由表更新示例

初始时,路由器B的路由表:

目标网络下一跳跳数
192.168.1.0/24直连1
10.1.0.0/24R12

当收到 R1 的更新后,R2 新增到 Network1 的路由为 10.1.0.0/24 via R1, metric=2+1=3。(若优则更新)

七、RIP 的局限性

  • 收敛速度慢:依赖周期性更新,故障恢复时间长;
  • 规模限制:最大跳数 15,不适合大型网络;
  • 带宽占用高:定期广播完整路由表。

总结:RIP 作为经典的内部网关协议,凭借简单性在小规模网络中仍有应用,但在复杂或大规模网络中已被 OSPF、EIGRP 等协议取代。

4.6.3内部网关协议OSPF

1. 基本概念

OSPF(Open Shortest Path First)是链路状态路由协议,适用于自治系统(AS)内部的路由选择。与距离向量协议(如 RIP)不同,OSPF 通过构建全网拓扑图(链路状态数据库,LSDB),利用 Dijkstra 算法计算最短路径树,实现高效、无环路的路由选择。

2. OSPF 核心特点

特性说明
链路状态算法每个路由器维护全网的 LSDB,通过 Dijkstra 计算最短路径。
分层次设计将网络划分为多个区域(Area),骨干区域(Area 0)连接其他所有区域。
快速收敛基于触发更新机制,拓扑变化时迅速泛洪 LSA,确保全网 LSDB 同步。
支持 VLSM/CIDR兼容可变长子网掩码和无类域间路由。
多路由度量基于接口带宽、延迟等参数动态计算路径开销。
支持认证提供明文和 MD5 认证,保障邻居间通信安全。

3. OSPF 区域划分

  • 骨干区域(Area 0):核心枢纽,所有非骨干区域必须直接或间接连接到 Area 0。
  • 常规区域(非 Area 0):独立维护链路状态数据库,通过 ABR 与骨干区域通信。
  • 特殊区域类型:Stub 区域、NSSA 等优化外部路由传播。

在这里插入图片描述

4. OSPF 报文类型

报文作用内容
Hello发现邻居,维持邻接关系参数协商(Area ID、认证、间隔等)
DBD同步 LSDB 摘要链路状态摘要列表
LSR请求缺失的 LSA明确所需 LSA 条目
LSU携带完整的 LSA 更新更新链路状态信息
LSAck确认收到的 LSA确保数据可靠性

5. OSPF 工作流程

  1. 邻居发现
    通过多播 224.0.0.5 发送 Hello 报文,匹配参数后形成邻居关系。

  2. 数据库同步

    • 主从路由器协商(Router ID 高者为主),交换 DBD 报文。
    • 通过 LSR/LSU/LSAck 同步缺失的链路状态信息。
  3. 邻接关系建立
    完成 LSDB 同步后,形成邻接(Adjacency),触发最短路径计算。

  4. 路由计算与维护
    定期发送 Hello 保活,拓扑变化时泛洪 LSU 更新 LSDB。

在这里插入图片描述

6. LSA 类型详解

LSA 类型名称生成者传播范围
1路由器 LSA (Router)每个路由器单个区域内部
2网络 LSA (Network)DR单个区域内部
3网络汇总 LSA (Summary)ABR区域间
4ASBR 汇总 LSAABR区域间
5外部 LSA (External)ASBR整个 OSPF 域

7. DR/BDR 选举机制

适用场景:广播多路访问网络(如以太网)。
选举规则

  • 优先级最高(默认 1,0 不参与选举)。
  • Router ID 最大(回环接口或手动指定)。
  • 作用:减少 LSA 泛洪,统一处理链路状态更新。

8. OSPF 区域间路由

  • ABR(Area Border Router)负责区域间路由汇总。
  • Type 3 LSA 传递汇总路由至骨干区域和其他区域。
  • STUB 区域 阻止 Type 5 LSA 进入,通过默认路由访问外部网络。

9. 安全机制

  • 认证类型:明文或 MD5 哈希。

  • 配置示例(MD5):

    interface GigabitEthernet0/0ip ospf authentication message-digestip ospf message-digest-key 1 md5 MySecretKey
    

10. OSPF 与 RIP 对比

OSPFRIP
算法类型链路状态(全局拓扑)距离向量(跳数累加)
收敛速度快(触发更新)慢(周期更新)
最大跳数无限制15 跳限制
适用范围大中型网络,支持分层结构小型网络

4.6.4外部网关协议BGP

一、BGP 的基本概念

BGP(Border Gateway Protocol,边界网关协议)是互联网中用于在不同自治系统(AS)之间交换路由信息的协议,属于路径向量协议。BGP 的主要特性包括:

  1. 跨 AS 路由交换:协调不同管理域(如ISP之间的路由)
  2. 策略路由控制:支持基于商业策略的流量控制
  3. 防止路由环路:通过 AS_PATH 属性检测环路

二、BGP 的核心机制

1. BGP 对等体(Peer)与连接建立

  • eBGP:不同 AS 间的 BGP 连接(如 ISP 之间)
  • iBGP:同一 AS 内的 BGP 连接(路由信息内部传播)
  • TCP 179 端口:BGP 通过 TCP 保证可靠传输

连接建立流程

在这里插入图片描述

2. BGP 消息类型

消息类型作用描述
OPEN建立邻居关系(协商参数如AS号、Hold Time)
UPDATE通告/撤销路由(携带网络前缀和路径属性)
KEEPALIVE维持连接活性(默认60秒间隔)
NOTIFICATION通告错误并终止连接(如参数不匹配、版本不支持)

3. BGP 路径属性

属性类型说明示例值
AS_PATH记录经过的AS列表,防止环路[AS64512, AS65530]
NEXT_HOP下一跳IP地址(可能跨AS修改)203.0.113.5
LOCAL_PREFAS内部优先级(值越大优先级越高)200
MED多出口鉴别属性(建议外部邻居选用路径)50
ORIGIN路由来源标识(IGP/EGP/Incomplete)IGP

三、BGP 路由选择过程

BGP 根据路径属性的优先级顺序选择最佳路由:
在这里插入图片描述

四、典型应用场景

  1. 多宿主网络(Multihoming):

    • 企业通过多个 ISP 接入互联网,BGP 实现流量负载均衡
    • 示例:公司 AS 64512 同时连接到 ISP A (AS 65530) 和 ISP B (AS 65531)
  2. 路由策略控制

    • 设置 LOCAL_PREF 优先某 ISP 出口
    • 通过 AS_PATH 过滤特定来源路由
  3. 防御路由劫持

    • 使用 RPKI(资源公钥基础设施)验证路由来源合法性

五、关键问题解析

为什么BGP使用TCP?

  • 保证路由更新可靠传输(UDP不适用于大规模路由表传输)

BGP如何防止路由环路?

  • 通过AS_PATH属性检查自身AS号是否已存在于路径中

iBGP为什么需要全互联或路由反射器?

  • 避免信息丢失(iBGP邻居间不修改AS_PATH,需确保路由信息全分布)

BGP 作为互联网的"粘合剂",通过灵活的属性和策略控制,支撑了全球复杂网络的路由互联。

4.6.5路由器的构成

路由器是网络层的核心设备,负责在不同网络之间转发数据包。其构成可以从 硬件结构功能模块 两个维度进行详细分析。

硬件结构分层

路由器一般由以下核心组件构成:

在这里插入图片描述

一、关键部件详解

1. 输入端口(Input Port)

负责接收数据链路层帧,处理网络层数据包。核心功能如下:

  • PHY/MAC模块
    处理物理层/链路层协议(如以太网接口),完成 帧解封装、CRC校验等。
  • 转发表查找(Forwarding Table Lookup)
    根据IP包的目的地址查询 最长前缀匹配(Longest Prefix Match),确定输出端口。
    • 通过 TCAM(Ternary Content-Addressable Memory) 加速查找。
  • 缓冲管理(Queuing)
    当交换结构繁忙时,包会被缓存在输入队列中,避免数据丢失。

2. 交换结构(Switching Fabric)

连接输入和输出端口,实现高速数据交换。主要技术方案:

  • 共享总线(Shared Bus)
    所有端口共用总线带宽,简单但吞吐量低(如早期路由器)。
  • 交叉开关(Crossbar Switch)
    无阻塞交换矩阵,允许多条并行路径,适用于高速路由器。
  • 共享内存(Shared Memory)
    输入端口将数据写入共享内存,输出端口直接读取,需高性能内存控制器。

3. 输出端口(Output Port)

负责将交换结构转发的包发送到下一跳。核心功能:

  • 输出缓冲队列(Output Queue)
    当输出链路繁忙时,包会排队等待发送,可能触发 拥塞控制算法(如RED)。
  • 调度算法(Scheduling)
    决定包的发送顺序(如FIFO、优先级队列、加权公平队列WFQ)。
  • MAC/PHY封装
    重新封装为链路层帧(如以太网),附加新MAC地址。

4. 路由处理器(Routing Processor)

路由器的“控制平面”,负责协议处理和路由表更新:

  • 路由协议处理(OSPF/BGP/RIP)
    运行动态路由协议,更新路由表。
  • 路由表维护
    构建转发表(Forwarding Table),供输入端口快速查表。
  • 管理功能(CLI/SNMP)
    支持配置和监控(如登录控制台、SNMP查询)。

二、路由器工作流程

在这里插入图片描述

三、典型技术细节

  1. 转发表 VS 路由表

    • 路由表(Routing Table)
      由路由协议生成,包含完整网络拓扑信息(如OSPF LSDB)。
    • 转发表(Forwarding Table)
      从路由表提取,仅保留“目的网络 → 下一跳”映射,优化查表速度。
  2. 处理瓶颈分析

    • 输入排队(Head-of-Line Blocking)
      队列头部阻塞后续包的交换(解决方案:虚拟输出队列VOQ)。
    • 输出缓冲溢出
      过量流量导致丢包(需结合AQM算法如RED/ECN)。

四、路由器架构演进

类型特点适用场景
传统路由器软件转发(CPU处理)小型网络
硬件加速路由器ASIC/FPGA线速转发企业级核心网
SDN路由器控制与转发分离(OpenFlow协议)数据中心/云网络

总结

  • 输入端口:数据接收与初步处理
  • 交换结构:高速包交换核心
  • 输出端口:调度与发送管理
  • 路由处理器:协议与控制逻辑

路由器通过上述模块协同工作,实现网络层的高效分组转发和动态路由维护。

http://www.xdnf.cn/news/5739.html

相关文章:

  • 基于STM32、HAL库的BMP390L气压传感器 驱动程序设计
  • Costmap代价地图
  • IOT藍牙探測 C2 架構:社會工程/節點分離防追尋
  • 2.1 微积分基本想法
  • ABP-Book Store Application中文讲解 - Part 2: The Book List Page - TBD
  • 案例-流量统计
  • 网格图之bfs
  • 水平翻转 垂直翻转 颜色处理
  • 二、HAL库的命名规则详解
  • 【Python】Python 单例模式 8 大核心应用场景深度解析(2025 新版)
  • 前端vue+elementplus实现上传通用组件
  • 非结构化数据的智能化蜕变:从混沌到知识的进化之路
  • Python教程(四)参数提取pymysql
  • 直方图详解
  • Python | Dashboard制作 【待续】
  • 1.3.3 tinyalsa详细介绍
  • 14.three官方示例+编辑器+AI快速学习webgl_buffergeometry_instancing_interleaved
  • 【语法】C++的多态
  • 专题二:二叉树的深度优先搜索
  • AI+Java开发项目——石头迷阵游戏
  • M0基础篇之DAC
  • LAN-402 全国产信号采集处理模块K7-325T(4通道采集)
  • LC滤波器与电感、电容的区别:技术分析与应用
  • springboot做junit单元测试详细步骤
  • 深入理解 iOS 开发中的 `use_frameworks!`
  • 大数据课设——基于电影数据集,分析导演影响力,绘制各种可视化图表
  • 【Linux】Linux内核的网络协议之socket理解
  • 丝杆升降机限位开关信号机制剖析与工程实践:从原理到 PLC 控制全流程解析
  • 监控易运维管理软件:架构稳健,组件强大
  • 使用 OAuth 2.0 保护 REST API