大二下学期的计算机网络原理课程设计
已同步github
url:https://github.com/leiflee/ripdemo
git:https://github.com/leiflee/ripdemo.git
一、设计题目:距离矢量路由选择算法的模拟实现
二、设计要求
(1)掌握距离矢量路由选择选择算法的工作原理。
(2)采用C、Java等编程语言实现距离矢量路由选择选择算法。
算法输入:
带权图G,如图1所示。
算法输出:
(1)某个顶点v(路由器)在第i次周期后的整个路由表。
(2)路由表的结构<目的网络,跳数,下一跳>目的网络,跳数,下一跳>
三、设计思路
距离矢量路由选择选择算法有多种,本设计采用的是比较经典的RIP协议,根据设计要求,只要求输出路由器在第i次周期后的整个路由表,为突出设计要求,本设计简化了RIP协议,与RIPv1,RIPv2和RIPng相比,本设计精简了水平分割、毒性逆转和抑制计时功能,本设计采用手动触发更新,即:手动输入循环周期i次,然后执行i次更新,并输出结果。
系统中涉及到三个对象,network,router,routertable,分别表示网络空间,路由器,路由表。其中,系统一共具有1个网络,网络中包括至少一个路由器,每个路由器拥有一个路由表。
系统执行大致分为三个阶段:
阶段一,系统读取配置文件./config/network.properties,通过其中的配置项来初始化网络空间,建立路由表,建立邻接关系。
阶段二,系统提示用户输入周期i,用户将输入反馈给系统。
阶段三,系统根据用户输入,执行响应轮次的路由表更新,输出结果。
配置文件书写规则:
e.g.
routernum=6 //路由器数量networknum=7 //网络数量0=0 //左侧表示路由器编号,右侧表示网络编号1=0,1,3,4 //路由器和网络号都从0开始计数2=1,2 //右侧为该路由器连接的网络,中间用英文","隔开3=3,64=35=4,5
四、源码