实验三-网络路由层协议模拟实验报告_第1页
实验三-网络路由层协议模拟实验报告_第2页
实验三-网络路由层协议模拟实验报告_第3页
实验三-网络路由层协议模拟实验报告_第4页
实验三-网络路由层协议模拟实验报告_第5页
已阅读5页,还剩3页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二网络路层协议拟实验报告(1)验目的和要

掌握VBVC++或JAVA集成开发环境编写路由仿真程序的方法;理解并掌握距离向量路由协议和链路状态路由协议的工作原理。(2)验内容实现链路状态路由算法的模拟。基本要(动态生成网络拓扑图点间的距离随机生成每节点生成自己的链路状态分组,依据收到的链路状态表得到整体网络结构,在得到的整体网络结构上用最短路径算法,生成每个节点的路由表)(3)离矢量路由法的原距离向量路由算Bellman-FordAlgorithm),作为距离向量协议的一个算法如(RIP跳最跳数16)。使用这个算法的路由器须掌握这个距离表,它告诉在网络中每个节点的最远和最近距离离表中的这个信息是根据临近接点信息的改变而时时更新的个在算法中的度量公式是跳跃的次数时间出据包的数量等等。概括地说离向量算法要求每个路由器把它的整个路由表发送给与它直接连接的其它路由器表的每一条记录都括目标逻辑地址的网络接口和该条路由的向量距离。当一个路由器从它的相邻处收到更新信息时会将更新信息与本身的路由表相比较果该路由器比较出一条新路由或是找到一条比当前路由更好的路由时,它会对路由表进行更新该由器到邻居之间的向量距离与更新信息中的向量距离相加作为新路由的向量距离在离向量路由算法中相路由器之间周期性地相互交换各自的路由表备份网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更信息。距离矢量路由算法在理论中可以工作在实践中有一个严重的缺陷然它总是能够达到正确的答案,但是它收敛到正确答案的速度非常慢,尤其是,它对于好消息的反应非常快,但是对于坏消息的反应非常迟缓。(4)序源代码(语言)的文ROUTNUM7//定路由的个数为7个{int//存迟大小intfrom;//存下一跳的路}RoutNode;

RoutNodedata[ROUTNUM][ROUTNUM];/*由表,能存7行列数据数据为权*voidInitData(FILE*pfile);/*从数据文件读取数,初始化路由*voidOutputRoutData();/*输出所有的路由表*voidCommunication(intint点点送自己的路由*void/*所有节点进行一次数据交换更路由表*void{intstart,i,j;FILEpfile=fopen("1.txt","r");if(pfileNULL){printf("件打开错误,按任意键退.\n");return;}printf("\n路表初始\n");InitData(pfile);fclose(pfile);for(i=i<ROUTNUM;i++){i+for(j=j<ROUTNUM;if(data[i][j].disprintf("<%cj65,data[i][j].dis);printf("\n");}//显各路由的路由表for(i=i<ROUTNUM;//环次好像多余,改成一次得到同样结果){Exchange();}printf("\n路表交换\n");OutputRoutData();printf("入起始路由节点数字%d-%d)[0表A,代表B...]:-1);&start);printf("入终点路由节点数字%d-%d)[0表A,代表B...]:-1);if==end||<0||0||end>

{printf("\n输错误,请按任意键退\n");return;}{intcurinttotal=0;if<0){printf("有路由路径发现!\n");return;}printf("%c->",cur>=0)//起始点与终点不相连0是A{totaldata[cur][data[cur][end].from].dis;变与下一跳的延迟printf("%c->",data[cur][end].from+curdata[cur][end].from;//起路由变成下一跳}totalprintf("%c\n总路由距离return;}}voidInitData(FILE*pfile){num[10];inti=0;int0,//文件指针从距位置离开始读取for(m=0;!feof(pfile)&&<7;m++)//feof(pfile),文尾返回1不是返回0.即不是文件尾部且循{for(n=!feof(pfile)&&<7;n++){(!feof(pfile)){

c=fgetc(pfile);//读取单个字节if/*读完一个数*{num[i]//赋值为空=将符变成数字,将路由权值给data[m][n].from=//接相连下一跳全都赋值-i=break;}/*endofif*/if&&c<=||c=='-')/*如果读到数字或符号.本题路由权值只能到{num[i++]=}/*endofif*/}/*endof}/*endof(n=0*/}/*endof(m=0*/}voidOutputRoutData(){inti,j;for(i=i<ROUTNUM;{",i+}printf("\n");for(i=i<ROUTNUM;{printf("%c",i+for(j=j<ROUTNUM;{if(data[i][j].dis//如果无路径if(data[i][j].dis>=10)%d",data[i][j].dis);data[i][j].dis);if(data[i][j].from<0)//如果未经过其它节点所以直接相连的路由下一跳为1-");

data[i][j].from+//出下一跳路由}printf("\n");}}voidCommunication(intint//相连的两路由和send交数据计算一次得到暂时最短距离{inti;for(i=i<ROUTNUM;{if(data[send][i].dis>0)//果send节到i号节点有路线{if<如果到i号点无路径{+第一种recv不i相,到与他相连的i的迟data[recv][i].from=send;//下跳为send}if(data[recv][i].dis>data[send][i].dis+二种与i相连,且直接相连值大于间接到i的迟//如果现有路径比新路径远{+将到i的延迟改为间接延迟的值data[recv][i].from=send;//下一跳改为send}}}}void//实所有相连的两路由进行数据交换并计算最短数值{inti,j;for(i=i<ROUTNUM;{for(j=j<ROUTNUM;{if(data[i][j].dis//如果两个节点之间有路径

{Communication(j,i);

//将i号节点的路由表发送给j号点}}}}/*1.text中者路由信息8,-1,0,4,5,-1,-1,-1,-1,4,9,-1,-1,0,1,-1,-1,8,-1,-1,1,0,-1,7,-1,-1,9,-1,-1,3,5,-1,-1,-1,7,3,数值代表权值(如延迟大小)表目的网络到其本身代无法直接相*/网络拓扑结构C

F

BA8

GD

E(5)验结果

()实验总结在输入代码后发生错误因程序中用了函数开头没有定#include<conio.h>修改过之后程序运行正确始由节点输入为3终路由节点输入为结输出如图。其最短的距离为9.多次证均正确实验的路由表由一个而为数组结构体实现组名代表两个相关路由,结构体中存放延时和下一跳。路由表初始信息从文件读取据距离向量路由算法系统自动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论