文章目录
第五章 网络层:控制平面
5.1 路由选择算法
路由基础知识
路由:按照某种指标(传输延迟、经过的站点数量等)找到一种从源节点到目标节点的较好路径。
路由选择算法:网络层软件的一部分,完成路由功能。
路由的原则:
- 稳定性:产生的路由不应该摇摆
- 公平性:对每一个站点都公平
- 最优性:某一个指标(时间、费用等)的最优;实际上获取最优的代价较高,可以是次优解。
路由选择算法分类:
- 全局算法:链路状态算法
所有的路由器都拥有完整的拓扑和边的代价信息。 - 分布式算法:距离矢量算法
路由器只知道与它有物理连接关系的邻居路由器,和到邻居路由器的代价值。
链路状态算法(link state) --全局
整体思路
- 各点通过各种渠道获得整个网络拓扑,网络中所有链路代价等信息
- 使用LS路由算法,计算本站点到其他站点的最优路径,得到路由表
- 按照此路由表转发分组
执行流程:
- 发现相邻接点,获知对方网络地址。
- 测量到相邻节点的代价(延迟、开销等)
- 组装一个LS分组,描述它到相邻接点的代价情况
- 将分组通过泛洪的方式发送到所有其他路由器
- 通过Dijkstra算法找到最短路径
距离矢量算法(distance vector) --分布式
基本思想:
- 各路由器维护一张路由表
- 各路由器与相邻路由器交换路由表
- 根据获取的路由信息,更新路由表
目标地址 | 邻居地址 | 代价 |
---|---|---|
Z | B | 15 |
上面的路由表是A获取的B的路由表
即B到达Z的代价是15, A到B的代价+15就等于A通过B路线到Z的代价。
特点:
- 异步、迭代:
什么时候更新路由表(本地链路代价发生变化、从邻居传来了DV的更新消息) - 分布式:
每个节点只是在自己的DV改变之后向邻居通告;每个节点只管自己和邻居,不操心其他节点。 - 好消息传得快,坏消息传的慢
LS和DV的比较
- 时间复杂度(DV好)
LS:需要泛洪获取整个网络拓扑
DV:只和邻居交换信息 - 收敛时间(LS好)
LS:只要获取到拓扑即可
DV:可能存在环装路由问题(坏消息传的慢) - 健壮性(LS好)
LS:每个节点只计算自己的路由表,错误信息影响较小
DV:每个节点的路由表可能被其他节点使用,错误可以扩散到全网
5.2 自治系统内部的路由选择
RIP(Routing Information Protocol)
采用距离矢量DV算法
定期,每隔30秒交换通告报文
如果180秒没有收到通告信息–》邻居或者链路失效
网络层的协议使用了传输层的服务,以应用层实体的方式实现
OSPF(Open Shortest Path First)
采用链路状态(LS)算法
LS分组在一个网络中分发
全局网络拓扑、代价在每一个节点中都保持
高级特性(RIP中没有):
安全:所有的OSPF报文都是经过认证的
允许有多个代价相同的路径存在
在大型网络中支持层次性SOPF(本地路由器、骨干路由器)
5.3 ISP之间的路由选择
层次路由:将互联网分成一个个AS(路由器区域)
路由器变成了2个层次路由:
eBGP
从相邻的AS获取子网可达信息,更关注策略
iBGP
将获得的子网可达信息传遍AS内部的所有路由器,关注性能
5.4 SDN控制平面(Software Defined Network)
传统方式:在每一个路由器中的单独路由器算法元件,在控制平面进行交互
SDN方式:一个通用的控制器和本地代理(CAS)交互
SDN特点:
- 通用,基于流的匹配+行动
- 控制平面和数据平面分离
- 控制平面功能在数据交换设备之外实现
- 可编程控制应用
- SDN控制器
维护网络状态信息
通过上面的北向API和控制应用交互
通过下面的南向API和网络交换机交互
逻辑上集中,但是实现上可能是分布式的 - 数据平面交换机
采用硬件实现通用转发功能
流表被控制器计算和安装 - 控制应用
控制的大脑
SDN面临的挑战:
强化可靠、可信、可扩展、安全的分布式系统
网络、协议满足特殊任务需求:如实时性