计算机网络——第五章(网络层,控制平面)

文章中所有图片均来自中科大郑烇教授在b站发布的——“中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程”

网络层(控制平面):

路由的概念:

在这里插入图片描述
路由就是通过比对实现在路由设备上的对应表项找到通向目的主机的下一个地址
在传统方式下,路由器通过比对目的主机的地址,然后通过自生的路由表得知需要向哪个ip转发,从而知道需要向哪个端口走
路由的确定是通过相应的路由算法决定的,不同的路由算法的对于是否采用这条路由的标准也是不一样的。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
路由计算的问题也就是找最优路径的问题(当前这个最优路径只是相对于某一种路由算法来说的)
在这里插入图片描述
路由算法帮助各个路由器找到该点到各个点的最优路径,也就是该点的汇聚树
在这里插入图片描述
在这里插入图片描述

路由算法:

在这里插入图片描述
路由算法主要分为两类,链路状态算法和距离矢量算法
距离矢量算法随着拓扑的变化进行路由表的调整,链路状态算法则不会随着拓扑的变化进行路由表的调整,或者说变化较慢,需要等到下一次的链路状态交换再一次进行路由的计算
同时可以分为静态路由算法和动态路由算法,链路状态和距离矢量算法都是动态路由算法之一

链路状态算法

在这里插入图片描述
通过迪杰斯特拉算法算出一个节点到所有节点的最优路径
通过泛洪的方式将自身的链路状态通过其他接口传输到全网,通过这样的方式得到一个图,通过迪杰斯特拉算法得到到某一个主机的最短路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主要进行主机的发现和链路状态的测试,估算自己对于链路的开销,组装一个分组携带所有相邻链路状态
在这里插入图片描述
将链路状态通过泛洪的方式扩散到其他路由器,这样所有路由器都获得了网络中所有的链路状态信息,但是泛洪存在一个问题:广播风暴问题,因为网络结构中通常存在环路,很可能因为一个环路,将原来由此发出的包又发回来了。为了解决这个问题使用了两个手段:使用age字段,这个类似于ttl字段,每次到达一个路由器age值减1;使用seq字段,相对于版本号,当路由器受到一个链路状态分组需要记录下其版本号和源主机,当之后收到这个源主机的链路状态包且seq小于等于当前记录的值,这个链路状态分组可以不转发
在这里插入图片描述
当获得了所有的链路状态分组信息,就可以使用迪杰斯特拉算法记录当前节点到各个节点的最优路径了
迪杰斯特拉算法具体过程可在数据结构专栏中找到(待更新)

距离矢量算法:

在这里插入图片描述
距离矢量算法是动态算法之一,每个路由器维护一张路由表,到达时间交换路由表,通过交换的路由表得到的信息计算最优路径
在这里插入图片描述
通过其他其他相邻路由器的转发表和自己的路由表比较得到到某一个点的最优路径(时延,跳数)
在这里插入图片描述
在这里插入图片描述
主要就是使用动态规划的方式,找到最小路径
在这里插入图片描述
距离矢量算法的特点之一:好消息传得快,因为当一个路由器得到一个更优的路径的时候,在下一个周期就可以转发给所有的相邻路由器,通过指数级的扩散,最终传遍全网
在这里插入图片描述
特点二:当一个节点宕机,相邻的路由器B不会马上察觉到,当删除了对应的路由条目,这是否以这个B为下一条到达宕机主机的路由器A发来了一个路由表,这个路由表存在宕机路由器条目,这样B就会误以为从A路由器可以前往宕机主机,更新路由表,将向宕机主机的路由条目的下一条改为路由器A;但是显然这样时到达不了宕机主机的,但是双方难以察觉,只有通过B再次发生路由表到A,这样A的路由表中因为下一条为B,因为B的路由由A来所有跳数+1;然后A重发路由表到B,因为B的路由表的下一条为A所以跳数+1,通过这样的方式,到达跳数的最大值,路由才能消除
在这里插入图片描述
通过水平分裂的方式,可以防止上述的情况,但是当出现三角或者更多的环状结构时,还是不能有效防止
在这里插入图片描述
在这里插入图片描述
距离矢量协议的时空表,不同的列表示的是不同的路由器的路由表项,不同的行表示在不同的时间,指向线表示通过学习从某处来的路由表通过运算得到了新的路由表

在这里插入图片描述
收敛时间:因为DV算法需要进行一层一层的传播,而不是像LS一样泛洪,这就导致了,收敛的时间较慢的特点
对于健壮性,链路状态算法泛洪的是周边的链路状态信息,而距离矢量算法可以广播该节点到所有节点的代价,这导致了在距离矢量算法中,当出现了一个坏的路由器这个路由器向全网广播它到所有节点的距离都最短的情况,会导致路由黑洞,而链路状态只广播相邻链路的代价,这样导致,当不经过这条链路的路径没有受到影响

自治系统内部的路由选择:

在这里插入图片描述在这里插入图片描述
上述主要是RIP协议的对于相邻路由器的通告过程
在这里插入图片描述
在这里插入图片描述
路由表的替换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以在路由表中存在多个代价的路由,可以实现负载均衡
在这里插入图片描述
将网络分为骨干和本地区域,骨干区域为area0,主要用于沟通各个本地区域
在这里插入图片描述
层次化,区域间进行泛洪,到area0,再通过area0到各个子网
在路由的时候可以通过路由到边界路由器,再到area0,由area0到目标子网的边界路由器
这样使用ospf不会泄露本地网络的拓扑结构,而且本地网络可以自生泛洪链路状态,而不用到其他的区域,通过边界路由器将本地网络的路由信息发送给area0,这样可以减少泛洪,利于提供带宽的实际上的利用率

ISP之间的路由选择:BGP

在这里插入图片描述
如果网的范围太大,使用距离矢量算法和链路状态算法都会造成很大的时间代价
如果全球去都使用同一个路由算法,没有很好的大范围的算法,而且对于私有网络可能有自己的诉求使用其他的算法
这样就可以保证在自治区域内可以使用距离矢量算法或者链路状态算法
对于规模性问题,自治区的大小有限可以有效的使用距离矢量算法或者链路状态算法
自治区之间的路由问题变小

在这里插入图片描述
eBGP:一个内网的网关部分和骨干网的对等方
rBGP:骨干网中除了对于的eBGP所有的其他路由器
通过eBGP接收AS的子网可达信息,然后交给rBGP
BGP通过对于距离矢量算法的改良,不仅传输通过的代价,而且将详细的路径传输给目标,这样有利于加速收敛
在这里插入图片描述
1c通过内部路由协议,收集内网的路由可达信息,然后通过bgp协议通告给2a,2a通过内部的路由协议将路由信息送到内部,然后2c通过bgp协议将路由信息送到3a,以此类推
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
路径通告中如果是从其他自治区域收到的信息,需要转发到另一个自治区域需要在路径上添加自己本地网络的标志,这也就是前面说的记录路径的功能,这样有利于加速收敛,当发现了环路可以即使抛弃
在这里插入图片描述
通过策略给各个路径打分,通过评分选择路径

在这里插入图片描述
在这里插入图片描述
1a到X查路由表只需要发向某个端口转发就可以通过各个路由器最终到达X
在这里插入图片描述
在这里插入图片描述
通过比较2d到达网关的最小代价为标准,选择路径

SDN控制平面:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
传统方式和SDN方式比较,传统方式使用垂直集成的方式,将控制平面和数据平面集成在路由器中,而SDN方式通过水平集成的方式将两个平面分开
在这里插入图片描述
使用SDN方式可以便捷的编程实现网络中的各种功能
在这里插入图片描述
PC的演化过程也是由垂直集成到水平集成的
在这里插入图片描述
对于分流传输,路由器难以实现,因为路由表是唯一的,而比对的字段也只有目的ip地址,但是在SDN方式下,流量的分流传输可以比较不同的字段匹配不同的流表来实现
在这里插入图片描述
在SDN方式下,控制器下发的流表包括多个匹配字段,分组交换机可以通过多个字段的匹配决定对于通过一个目标的主机,需要走哪个端口

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值