5网络层控制平面
文章目录
参考博文:
https://blog.csdn.net/qq_53111905/article/details/120587666
5.1导论
回顾网络层功能:
- 转发:将分组从路由器的一数据平面
个输入端口移到合适的输出端口 - 路由:确定分组从源到目标控制平面的路径
2种构建网络控制平面功能的方法:
- 每个路由器控制功能实现(传统)
- 逻辑上集中的控制功能实现(software defined networking)SDN
传统方式:每-路由器(Per-router)控制平面
在每一个路由器中的单独路由器算法元件,在控制平面进行 交互
SDN方式:逻辑上集中的控制平面
一个不同的(通常是远程的)控制器与本地控制代理(CAs) 交互.
上发状态,下发流表
5.2路由选择算法
路由选择算法就是为所有路由器找到并使用汇集树(sink tree)
以网络为单位进行路由(路由信息通告+路由计算) 一个子网 一个子网 进行路由
- 前提条件是:一个网络所有节点地址前缀相同,且物理上聚集
网络到网络的路由 = 路由器到路由器的路由
- 在一个网络中,主机和路由器之间的通信在链路层解决
全局或者局部路由信息?
全局:link state 算法
- 所有的路由器都有完整的拓扑和边的代价
局部:distance vector 算法
- 路由器只知道和它有物理连接关系的邻居路由器,和到相应路由器的代价。
- 迭代的与邻居交换路由信息,计算路由信息。
link state:
![image-20240424082322292](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fcdn.jsdelivr.net%2Fgh%2FLingjie-wang%2Fpicture%40main%2Fimage%2F202404240823510.png&pos_id=img-IQ7pa57M-1720081124373%29)
LS路由选择算法的工作原理
LS (link state) 的应用情况
-
OSPF协议是一种LS协议,被用于Internet上
-
IS-IS(intermediate system- intermediate system): 被用于Internet主干中, Netware
符号标记:
c(i,j): 从节点i 到j链路代价(初始状态下非相邻节点之间的 链路代价为∞)
D(v): 从源节点到节点V的当前路径代价(节点的代价)
p(v): 从源到节点V的路径前序节点
N’: 当前已经知道最优路径的的节点集合(永久节点的集合)
节点标记:
每一个节点使用(D(v),p(v)) 如: (3,B)标记
D(v)从源节点由已知最优路径到达本节点的距离
P(v)前序节点来标注
2类节点:
临时节点(tentative node) :还没有找到从源 节点到此节点的最优路径的节点
永久节点(permanent node) N’:已经找到了从 源节点到此节点的最优路径的节点
- 初始化
-
除了源节点外,所有节点都为临时节点
-
节点代价除了与源节点代价相邻的节点外,都为∞
-
从所有临时节点中找到一个节点代价最小的临时节点,将 之变成永久节点(当前节点)W —— 选择
- 对此节点的所有在临时节点集合中的邻节点(V) —— 更新
- 如 D(v)>D(w) + c(w,v), 则重新标注此点, (D(W)+C(W,V), W)
- 否则,不重新标注
- 开始一个新的循环 —— 循环
时间复杂度:
- (n - 1)* n / 2次比较,O(n ^ 2)
- 在一个比较好的实现下 O(n * logn)
避免广播风暴:1)类似TTL的字段 2)版本号?
distance vector:
距离矢量路由选择的基本思想 以每个点为中心 更新路由表
- 各路由器维护一张路由表,结构如图(其它代价)
- 各路由器与相邻路由器交换路由表(待续) 邻居与邻居交换代价
- 根据获得的路由信息,更新路由表(待续) 每个节点算出代价值,改变路径,更新路由表
实现路由信息的更新
![image-20240424093236763](https://img-blog.csdnimg.cn/img_convert/d16db322ddf4d4a9151fe6859eade19e.png)
特点:好事传得快,坏事传得慢
好消息:某一路由器接入网络或者两个路由器之间有更短的路径
坏消息:(无穷计算问题)两个路由器之间没有路径
对于上面的例子,我的理解是当B -> A的路径断开时,需要经过很长时间才能把其他所有通过B与A相连的节点的路径进行更新
水平分裂算法:一种对于无穷计算问题的解决方案
LS 和 DV 算法的比较
消息复杂度(DV胜出) O(NE)
收敛时间(LS胜出) O(NlogN)
健壮性(LS胜出) 节点之间影响较小
5.3自治系统内部的路由选择
RIP(Routing infomation Protocol):
- 使用DV算法
OSPF(Open Shortest Path first):
- 使用LS算法
层次化的OSPF:
层次性的OSPF路由
2个级别的层次性: 本地, 骨干
链路状态通告仅仅在本地区域Area范围内进行
每一个节点拥有本地区域的拓扑信息;
关于其他区域,知道去它的方向,通过区域边界路 由器(最短路径)
区域边界路由器: “汇总(聚集)”到自己区域 内网络的距离, 向其它区域边界路由器通告.
骨干路由器: 仅仅在骨干区域内,运行OSPF路由
边界路由器: 连接其它的AS’s.
5.4ISP之间的路由选择:BGP
一个平面的路由
一个网络中的所有路 由器的地位一样
通过LS, DV,或者其 他路由算法,所有路 由器都要知道其他所 有路由器(子网)如 何走
所有路由器在一个平 面
平面路由的问题
规模巨大的网络中,路由信息的存储、传输和计算代价 巨大
DV: 距离矢量很大,且不能够 收敛
LS:几百万个节点的LS分组 的泛洪传输,存储以及最短路 径算法的计算
管理问题: (一个平面搞不定)
不同的网络所有者希望按照自 己的方式管理网络
希望对外隐藏自己网络的细节
当然,还希望和其它网络互联
层次路由的实现
层次路由:将互联网 分成一个个AS(路由器 区域)
某个区域内的路由器集 合,自治系统 “autonomous systems” (AS)
一个AS用AS Number (ASN)唯一标示
一个ISP可能包括1个 或者多个AS
路由变成了: 2个层次路由
**AS内部路由:**在同一个AS 内路由器运行相同的路由协议
“intra-AS” routing protocol:内部网关协议
不同的AS可能运行着不同的 内部网关协议
能够解决规模和管理问题
如:RIP,OSPF,IGRP
**网关路由器:**AS边缘路由器 ,可以连接到其他AS
AS间运行AS间路由协议
“inter-AS” routing protocol:外部网关协议
解决AS之间的路由问题,完成AS之间的互联互通
层次路由的优点:
解决了规模问题
- 内部网关协议解决:AS内部数量有限的路由器相互到达的间题,AS内部规模可控
- 如AS节点太多,可分割AS,使得AS内部的节点数量有限
AS之间的路由的规模问题
- 增加一个As,对于AS之间的路由从总体上来说,只是增加了一个节点=子网(每个AS可以用一个点来表示)
- 对于其他AS来说只是增加了一个表项,就是这个新增的AS如何走的问题
扩展性强:
- 规模增大,性能不会减得太多
解决了管理问题
- 各个AS可以运行不 同的内部网关协议
- 可以使自己网络的细节不向外透露
BGP (Border Gateway Protocol):自治区域间路由协议"事实上的"标准
"将互联网各个AS粘在一起的胶水”
BGP提供给每个AS以以下方法:
- eBGP:从相邻的ASes那里获得子网可达信息 —— 从外部获取
- iBGP:将获得的子网可达信息传遍到AS内部的所有路由器 —— 向内部传(网关路由器同时运行eBGP和iBGP协议)
- 根据子网可达信息和策略来决定到达子网的"好"路径
- 允许子网向互联网其他网络通告"我在这里”
- 基于距离矢量算法(路径矢量)
- 不仅仅是距离矢量,还包括到达各个目标网络的详细路径(AS序号的列表)能够避免简单DV算法的路由环路问题
内部网关协议:关注性能;
外部网关协议:关注策略
5.5SDN控制平面
逻辑上集中的控制平面:
网络可编程,管理更容易
特点:基于流表的匹配 + 行动
SDN控制器(网络OS):
网络控制应用:SDN控制器之上,两者通过北向接口连接
5.6ICMP:因特网控制报文协议
Internet Control Message Protocol
5.7网络管理:SNMP和NETCONF/YANG(略)
ternet Control Message Protocol