一、实验目的
模拟 RIP 路由选择算法的工作原理。
二、实验内容
针对上述网络结构,模拟 RIP 路由选择算法的工作原理,包括各个路由表的 建立更新过程,设计简单的图形界面。
三、实验原理
1.路由器刚启动时,对其路由表进行初始化。
2.路由表建立后,路由器周期性地向相邻路由器广播自己的路由表信息。假 设 R1,R2 是一个自治系统中两个相邻的路由器。如果 R1 中没有这项纪录,R1 在 路由表中增加该项,由于要经过 R2 转发,所以距离加 1;如果 R1 路由表中的一 项记录比 R2 发送的一项记录距离值减一还要大,R1 则在路由表中修改该项,距 离根据 R2 提供的值再加 1。 3.RIP 路由更新算法中,每隔 30 秒在相邻的路由器之间减缓依稀路由更新信 息,产生一个随机延迟信息,当记录在 180 秒内没有收到刷新信息时,,路由器 将该记录置为无效,如果无效的记录持续时间超过 120 秒,则请出该项信息。
四、实验代码
1.Client类:
package RIM;
public class Client {
public static StringBuffer source = new StringBuffer();
public static StringBuffer aim = new StringBuffer();
public static final int SUM = 10;
private static Router[] routers = createRouter();
public static void makeAll() {
for(Router r : routers){
source.append(r.getInfo());
}
for(Router r : routers)
r.send();
for(Router r : routers){
aim.append(r.getInfo());
}
}
public static void refresh(){
source = new StringBuffer();
for(Router r : routers){
source.append(r.getInfo());
}
for(Router r : routers)
r.send();
aim = new StringBuffer();
for(Router r : routers){
aim.append(r.getInfo());
}
}
public static Router[] createRouter(){
Router[] routers = new Router[SUM];
for (int i = 0; i < SUM; i++){
routers[i] = new Router("Router"+i);