网站大量收购闲置独家精品文档,联系QQ:2885784924

计算机网络实验报告..docx

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机网络实验报告 专业班级: 学生姓名: 学 号: 指导老师: 完成时间: 一.实验内容 1.模拟距离向量路由算法的路由表交换过程,演示每轮交换后路由表的变化。 2.实现链路状态路由算法中的最短路径算法 二. 实验目的和要求 1.实验目的 计算机网络通常使用动态的路由算法,其中距离矢量路由算法和链路状态路由算法最为常见。本章实验的目的是模拟距离矢量路由算法及链路状态路由算法,使读者熟悉路由算法的基本原理。 2.实验要求 要求在C/C++环境下,编程模拟距离矢量路由选择算法和链路状态路由选择算法中,具体要求如下: (1)距离矢量路由选择算法 根据给出或自行设计的网络拓扑结构,初始化每个路由器的初始路由表,模拟并演示距离矢量路由选择算法过程中每个路由器在接收相邻节点发送的信息之后更新路由表的过程。 ① 根据给出的网络拓扑结构初始化每个路由器的路由选择表。 ② 每个路由器将其路由选择信息的列表发送给邻居路由器。 ③ 路由器根据接收到的信息列表,修改自己的路由选择表。 ④ 重复(b)(c)过程直到网络中所有路由器的路由选择表均不再发生改变。 在模拟上述过程中,要求显示每个路由器在执行步骤(c)之后路由选择表的内容。 (2)链路状态路由选择算法 根据给出的网络拓扑结构和链路状态,模拟链路状态路由算法中路由器进行工作的过程。 ① 路由器发现其邻居节点,并测量到邻居节点的距离。 ② 根据邻居节点信息构造分组。 ③ 将分组发送给邻居路由器。对接收到的分组信息,将其发送给除发送节点外的其他邻节点,并向发送节点返回确认信息;若接收到的信息序号比现有序号小,则停止发送,向发送节点返回确认信息。 ④ 当路由器获得所有节点的分组信息后,利用Dijkstra算法计算到达每个节点的最短路径。 三.、实验原理 编程语言: JAVA 编程工具: MyEclipse 实验实现方式:单机模拟实现 核心方法:dijkstra算法计算最短路径 分析:布置好各个模拟路由,以及路由的路程权值如何获取。 接着就是核心算法的实现,如何计算任意两个路由之间的最短路径问题。用到的是dijkstra算法。 Dijkstra算法按照从给定起点到图中顶点的距离,顺序求出最短的路径,首先,它求出从起点到最接近起点的顶点之间的最短路径,然后求出第二近的,一次类推,推而广之,再第i次迭代开始之前,算法已经确定了i-1条连接起点和离起点最近顶点之间的最短路径。 这些顶点、起点和从起点到顶点的路径上的边,构成了给定图的一颗子树Ti,因为所有边的权值都是非负数,可以从与Ti的顶点相邻的顶点中找到下一个和起点最接近的顶点。和Ti的顶点相邻的顶点的集合称为“边缘顶点”,以他们为候选对象,Dijkstra算法可以从中选出一个最接近起点的顶点。为了确定第I个最接近的顶点,对于每一个边缘顶点u,该算法求出它到最近的树中顶点v的距离以及从起点到v得最短路径长度dv的和,再从中选出具有最小和的顶点。 此次实验主要是运用路由算法来处理路由当中的一些问题,利用Dijkstra算法处理最短路径的问题,在实验中这点已经得到了充分地体现。下面是该算法的流程图: 对所有路由器采用Dijkstra算法求出其到其他路由器的最短路径。 Dijkstra最短路径算法描述如下: Dijkstra (U, E, s) // Dijkstra算法。U:点集合, E:边集合, s:原点 S - s; // 初始化S集合 V = G – S; While (V != null) { Foreach(v in V) { minDistance[s, v] = Infinity; preVertex[v] = null; Foreach(p in S) { If (shortestDistance[s, p] + E[p, v] minDistance) { //对于点p S,如果s到p的最短路径加上p到v的路径长度比目前记录的s到v的长度短,则将s到v的路径更新为通过点p到达v minDistance[s, v] = shortestDistance[s, p] + E[p, v]; preVertex[v] = p; } } } //将minDistance中最小值对应的点u放入S u - x, which x adjust to Min(mi

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档