ls路由算法_[Angular, TypeScript, 路由算法] 模拟IP层路由协议,实现LS算法、洪泛算法、DV算法、路由毒化...

路由模拟项目介绍链路状态协议(Link-state routing protocol)和距离向量路由协议(Distance-vector routing protocol)是分组交换(Packet switching)网络中最主要的两种路由协议。本项目的模拟路由器实现了LS路由算法、LS广播洪泛、DV路由算法,以及防止DV路由环路和无穷计数问题的策略。此外还实现了完整的前后端以便研究者通过UI界面...
摘要由CSDN通过智能技术生成

路由模拟项目介绍

链路状态协议(Link-state routing protocol)和距离向量路由协议(Distance-vector routing protocol)是分组交换(Packet switching)网络中最主要的两种路由协议。本项目的模拟路由器实现了LS路由算法、LS广播洪泛、DV路由算法,以及防止DV路由环路和无穷计数问题的策略。此外还实现了完整的前后端以便研究者通过UI界面自定义网络拓扑、控制路由器、查看路由器信息和日志。

链路状态算法(LS)

LS算法要求网络中每个节点都收集完整的网络信息,以邻接表的形式存储整个网络的拓扑结构和所有链路的费用,然后根据这个图来运行路由选择算法(在这里我们选择Dijkstra算法),计算出从本节点到网络中所有其他节点的最低费用路径。

LS广播

为了让每个节点都知道整个网络的拓扑结构和所有链路费用,每个节点都要将自己直连的链路信息广播给网络中的所有节点(LS广播)。要广播的信息包括自己的邻居有哪些、到达它们的链路开销分别是多少。

为了更新它本身存储的网络拓扑图,在接收到其他节点的LS广播时,要根据广播中的链路信息更新自己的邻接表。

同时,在接收到其他节点的LS广播时,要将它转发给自己的所有邻居,从而这个LS广播能散播到整个网络。为了避免广播风暴(广播包在网络中无休止地传播,导致网络瘫痪),每个路由器要辨别接收到的LS广播包是不是已经接收过。这可以通过一个广播包中的序列号字段来做到。每台ls路由器,每次广播使用一个递增的序列号,如果多次收到来自同一台路由器且序号相同的广播,则不更新邻接表,也不转发给邻居,防止广播风暴。

迪杰斯特拉算法(Dijkstra's algorithm)

Dijkstra算法能够计算出图中所有节点到某个节点的最短路径。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值