计算机网络知识点整理(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 算法:计算从源节点到所有其他节点的最低路径开销
- 迭代:经过 次迭代后,得知 个目的地的最低成本路径
算法步骤
- 初始化集合 (源节点)
- 为所有节点 初始化距离 (直连链路成本)
- 循环直到 包含所有节点:
- 选择不在 中且 最小的节点
- 将 加入
- 更新 的邻居节点 的
讨论
- 算法复杂度:, 个节点(可以堆优化)
- 路由振荡:链路成本取决于流量,解决方法是异步算法或随机通告
5.2.3 距离向量路由算法
核心特点
- 分布式:从邻居接收信息,执行计算后将结果分发给邻居
- 迭代:过程持续到邻居之间无更多信息交换(自停止)
- 异步:所有节点不要求步伐一致地操作
- Bellman-Ford 方程:
算法流程
- 节点不时地向邻居发送自己的距离向量
- 直接相连的链路开销变化 / 收到邻居的更新时,更新本地距离向量(Bellman-Ford 方程)
- 若本地距离向量变化,通知所有邻居
- 距离向量:某节点到所有其他节点的开销估计向量
- 收敛性:估计值能收敛到实际最低开销
缺点
- 交换的路径信息量大
- 路径信息不一致
- 收敛速度慢(坏消息)
- 不适合大型网络
问题与解决
- 路由选择环路:好消息传播得快,坏消息传播得慢(无穷计数问题)
- 毒性逆转:对上游节点,通告距离无穷大
5.2.4 LS 与 DV 算法对比
特性 | 链路状态(LS) | 距离向量(DV) |
---|---|---|
计算位置 | 集中式(Dijkstra) | 分布式(Bellman-Ford) |
信息传播 | 全局洪泛链路状态 | 邻居间交换距离向量 |
消息复杂度 | 个报文 | 相邻节点交换报文 |
收敛速度 | 较慢且可能遇到路由环路 | |
健壮性 | 仅计算自身转发表,路由计算分离 | 错误会在网络中扩散 |
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 获得前缀的可达性信息
- 允许每个子网向互联网的其余部分通告它的存在
- 确定到该前缀的“最好的”路由
- 从邻居 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 内开销的本地网关
-
路由选择算法:(优先级由高到低)
- 选择具有最高本地偏好值(策略决定)的路由
- 选择具有最短 AS-PATH 的路由
- 选择具有最靠近 NEXT-HOP 路由器的路由(热土豆)
- 使用 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 等安全协议进行通信
- 会话流程:
- 初始化:交换
<hello>
消息 - 交互:通过
<rpc>
执行操作,接收<rpc-reply>
- 通知:被管设备发送
<notification>
报文 - 关闭:使用
<close-session>
终止会话
- 初始化:交换
YANG(Yet Another Next Generation)
- 定义:一种数据建模语言,用于精确定义 NETCONF 使用的网络管理数据的结构、语法和语义
- 核心功能:
- 可以从 YANG 描述生成描述设备及其功能的 XML 文档
- 可以表达有效 NETCONF 配置必须满足的约束
计算机网络知识点整理(5):网络层之控制平面
https://cny123222.github.io/2025/05/09/计算机网络知识点整理-5-:网络层之控制平面/