- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络实验报告
学号:
姓名:
班级:
学院:信息科学与工程学院 指导老师:
实验一:距离向量路由算法的实现
1.1 实验目的
模拟距离向量路由算法的路由表交换过程,演示每轮交换后路由表的变化。
1.2 实验内容
要求编程实现距离矢量路由算法的路由表交换过程,并动态演示每轮交换 过后路由表的变化情况。
1.3 实验原理
距离向量路由算法,使用这个算法的路由器必须掌握这个距离表(它是一 个一维排列,即一个向量),它告诉在网络中每个节点的最远和最近距离。在 距离表中的这个信息是根据临近接点信息的改变而时时更新的。表中数据的量 和在网络中的所有的接点(除了它自己本身)是等同的。这个表中的列代表直 接和它相连的邻居,行代表在网络中的所有目的地。每个数据包括传送数据包 到每个在网上的目的地的路径和距离/时间在那个路径上来传输(我们叫这个为
“成本”)。这个在那个算法中的度量公式是跳跃的次数,等待时间,流出数 据包的数量等等。
在距离向量路由算法中,相邻路由器之间周期性地相互交换各自的路由表 备份。当网络拓扑结构发生变化时,路由器之间也将及时地相互通知有关变更 信息。每个路由器维护了一张路由表,它以子网中的每个路由器为索引,并且 每个路由器对应一个表项。该表项包含两部分:为了达到该目标路由器而使用 的输出线路,以及到达该目标路由器的时间估计值或者距离估计值。
距离矢量路由算法在理论中可以工作,但在实践中有一个严重的缺陷:虽 然它总是能够达到正确的答案,但是它收敛到正确答案的速度非常慢,尤其是, 它对于好消息的反应非常快,但是对于坏消息的反应非常迟缓。
1.4 实验步骤
1.4.1 编写程序
程序的源代码如下:
#include stdio.h
#include stdlib.h
#include alloc.h
#define ROUTNUM 7
typedef struct
{
int dis;
int from;
}RoutNode;
RoutNode data[ROUTNUM][ROUTNUM];
void InitData(FILE* pfile);
void OutputRoutData();
/*路由表*/
/*从数据文件读取数据,初始化路由表*/ /*输出所有的路由表*/
void Communication(int recv, int send);/*send 点向 recv 点发送自己的路由表 */
void Exchange();
void main()
{
int start, end, i, j;
FILE *pfile;
pfile = fopen(1.txt, r); if (pfile == NULL)
{
/*所有节点进行一次数据交换, 更新路由表*/
printf(文件打开错误,按任意键退出.\n);
getch();
return;
}
else
InitData(pfile);
fclose(pfile);
printf(\n 路由表初始:\n);
for (i = 0; iROUTNUM; i++)
{
printf(%c||, i + 65);
for (j = 0; j ROUTNUM; j++)
if (data[i][j].dis 0)
printf(%c %d , j + 65, data[i][j].dis);
printf(\n);
}
for (i = 0; i ROUTNUM; i++)
{
Exchange();
}
printf(\n 路由表交换:\n);
OutputRoutData();
printf(输入起始路由节点(%d-%d) : , 0, ROUTNUM - 1);
scanf(%d, start);
printf(输入终点路由节点(%d-%d) : , 0, ROUTNUM - 1);
scanf(%d, end);
if (start == end || start 0 || start 6 || end 0 || end 6) {
printf(\n 输入错误,请按任意键退出\n);
getch();
return;
}
else
{
int cur = start;
int total = 0;
if (data[start][end].dis 0)
{
printf(没有路由路径发现!\n);
getch();
return;
} /*end of if*/
printf(%c-, cur + 65);
while (data[cur][end].from = 0)
{
total += data[cur][data[cur][end].from].dis; printf(%c-, data[cur][end].from + 65
您可能关注的文档
最近下载
- 教你怎样写英文简历 课件 英文版.ppt VIP
- 平安产险首批次新材料质量保证保险(中央型,示范条款2025版)条款.pdf VIP
- 一种液位变送器锁线结构.pdf VIP
- 钢筋石笼护脚单元关键工程质量评定表.doc VIP
- 人教版五年级数学上册《密铺》PPT课件.ppt VIP
- TSGR004-2023年固定式压力容器安全技术监察规程.docx
- 电子软件开发岗位招聘笔试题(某大型国企)2025年试题集详解.docx VIP
- 高中政治课后教学反思PPT.pptx VIP
- 隧道工程施工监理实施细则.doc VIP
- GB 50341-2014 立式圆筒形钢制焊接油罐设计规范及条文说明(带详细书签).docx
原创力文档


文档评论(0)