链路状态路由算法实验.doc
《链路状态路由算法实验.doc》由会员分享,可在线阅读,更多相关《链路状态路由算法实验.doc(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date链路状态路由算法实验链路状态路由算法实验实验二 链路状态路由算法的实验一、实验目的:了解链路状态路由算法的原理以及具体过程。二、实验原理: 链路状态算法实现的基本步骤:1、发现他的邻接点,并知道其网络的地址。2、测量到各邻接点的延迟或开销。3、构造一个分组,分组中包含所有他刚刚收到的信息。4、将这个分组发送给其他的路由器。5、计算出到每一个其他路由器的最短路径三、链路
2、状态路由的核心算法(迪加克拉算法):void dijkstra(int s, int t, int path) struct state /存放节点数据 int predecessor; /父节点 int length; /权值 bool lable; /访问状态 stateMAX_NODES; int i,j,k,min; struct state *p; for(p = &state0; p predecessor = -1; p-length = INFINITY; p-lable = false;statet.length = 0;statet.lable = true;k = t;d
3、o for(int i = 0; i Vnums; i +) if( (distki != 0) & (statei.lable = false) if(statek.length + distki statei.length) statei.predecessor = k; /记录节点 cout k ; statei.length = statek.length + distki; /路径长度 k = 0;min = INFINITY; for(int i = 0; i Vnums; i +) if(statei.lable = false) & (statei.length min) mi
4、n = statei.length; k = i; statek.lable = true; while(k!=s); cout s; 四、流程图:核心算法(迪加克拉算法)流程图:访问起始路由K,目标s statei.lable = falsei+计算statek.lengthstatei.predecessor = kk=0; min = INFINITY;statei.lable = false) & (statei.length min)k=i;i+statek.lable = true;k=s 结束五、 程序截图:1、 路由表信息: 2、不同两点间的最短路径: 六、 源代码#inclu
5、de #include #define routeTable routeTable.txtusing namespace std;const int MAX_NODES = 1024; const int INFINITY = 100000;int distMAX_NODESMAX_NODES; /用于存放网络拓扑结构连接矩阵 int static Vnums; /总的节点数 void initDist() /初始化邻接矩阵 for(int i = 0; i MAX_NODES; i +) for(int j = 0; j MAX_NODES; j +) distij = 0; void cr
6、eatRouteMap(int Vnums) /创建网络拓扑结构的邻接矩阵 for(int i = 0; i Vnums; i +) cout 输入第 i 个节点与第 ; for(int j = 0; j Vnums; j +) cout j 个节点的权值: distij; void saveRoute(ofstream& routeTables) /保存路由信息 routeTables 路由邻接矩阵为:; routeTables n; routeTables *; routeTables n; for(int i = 0; i Vnums; i +) for(int j = 0; j Vnu
7、ms; j +) routeTablesdistijt; routeTables n; void dijkstra(int s, int t, int path) struct state /存放节点数据 int predecessor; /父节点 int length; /权值 bool lable; /访问状态 stateMAX_NODES; int i,j,k,min,print; struct state *p; for(p = &state0; p predecessor = -1; p-length = INFINITY; p-lable = false;statet.length
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 状态 路由 算法 实验
限制150内