计算机网络知识点整理(5):网络层之控制平面

Last updated on May 18, 2025 pm

这是SJTU-CS3611《计算机网络》课程的知识点整理系列。本文整理部分为“第5章:网络层之控制平面”。

5.1 概述

  • 网络层功能:转发(数据平面)、路由(控制平面)
  • 构建网络控制平面的方法
    • 每路由器控制(传统方法):每台路由器中的独立路由选择组件在控制平面中交互,以计算其转发表的值
    • 逻辑集中式控制(SDN):远程控制器与路由器中的控制代理(CA)交互,计算并在路由器中安装转发表

5.2 路由选择算法

5.2.1 路由算法的分类

  • 集中式 vs 分布式
    • 集中式路由选择算法:具有拓扑和链路开销的全局状态信息,又称链路状态(LS)算法
    • 分布式路由选择算法:没有节点拥有网络的完整信息,迭代计算过程并与相邻节点交换信息,如距离向量(DV)算法
  • 静态 vs 动态
    • 静态路由选择算法:路由随时间变化缓慢,通常人工调整
    • 动态路由选择算法:定期更新或直接响应链路开销变化

5.2.2 链路状态路由算法

核心特点

  • 集中式:每个节点广播链路状态信息,所有节点拥有相同的全局信息
  • Dijkstra 算法:计算从源节点到所有其他节点的最低路径开销
  • 迭代:经过 kk 次迭代后,得知 kk 个目的地的最低成本路径

算法步骤

  1. 初始化集合 N={u}N' = \{u\}(源节点)
  2. 为所有节点 vv 初始化距离 D(v)=c(u,v)D(v) = c(u,v)(直连链路成本)
  3. 循环直到 NN' 包含所有节点:
    1. 选择不在 NN' 中且 D(w)D(w) 最小的节点 ww
    2. ww 加入 NN'
    3. 更新 ww 的邻居节点 vvD(v)=min(D(v),D(w)+c(w,v))D(v) = \min(D(v), D(w) + c(w,v))

讨论

  • 算法复杂度O(n2)O(n^2)nn 个节点(可以堆优化)
  • 路由振荡:链路成本取决于流量,解决方法是异步算法或随机通告

5.2.3 距离向量路由算法

核心特点

  • 分布式:从邻居接收信息,执行计算后将结果分发给邻居
  • 迭代:过程持续到邻居之间无更多信息交换(自停止)
  • 异步:所有节点不要求步伐一致地操作
  • Bellman-Ford 方程Dx(y)=minv{c(x,v)+Dv(y)}D_x(y) = \min_v\{c(x,v) + D_v(y)\}

算法流程

  1. 节点不时地向邻居发送自己的距离向量
  2. 直接相连的链路开销变化 / 收到邻居的更新时,更新本地距离向量(Bellman-Ford 方程)
  3. 若本地距离向量变化,通知所有邻居
  • 距离向量:某节点到所有其他节点的开销估计向量
  • 收敛性:估计值能收敛到实际最低开销

缺点

  • 交换的路径信息量大
  • 路径信息不一致
  • 收敛速度慢(坏消息)
  • 不适合大型网络

问题与解决

  • 路由选择环路:好消息传播得快,坏消息传播得慢(无穷计数问题)
  • 毒性逆转:对上游节点,通告距离无穷大

5.2.4 LS 与 DV 算法对比

特性 链路状态(LS) 距离向量(DV)
计算位置 集中式(Dijkstra) 分布式(Bellman-Ford)
信息传播 全局洪泛链路状态 邻居间交换距离向量
消息复杂度 O(NE)O(\vert N\vert\vert E\vert) 个报文 相邻节点交换报文
收敛速度 O(N2)O(\vert N \vert^2) 较慢且可能遇到路由环路
健壮性 仅计算自身转发表,路由计算分离 错误会在网络中扩散

5.3 自治系统内部路由:OSPF

5.3.1 自治系统(AS)

  • 必要性
    • 规模:因特网规模巨大,无法将所有目的地存储在路由表中
    • 管理自治:ISP 希望管理控制自身网络中的路由
  • 组成:一组处在相同管理控制下的路由器

5.3.2 OSPF(开放最短路优先)

  • 链路状态协议
  • 应用场景:自治系统内部路由选择

工作方式

  • 每个路由器将链路状态信息洪泛到 AS 内所有路由器
    • OSPF 链路状态通告直接由 IP 承载
  • 每个路由器拥有完整拓扑,使用 Dijkstra 算法计算转发表
  • 各条链路开销由网络管理员配置

优点

  • 安全性:能够鉴别 OSPF 路由器之间的交换(MD5),防止恶意入侵
  • 支持 AS 内的层次结构:划分为局域网和骨干网,链路状态仅在区域内广播
  • 允许使用多条相同开销的路径
  • 支持单播和多播路由

5.4 自治系统间路由:BGP

  • 分布式、异步的协议,是一种距离向量协议

5.4.1 BGP(边界网关协议) 的作用

  • 应用场景:自治系统间路由选择
  • 核心作用
    • 从邻居 AS 获得前缀的可达性信息
      • 允许每个子网向互联网的其余部分通告它的存在
    • 确定到该前缀的“最好的”路由

5.4.2 BGP 路由信息通告

  • 核心概念
    • 网关路由器:位于 AS 边缘的路由器
    • 内部路由器:仅连接同一 AS 中主机和路由器
    • BGP 会话:两个 BGP 路由器通过半永久的 TCP 连接交换路由消息
    • 外部 BGP (eBGP) 连接:跨越两个 AS 的 BGP 连接
    • 内部 BGP (iBGP) 连接:相同 AS 中的两台路由器之间的 BGP 会话
  • 使用 iBGP 和 eBGP 对话,传播可达性信息

5.4.3 确定最好的路由

  • BGP 通告的路由:目的地前缀 + 属性

  • 两个重要属性

    • AS-PATH:通告已经经过的 AS 列表
    • NEXT-HOP:下一跳路由器(不属于当前 AS)接口的 IP 地址
  • 热土豆路由选择:选择到 NEXT-HOP 路由器开销最小的路由

    • 即选择具有最小 AS 内开销的本地网关
  • 路由选择算法:(优先级由高到低)

    1. 选择具有最高本地偏好值(策略决定)的路由
    2. 选择具有最短 AS-PATH 的路由
    3. 选择具有最靠近 NEXT-HOP 路由器的路由(热土豆)
    4. 使用 BGP 标识符选择路由

5.4.4 IP 任播

  • 应用场景:将用户指向具有复制内容的最近的服务器,常用于 DNS
  • 实现方式:多台服务器指派相同的 IP 地址,并用 BGP 通告该 IP 地址

5.4.5 路由选择策略

  • 通过通告实现策略控制:ISP 仅希望路由进出其客户网络的流量

5.5 SDN 控制平面

5.5.1 概述

  • 总体架构
    • 数据平面:分组交换机执行“匹配加动作”规则
    • 控制平面:SDN 控制器 + 网络控制应用程序
  • 关键特征
    • 基于流的转发(基于不同首部字段进行转发)
    • 数据平面与控制平面分离
    • 网络控制功能
    • 可编程的网络
  • 好处
    • 更简单的网络管理:避免路由器配置错误,流量调度更灵活
    • 基于表的转发允许编程路由器:集中式编程更简单
    • 控制平面的开放实现:促进创新

5.5.2 SDN 控制器层次结构

  • 通信层:控制器与受控网络设备之间的通信(南向 API,如 OpenFlow)
  • 网络范围状态管理层:管理全网状态,如链路、主机、交换机状态及流表等
  • 对于网络控制应用程序层的接口:与网络控制应用程序交互(北向 API)
  • SDN 控制器在逻辑上集中,但采用分布式系统实现,具有高性能、可扩展性和鲁棒性

5.5.3 OpenFlow 协议

  • 在 SDN 控制器和交换机之间运行,基于 TCP 协议
  • 从控制器流向交换机的报文:配置、修改状态、读状态、发送分组
  • 从交换机流向控制器的报文:流删除、端口状态、分组入

5.6 ICMP(互联网控制报文协议)

  • 作用:主机和路由器用于交换网络层信息,如
    • 差错报告:目的网络不可达等
    • 回显请求与应答:由 ping 使用
  • 网络层协议:是 IP 的一部分,但 ICMP 报文封装在 IP 数据报中
  • ICMP 报文:类型 + 编码 + 引发错误的 IP 数据报的首部及前 8 个字节
  • Traceroute 程序:跟踪到任意一台主机之间的路由
    • 源主机向目的主机发送一系列 UDP 报文段,TTL 依次加 1
    • 当 TTL 减为 0,路由器丢弃该数据报并发送 ICMP 报文给源主机
    • UDP 报文段最终到达目的主机,目的主机返回“端口不可达”的 ICMP 报文

5.7 网络管理

5.7.1 网络管理框架

  • 组成部分
    • 管理服务器:应用程序,需要网络管理员参与
    • 被管设备:具有可管理、可配置的软硬件组件
    • 数据:即设备状态,包括配置数据、运行数据、设备统计等
    • 网络管理代理:被管设备上用于与管理服务器通信的软件进程
    • 网络管理协议:运行在管理服务器和被管设备之间
  • 管理方式
    • CLI:直接向设备发出命令行接口命令,易出错且不易扩展
    • SNMP / MIB:通过简单网络管理协议(SNMP)查询和设置设备数据
    • NETCONF / YANG:采取更抽象、全网络和整体的观点,强调多设备配置管理

5.7.2 SNMP / MBI

SNMP(简单网络管理协议)

  • 应用层协议,用于在管理服务器和代理之间传递网络管理控制和信息报文
  • 两种模式
    • 请求响应模式:用于查询或修改 MIB 对象值
    • 告警模式:用于通知管理服务器异常情况导致了 MIB 对象值改变
  • SNMP 报文(PDU):7 种类型,一般使用 UDP 传输

MIB(管理信息库)

  • 作用:用于存放被管设备的设备状态数据
  • 定义语言:管理信息结构(SMI)

5.7.3 NETCONF / YANG

NETCONF(Network Configuration Protocol)

  • 定义:一种网络管理协议,目标是主动管理和配置全网设备
  • 核心功能
    • 配置管理:检索、设置、修改设备配置数据
    • 原子操作:支持跨多设备的原子提交
    • 数据查询:查询被管设备的运行数据和统计
    • 事件订阅:订阅由被管设备产生的通知
  • 协议特点
    • RPC 范式:采用远程过程调用,消息格式化为 XML 文档
    • 安全传输:通过 TLS 等安全协议进行通信
  • 会话流程
    1. 初始化:交换 <hello> 消息
    2. 交互:通过 <rpc> 执行操作,接收 <rpc-reply>
    3. 通知:被管设备发送 <notification> 报文
    4. 关闭:使用 <close-session> 终止会话

YANG(Yet Another Next Generation)

  • 定义:一种数据建模语言,用于精确定义 NETCONF 使用的网络管理数据的结构、语法和语义
  • 核心功能
    • 可以从 YANG 描述生成描述设备及其功能的 XML 文档
    • 可以表达有效 NETCONF 配置必须满足的约束

计算机网络知识点整理(5):网络层之控制平面
https://cny123222.github.io/2025/05/09/计算机网络知识点整理-5-:网络层之控制平面/
Author
Nuoyan Chen
Posted on
May 9, 2025
Licensed under