第5章:网络层控制平面
本章目标:理解网络层控制平面的工作原理
传统路由选择算法
SDN 控制器
ICMP:Internet Control Message Protocol
网络管理(略)以及它们在互联网上的实例和实现:
OSPF, BGP, OpenFlow, ODL 和ONOS控制器, ICMP, SNMP
5.1 导论
网络层功能
回顾:2个网络层功能:
- 转发:将分组从路由器的一数据平面
个输入端口移到合适的输出端口 - 路由:确定分组从源到目标控制平面的路径
2种构建网络控制平面功能的方法:
-
每个路由器控制功能实现(传统)
-
逻辑上集中的控制功能实现(software defined networking)
传统方式:每-路由器(Per-router)控制平面
在每一个路由器中的单独路由器算法元件,在控制平面进行 交互
SDN方式:逻辑上集中的控制平面
一个不同的(通常是远程的)控制器与本地控制代理(CAs) 交互.
上发状态,下发流表
5.2 路由选择算法
link state distance vector
路由(route)的概念
-
路由:按照某种指标(传输延迟,所经过的站点数目等)找到一条从源节点到目标节点的较好路径
- 较好路径: 按照某种指标较小的路径
- 指标:站数, 延迟,费用,队列长度等, 或者是一些单纯指标的加权平均
- 采用什么样的指标,表示网络使用者希望网络在什么方面表现突出,什么指标网络使用者比较重视
-
以网络为单位进行路由(路由信息通告+路由计算) 一个子网 一个子网 进行路由
- 网络为单位进行路由,路由信息传输、计算和匹配的代价低
- 前提条件是:一个网络所有节点地址前缀相同,且物理上聚集
- 路由就是:计算网络 到其他网络如何走的问题
-
网络到网络的路由= 路由器-路由器之间路由
- 网络对应的路由器 到 其他网络对应的路由器的路由
- 在一个网络中:路由器-主机之间的通信,链路层解决
-
到了这个路由器就是到了这个网络
网络的图抽象
N = 路由器集合 = { u, v, w, x, y, z }
E = 链路集合 ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } 边有代价
图抽象:边和路径的代价
• c(x,x’) = 链路的代价 (x,x’) - e.g., c(w,z) = 5
•代价可能总为1
•或是 链路带宽的倒数
•或是 拥塞情况的倒数
路由的输入:拓扑、边的代价、源节点
输出的输出:源节点的汇集树
最优化原则(optimality principle)
- 汇集树(sink tree) —— Dijkstra算法、Bellman-Ford算法
- 此节点到所有其它节点的最优路径形成的树 (源节点) 到源节点的最短距离
- 路由选择算法就是为所有路由器找到并使用汇集树
路由的原则
路由选择算法的原则
- 正确性(correctness):算法必须是正确的和完整的,使分 组一站一站接力,正确发向目标站;完整:目标所有的 站地址,在路由表中都能找到相应的表项;没有处理不 了的目标站地址;
- 简单性(simplicity):算法在计算机上应简单:最优但复杂 的算法,时间上延迟很大,不实用,不应为了获取路由 信息增加很多的通信量;
- 健壮性(robustness):算法应能适应通信量和网络拓扑的 变化:通信量变化,网络拓扑的变化算法能很快适应; 不向很拥挤的链路发数据,不向断了的链路发送数据;
- 稳定性(stability):产生的路由不应该摇摆
- 公平性(fairness):对每一个站点都公平
- 最优性(optimality):某一个指标的最优,时间上,费用 上,等指标,或综合指标;实际上,获取最优的结果代价较高,可以是次优的
路由算法分类
全局或者局部路由信息?
全局:
所有的路由器拥有完整的拓和边的代价的信息
“link state” 算法
分布式:
路由器只知道与它有物理连接 关系的邻居路由器,和到相应 邻居路由器的代价值
叠代地与邻居交换路由信息、 计算路由信息
“distance vector” 算法
静态或者动态的?
- 静态:
路由随时间变化缓慢
非自适应算法(non-adaptive algorithm): 不能适应网络拓扑和通信量的变化,路由表是事先计算好的 - 动态:
路由变化很快
周期性更新
根据链路代价的变化而变化
自适应路由选择(adaptive algorithm):能适应网络拓扑和通信量的变化 —— 网络拓扑状态和边的代价状态