CSU计算机网络实验报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

xiaoluping2000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档