《计算机网络》课程笔记 (Ch05-网络层:控制平面)

控制平面的主要职责是如何计算和维护路由转发表。

路由选择算法

从发送方到接收方确定一条代价最优的路径。

分类

  • 集中式 / 分布式

    前者知道完整、全局的网络信息,后者只知道与其直接相连链路的开销。

  • 动态 / 静态

    动态算法会随着网络情况变化,但可能有路由震荡问题(频繁改变路由)。

  • 负载敏感 / 负载迟钝

    链路开销是否明确反映拥塞水平。目前主流算法均是负载迟钝的。

链路状态路由选择算法(LS算法)

是集中式的算法。可采用Dijkstra算法实现。

两个集合S、U = Σ - S。Σ 表示全顶点集,S 称为已确定最短路的顶点数组,U 是未确定的。

初始,S 只包含起点。初始化 dis[|Σ|] 数组用于表示起点到该点的最短距离。

  • 从 U 中选出“当前最近的顶点 k ”,将顶点 k 加入 S ,从 U 中移除 k 。

  • 利用 k 更新 U 中各个顶点到起点s的距离。d(s, v) = min(current, (s,k) + (k,v))。

重复上述两步,直到遍历完所有顶点。

如果需要同时获得具体路径,则在第二步更新时,在距离上附带来源顶点即可。

问题 - 路由震荡

当链路开销等于链路上承载的负载时,可能造成路由的反复变化。

距离向量路由选择算法(DV算法)

是分布式的算法。可采用Bellman-Ford算法实现。

节点 x 维护一个距离向量[dis(x→y) : y є N ], 表示 x 到 N 中任意节点 y 的开销估计向量,其到任意邻居 v 的开销为 c(x, v) 。

当 x 发现它的直接相连的链路开销发生变化, 或从某个邻居接收到一个距离向量的更新时, 就会利用 Bellman-Ford 方程更新自己的距离向量。如果确实有变化, 则向邻居发送更新后的距离向量。

Bellman-Ford 方程:dis(x→y) = min {c(x, v) + dis(v→y)} through all v

问题

链路开销变化时,好消息传得快,坏消息传的慢,可能导致无穷计数问题(出现路由选择环路:为了到达x,y要经过z,z又要经过y)。

处理方法:毒性逆转。如果z通过y路由到达x,则z告诉y它到x的距离是无穷大。这可以解决两个直接相连的邻居节点的无穷计数问题。

LS与DV的比较

  • DV是分布式的,LS的集中式的
  • DV算法收敛较慢,可能遇到选路环路和无限计数问题
  • LS算法中若有路由器故障广播不正确的开销,因每台路由器只计算自己的转发表,故影响有限;DV算法中一个不正确的计算结果会扩散到整个网络

AS内部的路由选择 - OSPF

AS:自治系统。由于网络规模越来越大,不可能在全体主机之间运行路由选择算法,而要分层分级,ISP之间运行一个,ISP之内运行一个。这样ISP也可以隐藏自己的网络细节。

开放路由最短路径优先协议OSPF就是AS内部的路由选择策略之一。采用的是LS算法。

路由器会将OSPF连接状态通告所有其他路由器,并且每当一条链路状态发生变化,路由器就会广播链路状态信息。即使链路状态未发生变化, 它也要周期性地广播链路状态。

AS之间的路由选择 - BGP

边界网关协议BGP是AS之间的路由选择策略。它在AS内部运行iBGP会话,在AS之间运行eBGP会话。

上图表示了连接关系和通告子网X的通告流程——内部通告、AS间通告。

有时候,网关路由器可能获得到达某个目的地的多条路径,这时需要使用BGP的路由选择算法来决定。具体有如下几种策略:

  • 本地偏好策略:根据AS的网络管理员设定
  • 最短AS-PATH:通过最少的AS的路径
  • 热土豆路由选择:用最低开销把分组送出该AS,不考虑域间的开销(烫手山芋,尽快丢出去)

SDN控制平面

软件定义网络SDN的主要思想是让配置网络像配置软件一样简单、可伸缩。SDN体系结构有四个特征:

  • 基于流的转发(传统网络是基于目的地的转发)
  • 数据平面与控制平面分离
  • 网络控制功能位于数据平面交换机外部
  • 可编程的网络

ICMP

即因特网控制报文协议。主机和路由器用来交互网络层信息。虽然装在IP数据报中,但它是网络层协议。

猜你喜欢

转载自www.cnblogs.com/zxuuu/p/12977956.html