资源描述:
《计算机网络实验报告(路由算法、socket编程)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机网络实验报告班级:姓名:学号:实验一一.实验目的及要求编写程序,模拟距离矢量路由算法的路由表交换过程,演示交换后的路由表的变化。二.实验原理距离矢量路由算法是这样工作的:每个路由器维护一张路由表(即一个矢量),它以网络中的每个路由器为索引,表中列出了当前已知的路由器到每个目标路由器的最佳距离,以及所使用的线路。通过在邻居之间相互交换信息,路由器不断地更新他们的内部路由表。举例来说,假定使用延迟作为“距离”的度量标准,并且该路由器发送一个列表,其中包含了他到每一个目标路由器的延时估计值;同时,他也从每个邻居路由器接收到一个类似
2、的列表。假设一个路由器接收到来自邻居X的一个列表,其屮X(i)表示X估计的到达路由器i所需要的时问。如果该路由器知道他到X的延时为m毫秒,那么他也知道在x(i)毫秒之间内经过x可以到达路由器i。一个路由器针对每个邻居都执行这样的计算,就可以发现最佳的估计值,然后在新的路由器表中使用这个最佳的估计值以及对应的输出路线。三•源程序:#include"stdio.h"include"stdlib.h"#include"malloc.h"#inelude"graphics.h"#include"dos.h"#defineVERNUM7ty
3、pedefstruct{intdis;intflag;intflag2;}RoutNode;chartmp[10];RoutNodedata[VERNUM][VERNUM];voidwelcome();voidlnitRoutData(FILE*pfile);voidPrintRoutData();voidSendlnf(intreev,intsend);voidExchange();intmain(){intstart,end,i,j,m,n;FILE*pfile;welcome();pfile=fopen("l.txt,,/"
4、r");讦(pfile==NULL){printf("thefilewrong,pressanykeytocomeback.");getch();return;}elseInitRoutData(pfile);fclose(pfile);printf("theoriginalroutetable:“);for(i=0;i5、
6、”,i+65);for(j=0;j0)printf("<%c%d>",j+65,data[i
7、][j].dis);printf("n);}PrintRoutData();getch();for(i=0;i8、EGAVGA_driver);initgraph(&gdriver,&gmode,"C:Win-TC");cleardevice();setbkcolor(CYAN);setviewport(0,0,639,479,1);clearviewport();setbkcolor(BLUE);setcolor(14);rectangle(200,200,440,280);setfillstyle(l,5);floodfill(300,240,14);settextstyle(0,0,2);outtextxy(50,30,"Distan
9、ceVectorRoutingAlgorithm");setcolor(15);settextstyle(l,0,4);outtextxy(260,214,"Welcometouse!");line(0,80,640,80);getch();delay(300);cleardevice();}voidlnitRoutData(FILE*pfile){charnum[10];inti=0;charc;intm,n;fseek(pfile,0,0);for(m=0;ifeof(pfile)&&mv7;m++){for(n=0;!feo
10、f(pfile)&&n<7;n++){while(Ifeof(pfile)){c=fgetc(pfile);if(c==7){num[i]=、0‘;data[m][n].dis=atoi(num);data[m][n].flag=0;data[m]