趣谈网络协议01

在极客时间上找到了一个比较有意思的关于网络的课程

计网的知识也快忘光了,顺便补一补

记录一个问题

如果一个局域网里面有多个交换机,ARP 广播的模式会出现什么问题呢?

ARP广播时,交换机会将一个端口收到的包转发到其它所有的端口上。
比如数据包经过交换机A到达交换机B,交换机B又将包复制为多份广播出去。
如果整个局域网存在一个环路,使得数据包又重新回到了最开始的交换机A,这个包又会被A再次复制多份广播出去。
如此循环,数据包会不停得转发,而且越来越多,最终占满带宽,或者使解析协议的硬件过载,行成广播风暴。

 

 

动态路由算法

  1. 距离矢量路由算法,它是基于 Bellman-Ford 算法的。这种算法的基本思路是,每个路由器都保存一个路由表,包含多行,每行对应网络中的一个路由器,每一行包含两部分信息,一个是要到目标路由器,从那条线出去,另一个是到目标路由器的距离。由此可以看出,每个路由器都是知道全局信息的。那这个信息如何更新呢?每个路由器都知道自己和邻居之间的距离,每过几秒,每个路由器都将自己所知的到达所有的路由器的距离告知邻居,每个路由器也能从邻居那里得到相似的信息。

    好消息传的快,坏消息传的慢。

    每次发送的时候,要发送整个全局路由表。

  这两方面,限制了距离矢量路由的网络规模。

  2.链路状态路由算法,基于 Dijkstra 算法。

  这种算法的基本思路是:当一个路由器启动的时候,首先是发现邻居,向邻居 say hello,邻居都回复。然后计算和邻居的距离,发送一个 echo,要求马上返回,除以二就是距离。然后将自          己和邻居之间的链路状态包广播出去,发送到整个网络的每个路由器。这样每个路由器都能够收到它和邻居之间的关系的信息。因而,每个路由器都能在自己本地构建一个完整的图,然后针        对这个图使用 Dijkstra 算法,找到两点之间的最短路径。不像距离距离矢量路由协议那样,更新时发送整个路由表。链路状态路由协议只广播更新的或改变的网络拓扑,这使得更新信息更          小,节省了带宽和 CPU 利用率。而且一旦一个路由器挂了,它的邻居都会广播这个消息,可以使得坏消息迅速收敛。

posted @ 2021-09-17 08:13  大雄的脑袋  阅读(101)  评论(0编辑  收藏  举报