生成树实验

生成树实验
生成树实验

2.当次小组成员成绩只计学号、姓名登录在下表中的。

3.在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0

分计。

4.实验报告文件以PDF格式提交。

【实验题目】生成树协议

路的产生,避免广播风暴等。

【实验内容】

(1)完成实验教程实例3-8的实验,回答实验提出的问题及实验思考。(P117)

(2)抓取生成树协议数据包,分析桥协议数据单元(BPDU)。

(3)在实验设备上查看VLAN生成树,并学会查看其它相关重要信息。

【实验要求】

一些重要信息需给出截图。

注意实验步骤的前后对比!

【实验记录】(如有实验拓扑请自行画出,要求自行画出拓扑图)

(1)实例3-8

实验拓扑图如下:

步骤0:

将PC1和PC2配置好IP地址和掩码后按照拓扑图连接实验设备。

在PC1上启动Wireshark 软件观察包的数量变化如下:

此时已经产生了广播风暴。

两台交换机此时的生成树配置信息如下:

无生成树配置信息。

用PC1pingPC2时包增长情况如下:

可见此时包增长的更快,已经产生广播风暴,但是PC并未发生死锁。

步骤1:

配置交换机A:

步骤2:

配置交换机B:

步骤3:

配置两交换机的快速生成树协议:

再按照拓扑图连接实验设备,此时包增长情况如下:

此时两PC间可以相互ping通,且无广播风暴。由此可见生成树协议的作用为避免网络中存在交换环路的时候产生广播风暴,确保在网络中有环路时自动切断环路。

步骤4:验证测试

SwitchA的生成树信息:

SwitchB的生成树信息:

SwitchB中RootCost和RootPort值都为0,因此SwitchB为根交换机。

根端口为G0/1。

步骤5:设置交换机的优先级

将SwitchA的优先级设置为4096

步骤6: 验证SwitchA的优先级

当两个端口都连在一个共享介质上,交换机会选择一个高优先级的端口进入forwarding状态,低优先级的端口进入discarding状态。

步骤7:验证交换机SwitchB的G0/1,G0/2,端口的状态

由上图可知,SwitchB的G0/1端口处于转发状态,G0/2端口处于组阻塞状态。

步骤8:

步骤7后每个交换机的信息如下:

两交换机G0/1端口链路down之后SwitchB的端口2信息如下:

此时每个交换机的信息:

与之前相比,SwitchB的RootPort变为G0/2,其他均未变化。说明一条链路down 之后,生成树协议启用了备用端口使得整个链路恢复数据传输。

SwitchA和SwitchB之间的一条链路down掉时,PC1和PC2仍然能相互ping通,但会丢包:

说明生成树在链路断掉后重新构筑,原先阻塞的链路已经变为转发状态,一个端口断开时会将流量切换到另一个端口上,中间有短暂的联路中段,丢包数为一个。

此时每个交换机的生成树信息如下:

与步骤8的(1)相比,SwitchB的根端口变为G0/2,转换时间大约为2秒。

实验思考

1)在实验开始产生广播风暴时,实验设备中存在环路,在生成树协议开启后不在存在环路,因为广播风暴现象已经消除。

2)冗余链路会引起MAC地址表不稳定和多帧复制等问题。

MAC表不稳定

当PC1发送数据到PC2时,如果Switch A和Switch B也是刚刚启动,这时候它们MAC表里都没有PC2的MAC地址

收到数据包后,Switch A就会广播该数据包,并把源MAC添加到MAC表,然后认为PC1在端口0

收到数据包后,Switch B就会广播该数据包,并把源MAC添加到MAC表,然后认为PC1在端口0

当Switch B在收到Switch A的广播包后又认为PC1在端口1

当Switch A在收到Switch B的广播包后又认为PC1在端口1

这时就会造成交换机MAC表的不稳定

多帧复制

在冗余链路中出现广播风暴后,当PC1向PC2发送数据报时,如果两个交换机刚刚启动,这时候它们的MAC地址表里都没有PC2的MAC地址,SwitchA将会广播该数据包,SwitchB收到SwichA的广播包之后发现自己的MAC地址表里也没有PC2的MAC地址,就会继续广播该数据包,如此循环PC2就会收到多个同样的数据包造成多帧复制。

(2)分析生成树协议数据包

STP协议传输过程中wireshark捕获到的STP数据包如下:

具体信息如下(frame1):

具体信息:

DMA 01:80:v2:00:00:00

SMA 58:69:6c:15:57:36

L/T 39

LLC Header

Payload信息如下:

具体信息如下:

协议号 0x0000

版本号 2

报文类型 0x02

标记 0x7c

根网桥号 4096/58:69:6c:15:57:36

根路径成本 0

发送网桥ID 4096/58:69:6c:15:57:36

端口ID 0x8003

呼叫时间 2s

转发延迟 15s

(3)VLAN生成树其它相关重要信息

全部实验步骤结束后的交换机生成树配置信息如下:

Switch A:

STP版本 RSTP

STP协议运行状态运行

最大生存时间 20

呼叫时间 2s

转发延迟 15s

网桥最大生存时间 20

网桥呼叫时间 2s

网桥转发延迟 15s

最大跳转次数 20

路径成本模式长

BPDUGuard 未运行

BPDUFilter 未运行

LoopGuardDef 未运行

网桥地址优先级 4096

拓扑结构变动时间 1分4秒

拓扑结构变动数 3

指派端口根路径成本 0(本交换机为根)

根端口 0(本交换机为根)

Switch B

STP版本 RSTP

STP协议运行状态运行

最大生存时间 20

呼叫时间 2s

转发延迟 15s

网桥最大生存时间 20

网桥呼叫时间 2s

网桥转发延迟 15s

最大跳转次数 20

路径成本模式长

BPDUGuard 未运行

BPDUFilter 未运行

LoopGuardDef 未运行

网桥地址优先级 32768

拓扑结构变动时间 46秒

拓扑结构变动数 6

指派端口根路径成本 20000

根端口 Gi0/2

交换机的端口状态:

Gi0/1:

默认端口加速不可用

操作端口加速不可用

自动配置默认端口不可用

自动配置操作端口不可用

默认连接类型自动

操作连接类型点对点

BPDUGuard 未运行

BPDUFilter 未运行

端口监视模式无

端口状态转发状态

端口优先级 128

根指派端口指派成本 0

指派网桥指派端口优先级 128

指派端口号 1

转发跳转数 2

默认路径成本 20000

操作路径成本 20000

矛盾状态正常

端口角色根端口

Gi0/2

默认端口加速不可用

操作端口加速不可用

自动配置默认端口不可用

自动配置操作端口不可用

默认连接类型自动

操作连接类型点对点

BPDUGuard 未运行

BPDUFilter 未运行

端口监视模式无

端口状态阻塞状态

端口优先级 128

根指派端口指派成本 0

指派网桥指派端口优先级 128

指派端口号 2

转发跳转数 0

默认路径成本 20000

操作路径成本 20000

矛盾状态正常

端口角色替换端口

最小生成树实验报告

数据结构课程设计报告题目:最小生成树问题 院(系):计算机工程学院 学生姓名: 班级:学号: 起迄日期: 指导教师: 2011—2012年度第 2 学期 一、需求分析

1.问题描述: 在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。存储结构采用多种。求解算法多种。 2.基本功能 在n个城市之间建设网络,只需要架设n-1条线路,建立最小生成树即可实现最经济的架设方法。 程序可利用克鲁斯卡尔算法或prim算法生成最小生成树。 3.输入输出 以文本形式输出最小生成树,同时输出它们的权值。通过人机对话方式即用户通过自行选择命令来输入数据和生成相应的数据结果。 二、概要设计 1.设计思路: 因为是最小生成树问题,所以采用了课本上介绍过的克鲁斯卡尔算法和 prim算法两种方法来生成最小生成树。根据要求,需采用多种存储结构,所以我选择采用了邻接表和邻接矩阵两种存储结构。 2.数据结构设计: 图状结构: ADT Graph{ 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集。 数据关系R:R={VR} VR={|v,w∈V且P(v,w),表示从v到w的弧, 谓词P(v,w)定义了弧的意义或信息} 基本操作: CreateGraph( &G, V, VR ) 初始条件:V是图的顶点集,VR是图中弧的集合。 操作结果:按V和VR的定义构造图G。 DestroyGraph( &G ) 初始条件:图G存在。 操作结果:销毁图G。 LocateVex( G, u ) 初始条件:图G存在,u和G中顶点有相同特征。 操作结果:若G中存在顶点u,则返回该顶点在图中位置;否则返 回其它信息。 GetVex( G, v ) 初始条件:图G存在,v是G中某个顶点。

实验:RSTP快速生成树配置

快速生成树配置---------------------晚上风出品 1.实验目标 ?理解生成树协议工作原理; ?掌握快速生成树协议RSTP基本配置方法; ?实验背景学校为了开展计算机教学和网络办公,建立了一个计算机教室和一个校办公区,这两处的计算机网络通过两台交换机互连组成内部校园网,为了提高网络的可靠性,作为网络管理员,你要用2条链路将交换机互连,现要求在交换机上做适当配置,使网络避免环路。 2.生成树配置技术原理 ?生成树协议(spanning-tree),作用是在交换网络中提供冗余备份链路,并且解决交换网络中的环路问题; ?生成树协议是利用SPA算法,在存在交换环路的网络中生成一个没有环路的树形网络。运用该算法将交换网络的冗余备份链路从逻辑上断开,当主链路出现故障时,能够自动的切换到备份链路,保证数据的正常转发; ?生成树协议版本:STP、RSTP(快速生成树)、MSTP(多生成树协议) ?生成树协议的特点收敛时间长。从主要链路出现故障到切换至备份链路需要50秒的时间。 ?快速生成树在生成树协议的基础上增加了两种端口角色:替换端口和备份端口,分别做为根端口和指定端口的冗余端口。当根端口或指定端口出现故障时,冗余端口不需要经过50秒的收敛时间,可以直接切换到替换端口或备份端口,从而实现RSTP 协议小于1秒的快速收敛。 3.实验步骤 ?新建packet tracer 拓扑图(如图) ?默认情况下STP协议启用的。通过两台交换机之间传送BPDU协议数据单元,选出根交换机、根端口等,以便确定端口的转发状态。上图中标记为黄色的端口处于block堵塞状态。 ?设置rstp; ?查看交换机show spanning-tree状态,了解根交换机和根端口情况; ?通过更改交换机生成树的优先级spanningtree vlan * priority 4096 可以变化根交换机的角色。 ?测试。当主链路处于down状态时候,能够自动的切换到备份链路,保证数据的正常转发。

最小生成树的Prim算法提高型实验报告

黄冈师范学院 提高型实验报告 实验课题最小生成树的Prim算法 (实验类型:□综合性■设计性□应用性) 实验课程算法程序设计 实验时间 2010年12月24日 学生姓名周媛鑫 专业班级计科 0801 学号 200826140110

一.实验目的和要求 (1)根据算法设计需要, 掌握连通网的灵活表示方法; (2)掌握最小生成树的Prim算法; (3)熟练掌握贪心算法的设计方法; 二.实验条件 (1)硬件环境:实验室电脑一台 (2)软件环境:winTC 三.实验原理分析 (1)最小生成树的定义: 假设一个单位要在n个办公地点之间建立通信网,则连通n个地点只需要n-1条线路。可以用连通的无向网来表示n个地点以及它们之间可能设置的通信线路,其中网的顶点表示城市,边表示两地间的线路,赋于边的权值表示相应的代价。对于n个顶点的连通网可以建立许多不同的生成树,每一棵生成树都可以表示一个通信网。其中一棵使总的耗费最少,即边的权值之和最小的生成树,称为最小生成树。 (2)构造最小生成树可以用多种算法。其中多数算法利用了最小生成树的下面一种简称为MST的性质:假设N=(V,{E})是一个连通网,U是顶点集V的一个非空子集。若(u,v)是一条具有最小权值(代价)的边,其中u∈U,v∈V-U,则必存在一棵包含边 (u.v)的最小生成树。 (3)普里姆(Prim)算法即是利用MST性质构造最小生成树的算法。算法思想如下: 假设N=(V,{E})和是连通网,TE是N上最小生成树中边的集合。算法从U={u0}( u0∈V),TE={}开始,重复执行下述操作:在所有u∈U,v∈V-U的边(u, v) ∈E 中找一条代价最小的边(u0, v0)并入集合TE,同时v0并入U,直到U=V为止。此时TE中必有n-1条边,则T=(V,{TE})为N的最小生成树。 四.实验步骤 (1)数据结构的设计: 采用邻接矩阵的存储结构来存储无向带权图更利于实现及操作: 邻接矩阵的抽象数据结构定义: #define INFINITY INT_MAX //最大值 #define MAX_ERTEX_NUM 20 //最大顶点数 typedef enum {DG,DN,UDG,UDN}GraphKind;//{有向图,有向网,无向网,无向图} typedef struct Arc Cell{ VRType adj ; // VRType 是顶点关系的类型。对无权图用1和0表示相邻否;InfoType * info; //该弧相关信息的指针 }ArcCell ,AdjMatrix [ MAX_VERTEX_NUM][MAX_VERTEX_NUM]; Typedef struct { VertexType vexs [ MAX_VERTEX_NUM] ; //顶点向量

最小生成树-实验报告

实验五最小生成树 一、需求分析 1、本程序の目の是要建设一个最经济の网,,输出相应の最小生成树。在这里都用整型数来代替。 2、测试数据 见下程序。 二、概要设计 主程序: int main() { 初始化; while (条件) { 接受命令; 处理命令; } return 0; } 三、详细设计 #include//头文件 using namespace std; #define MAX_VERTEX_NUM 20//最大结点数 #define MAX 200 typedef struct Close//结构体

{ char adjvex; int lowcost; }Close,close[MAX_VERTEX_NUM]; typedef struct ArcNode { int adjvex; ArcNode *nextarc; int info; }ArcNode; typedef struct VNode { char data; ArcNode *firstarc; }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct { AdjList verties; int vexnum,arcnum; }ALGraph; ALGraph G;//对象G int LocateVek(ALGraph ,char );//返回结点位置 int minimum(close);//返回最小数 void MinSpanTree_PRIM(ALGraph,char);//最小生成树 void Create(ALGraph &);//创建邻接表 int main() { char a;int i=1; Create(G); /*for(int i=1;i<=G.vexnum;i++) { for(s=G.verties[i].firstarc;s!=NULL;s=s->nextarc) cout<adjvex].data<<"===="<info<>a; MinSpanTree_PRIM(G,a); cout<<"如果结束输入'0',否则输入'1':"; cin>>i; } return 0; }

Prim最小生成树算法实验报告材料

算法分析与设计之Prim 学院:软件学院学号:201421031059 :吕吕 一、问题描述 1.Prim的定义 Prim算法是贪心算法的一个实例,用于找出一个有权重连通图中的最小生成树,即:具有最小权重且连接到所有结点的树。(强调的是树,树是没有回路的)。 2.实验目的 选择一门编程语言,根据Prim算法实现最小生成树,并打印最小生成树权值。 二、算法分析与设计 1.Prim算法的实现过程 基本思想:假设G=(V,E)是连通的,TE是G上最小生成树中边的集合。算法从U ={u0}(u0∈V)、TE={}开始。重复执行下列操作: 在所有u∈U,v∈V-U的边(u,v)∈E中找一条权值最小的边(u0,v0)并入集合TE中,同时v0并入U,直到V=U为止。 此时,TE中必有n-1条边,T=(V,TE)为G的最小生成树。 Prim算法的核心:始终保持TE中的边集构成一棵生成树。 2.时间复杂度 Prim算法适合稠密图,其时间复杂度为O(n^2),其时间复杂度与边得数目无关,N 为顶点数,而看ruskal算法的时间复杂度为O(eloge)跟边的数目有关,适合稀疏图。 三、数据结构的设计 图采用类存储,定义如下: class Graph { private: int *VerticesList; int **Edge; int numVertices; int numEdges; int maxVertices; public: Graph(); ~Graph(); bool insertVertex(const int vertex); bool insertEdge(int v1,int v2,int cost); int getVertexPos(int vertex); int getValue(int i); int getWeight(int v1,int v2); int NumberOfVertices();

Packet Tracer 5.0实验(五) 快速生成树配置

二、实验背景 学校为了开展计算机教学和网络办公,建立了一个计算机教室和一个校办公区,这两处的计算机网络通过两台交换机互相连接组成内部校园网,为了提高网络的可靠性,作为网络管理员,你要用2条链路将交换机互连,现要求在交换机上做适当的配置,使网络避免环路。 三、技术原理 生成树协议(spanning-tree),作用是在交换网络中提供冗余备份链路,并且解决交换网络中的环路问题; 生成树协议是利用SPA算法,在存在交换环路的网络中生成一个没有环路的树形网络。运用该算法将交换网络的冗余备份链路从逻辑上断开,当主链路出现故障时,能够自动的切换到备份链路,保证数据的正常转发; 生成树协议版本:STP、RSTP(快速生成树)、MSTP(多生成树协议); 生成树协议的特点是收敛时间长,从主要链路出现故障到切换至备份链路需要50秒的时间; 快速生成树协议在生成树协议的基础上增加了两种端口角色:替换端口和备份端口,分别做为根端口和指定端口的冗余端口。当根端口或指定端口出现故障时,冗余端口不需要经过50秒的收敛时间,可以直接切换到替换端口或备份端口,从而实现RSTP协议小于1秒的快速收敛。 四、实验步骤

实验拓扑 默认情况下STP协议启用的,通过两台交换机之间传送BPDU协议数据单元,选出根交换机、根端口等,以便确定端口的转发状态。上图中标记为橙色的端口处于block堵塞状态。 设置RSTP 查看交换机 show spanning-tree 状态,了解根交换机和根端口情况; 通过更改交换机生成树的优先级spanning-tree vlan * priority 4096 可以变化根交换机的角色; S1: Switch>en Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch(config)#hostname S1 S1(config)#end S1# %SYS-5-CONFIG_I: Configured from console by console

实验报告

算法与数据结构 实验报告 系(院):计算机科学学院 专业班级:软工11102 姓名:潘香杰 学号: 201104449 班级序号: 18 指导教师:詹泽梅老师 实验时间:2013.6.17 - 2013.6.29 实验地点:4号楼5楼机房

目录 1、课程设计目的...................................... 2、设计任务.......................................... 3、设计方案.......................................... 4、实现过程.......................................... 5、测试.............................................. 6、使用说明.......................................... 7、难点与收获........................................ 8、实现代码.......................................... 9、可改进的地方.....................................

算法与数据结构课程设计是在学完数据结构课程之后的实践教学环节。本实践教学是培养学生数据抽象能力,进行复杂程序设计的训练过程。要求学生能对所涉及问题选择合适的数据结构、存储结构及算法,并编写出结构清楚且正确易读的程序,提高程序设计基本技能和技巧。 一.设计目的 1.提高数据抽象能力。根据实际问题,能利用数据结构理论课中所学到的知识选择合适的逻辑结构以及存储结构,并设计出有效解决问题的算法。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 3.初步了解开发过程中问题分析、整体设计、程序编码、测试等基本方法和技能。二.设计任务 设计一个基于DOS菜单的应用程序。要利用多级菜单实现各种功能。内容如下: ①创建无向图的邻接表 ②无向图的深度优先遍历 ③无向创建无向图的邻接矩阵 ④无向图的基本操作及应用 ⑤图的广度优先遍历 1.有向图的基本操作及应用 ①创建有向图的邻接矩阵 ②创建有向图的邻接表 ③拓扑排序 2.无向网的基本操作及应用 ①创建无向网的邻接矩阵 ②创建无向网的邻接表 ③求最小生成树 3.有向网的基本操作及应用 ①创建有向网的邻接矩阵 ②创建有向网的邻接表 ③关键路径 ④单源最短路径 三.设计方案 第一步:根据设计任务,设计DOS菜单,菜单运行成果如图所示:

07_生成树实验

0分计。 4. 实验报告文件以PDF 格式提交。 【实验题目】生成树协议 【实验目的】理解快速生成树协议的配置及原理。使网络在有冗余链路的情况下避免环路的产生,避免广播风暴等。 【实验内容】 (1)完成实验教程实例3-8的实验,回答实验提出的问题及实验思考。(P117) (2)抓取生成树协议数据包,分析桥协议数据单元(BPDU )。 (3)在实验设备上查看VLAN 生成树,并学会查看其它相关重要信息。 【实验要求】 一些重要信息需给出截图。 注意实验步骤的前后对比! 【实验记录】(如有实验拓扑请自行画出, 要求自行画出拓扑图) (1) 实例3-8 实验拓扑图如下:

步骤0: 将PC1和PC2配置好IP地址和掩码后按照拓扑图连接实验设备。 在PC1上启动Wireshark 软件观察包的数量变化如下: 此时已经产生了广播风暴。 两台交换机此时的生成树配置信息如下: 无生成树配置信息。 用PC1pingPC2时包增长情况如下:

可见此时包增长的更快,已经产生广播风暴,但是PC并未发生死锁。步骤1: 配置交换机A: 步骤2: 配置交换机B: 步骤3: 配置两交换机的快速生成树协议:

再按照拓扑图连接实验设备,此时包增长情况如下: 此时两PC间可以相互ping通,且无广播风暴。由此可见生成树协议的作用为避免网络中存在交换环路的时候产生广播风暴,确保在网络中有环路时自动切断环路。

步骤4:验证测试 SwitchA的生成树信息: SwitchB的生成树信息:

步骤5:设置交换机的优先级 将SwitchA的优先级设置为4096 步骤6: 验证SwitchA的优先级 当两个端口都连在一个共享介质上,交换机会选择一个高优先级的端口进入

快速生成树的配置(思科)

快速生成树的配置(已经测试过) 实验名称:快速生成树配置。 实验目的:理解快速生成树配置及原理。 背景描述:现有两台交换机互连组成内部局域网,为了提高网络的可靠性,网络管理员用2 条链路将交换机互连,现要在交换机上做适当配置,使网络避免环路。 技术原理:生成树协议是利用SPA算法(生成树算法),在存在交换环路的网络中生成一个没有环路的树形网络。运用该算法将交换网络冗余的备份链路逻辑上断开,当主要链路出现故障时,能够自动 的切换到备份链路,保护数据的正常转发。 生成树协议目前常见的版本有STP(生成树协议IEEE802.1d)、RSTP(快速生成树协议IEE E802.1w)、MSTP(多生成树协议IEEE802.1s)。 实现功能:使网络在有冗余链路的情况下避免环路的产生,避免广播风暴等。 实验设备:S2126(2台);PC机(2台);直连线(4根) 实验拓扑: 按照拓扑图连接网络时注意,两台交换机都配置完快速生成树协议后,再将两台交换机连接起来。 如果先连接再配置会造成广播风暴,影响交换机的正常工作。

实验步骤: 步骤1:交换机A的基本配置。 SwitchA(config)#vlan 10 SwitchA(config-vlan)#name sales SwitchA(config-vlan)#exit SwitchA(config)#interface fastEthernet 0/3 SwitchA(config-if)#switchport access vlan 10 SwitchA(config-if)#end SwitchA#sh vlan id 10 VLAN Name Status Ports ---- -------------------------------- --------- --------- 10 sales active Fa0/3 SwitchA# 步骤2:在交换机A上配置快速生成树。 SwitchA(config)# spanning mode pvst SwitchA(config)#interface range fastethernet 0/1 SwitchA(config-if)#swit mode trunk SwitchA(config)#interface range fastethernet 0/2 SwitchA(config-if)#swit mode trunk SwitchA(config-if)#exit 步骤3:交换机B的基本配置。

离散数学 最小生成树

实验五 实验名称: 得到最小生成树 实验目的: 1.熟悉地掌握计算机科学技术常用的离散数学中的概念、性质和运算;通过实验提高学生编写实验报告、总结实验结果的能力;使学生具备程序设计的思想,能够独立完成简单的算法设计和分析。 2.掌握图论中的最小生成树及Prim 和 Kruskal 算法等,进一步能用它们来解决实际问题。 实验内容: 输入一个图的权矩阵,得到该图的生成树,用Kruskal算法的最小生成树,用Prim算法的最小生成树。

Kruskal算法 假设T中的边和顶点均涂成红色,其余边为白色。开始时G中的边均为白色。 1)将所有顶点涂成红色; 2)在白色边中,挑选一条权最小的边,使其与红色边不形成圈,将该白色边涂红; 3)重复2)直到有n-1条红色边,这n-1条红色边便构成最小生成树T的边集合。 Prim算法 假设V是图中顶点的集合,E是图中边的集合,TE为最小生成树中的边的集合,则prim算法通过以下步骤可以得到最小生成树: 1)初始化:U={u 0},TE={f}。此步骤设立一个只有结点u 0的结点集U和一个空的边集TE作为最小生成树的初始形态,在随后的算法执行中,这个形态会不断的发生变化,直到得到最小生成树为止。 2)在所有u∈U,v∈V-U的边(u,v)∈E中,找一条权最小的边(u 0,v 0),将此边加进集合TE中,并将此边的非U中顶点加入U中。此步骤的功能是在边集E中找一条边,要求这条边满足以下条件:首先边的两个顶点要分别在顶点集合U和V-U 中,其次边的权要最小。找到这条边以后,把这条边放到边集TE中,并把这条边上不在U中的那个顶点加入到U中。这一步骤在算法中应执行多次,每执行一次,集合TE和U都将发生变化,分别增加一条边和一个顶点,因此,TE和U是两个动态的集合,这一点在理解算法时要密切注意。 3)如果U=V,则算法结束;否则重复步骤2。可以把本步骤看成循环终止条件。我们可以算出当U=V时,步骤2共执行了n-1次(设n为图中顶点的数目),TE中也增加了n-1条边,这n-1条边就是需要求出的最小生成树的边。

n个城市最小生成树实验报告材料

数据结构 课程设计报告 起评分理论成绩实践成绩总成绩 院系: 专业: 班级: 学号: : 教师: 时间:

目录 一、设计要求 (3) 1、问题描述 (3) 2、功能 (3) 3、数据 (3) 二、概述与分析 (3) 1、图 (3) 2、邻接矩阵 (3) 3、生成树 (4) 4、最小生成树 (5) 5、最小生成树的操作 (5) 三、程序设计及分析 (6) 四、流程图 (7) 1、模块结构流程图 (7) 2、Prim算法流程设计 (8) 五、测试分析 (8) 六、总结 (10) 七、源程序代码 (10)

一、设计要求: 1、问题描述 构造可以使n个城市连接的最小生成树。 2、功能 给定一个地区的n个城市间的距离网,用Prim算法或Kruskal算法建立最小生成树,并计算得到的最小生成树的代价。本人采用的是Prim算法。 3、数据 城市间的距离网采用邻接矩阵表示(要求至少6个城市,10条边),邻接矩阵的存储结构定义采用课本中给出的定义,若两个城市之间不存在道路,则将相应边的权值设为自己定义的无穷大值。要求在屏幕上显示得到的最小生成树中包括了哪些城市间的道路,并显示得到的最小生成树的代价。 表示城市间距离网的邻接矩阵(要求至少6个城市,10条边) 二、概述与分析 1、图 图的定义:图G是有两个集合V和E组成,记做G=(V,E),其中V是定点的有限集合,记做V(G),E是连接V的两个不同的顶点的边的有限集合,记做E(G)。 2、邻接矩阵 邻接矩阵是图的一种存储方法,它是表示顶点之间相邻关系的矩阵。设 G=(V,E)是具有n(n>0)个顶点的图,顶点的顺序依次为(v 0,v 1,… ,v n-1 ),则G的 邻接矩阵A是n阶方阵,其定义如下。 1)如果G是无向图,则 1 (v i,v j ) ∈E(G) A[i][j]= 0 其他 2)如果G是有向图,则 1 ∈E(G) A[i][j]= 0其他

多生成树(Multiple Spanning Tree Protocol)

多生成树(Multiple Spanning Tree Protocol) 1、概述 1.1 产生背景 1.1.1 IEEE 80 2.1D STP 1.1.2 IEEE 80 2.1w RSTP 1.2 MSTP技术优点 2、MSTP详细介绍 2.1 相关术语 2.2 MSTP算法实现 2.2.1 初始状态 2.2.2 端口角色的选择原则 2.2.3 优先级向量计算 2.2.4 角色选择过程 2.2.5 计算结果 3、Comware实现的技术特色 3.1 MSTP的三种工作模式 3.2 Path Cost缺省值的计算 3.3 设置超时因子特性 3.4 指定根桥和备份根桥 3.5 BPDU保护 3.6 Root保护 3.7 Loop保护 3.8 TC保护 3.9 配置摘要侦听 3.10 No Agreement Check特性实现 3.11 MSTP标准报文格式特性实现 3.12 VLAN Ignore特性 4、典型组网案例 5、总结

1概述 1.1产生背景 在二层交换网络中,一旦存在环路就会造成报文在环路内不断循环和增生,产生广播风暴,从而占用所有的有效带宽,使网络变得不可用。 在这种环境下STP协议应运而生,STP是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。 STP协议和其他协议一样,是随着网络的不断发展而不断更新换代的。最初被广泛应用的是IEEE 802.1D STP,随后以它为基础产生了IEEE 802.1w RSTP、IEEE 802.1s MSTP。 1.1.1 IEEE 80 2.1D STP STP协议的基本思想十分简单。自然界中生长的树是不会出现环路的,如果网络也能够像一棵树一样生长就不会出现环路。于是,STP协议中定义了根桥(Root Bridge)、根端口(Root Port)、指定端口(Designated Port)、路径开销(Path Cost)等概念,目的就在于通过构造一棵树的方法达到裁剪冗余环路的目的,同时实现链路备份和路径最优化。用于构造这棵树的算法称为生成树算法(Spanning Tree Algorithm)。 要实现这些功能,网桥之间必须要进行一些信息的交互,这些信息交互单元就称为配置消息BPDU(Bridge Protocol Data Unit)。STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP 协议的网桥都会接收并处理收到的BPDU报文。该报文的数据区里携带了用于生成树计算的所有有用信息。STP的工作过程是:首先进行根桥的选举。选举的依据是网桥优先级和网桥MAC地址组合成的桥ID,桥ID 最小的网桥将成为网络中的根桥,它的所有端口都连接到下游桥,所以端口角色都成为指定端口。接下来,连接根桥的下游网桥将各自选择一条“最粗壮”的树枝作为到根桥的路径,相应端口的角色就成为根端口。循环这个过程到网络的边缘,指定端口和根端口确定之后一棵树就生成了。生成树经过一段时间(默认值是30秒左右)稳定之后,指定端口和根端口进入转发状态,其他端口进入阻塞状态。STP BPDU会定时从各个网桥的指定端口发出,以维护链路的状态。如果网络拓扑发生变化,生成树就会重新计算,端口状态也会随之改变。这就是生成树的基本原理。 随着应用的深入和网络技术的发展,STP的缺点在应用中也被暴露了出来。STP协议的缺陷主要表现在收敛速度上。 当拓扑发生变化,新的配置消息要经过一定的时延才能传播到整个网络,这个时延称为Forward Delay,协议默认值是15秒。在所有网桥收到这个变化的消息之前,若旧拓扑结构中处于转发的端口还没有发现自己应该在新的拓扑中停止转发,则可能存在临时环路。为了解决临时环路的问题,STP使用了一种定时器策略,即在端口从阻塞状态到转发状态中间加上一个只学习MAC地址但不参与转发的中间状态,两次状态切换的

RSTP快速生成树协议的配置课程设计

石河子大学 信息科学与技术学院 <网络技术>课程设计成果报告
2014—2015 学年第一学期
题目名称:
利用快速生成树协议(RSTP) 实现现交换机之间的冗余链路备份
专 班 学
业: 级: 号:
计算机科学与技术 计科 2012(一)班 2012508013 蒋 曹 能 传 凯 东
学生姓名: 指导教师:
完成日期:二○一五

一 月 七




一 课题介绍 ......................................................................................................................................................... - 3 1.1 课题名称 ............................................................................................................................................... - 3 1.2 课题简介 ............................................................................................................................................... - 3 1.3 课题拓展 ............................................................................................................................................... - 3 二 RSTP 简介....................................................................................................................................................... - 3 三 实验环境介绍 ................................................................................................................................................. - 5 3.1 实验软硬件环境 ................................................................................................................................... - 5 3.2 实验参数 ............................................................................................................................................... - 5 3.3 实验拓扑图 ........................................................................................................................................... - 8 四 实验内容 ......................................................................................................................................................... - 8 五 实验详细步骤 ................................................................................................................................................. - 9 5.1 绘制实验拓扑 ....................................................................................................................................... - 9 5.2 交换机及 PC 的基本配置 .................................................................................................................... - 9 5.3 Spanning-tree 的配置 .......................................................................................................................... - 13 5.3 链路测试 ............................................................................................................................................. - 14 六 课题总结 ....................................................................................................................................................... - 17 附录 A 参考文献................................................................................................................................................ - 18 -

生成树实验

2.当次小组成员成绩只计学号、姓名登录在下表中的。 3.在规定时间内未上交实验报告的,不得以其他方式补交,当次成绩按0 分计。 4.实验报告文件以PDF格式提交。 【实验题目】生成树协议 路的产生,避免广播风暴等。 【实验内容】 (1)完成实验教程实例3-8的实验,回答实验提出的问题及实验思考。(P117) (2)抓取生成树协议数据包,分析桥协议数据单元(BPDU)。 (3)在实验设备上查看VLAN生成树,并学会查看其它相关重要信息。 【实验要求】 一些重要信息需给出截图。 注意实验步骤的前后对比! 【实验记录】(如有实验拓扑请自行画出,要求自行画出拓扑图) (1)实例3-8 实验拓扑图如下: 步骤0: 将PC1和PC2配置好IP地址和掩码后按照拓扑图连接实验设备。 在PC1上启动Wireshark 软件观察包的数量变化如下: 此时已经产生了广播风暴。 两台交换机此时的生成树配置信息如下: 无生成树配置信息。 用PC1pingPC2时包增长情况如下: 可见此时包增长的更快,已经产生广播风暴,但是PC并未发生死锁。 步骤1: 配置交换机A: 步骤2: 配置交换机B: 步骤3: 配置两交换机的快速生成树协议:

再按照拓扑图连接实验设备,此时包增长情况如下: 此时两PC间可以相互ping通,且无广播风暴。由此可见生成树协议的作用为避免网络中存在交换环路的时候产生广播风暴,确保在网络中有环路时自动切断环路。 步骤4:验证测试 SwitchA的生成树信息: SwitchB的生成树信息: SwitchB中RootCost和RootPort值都为0,因此SwitchB为根交换机。 根端口为G0/1。 步骤5:设置交换机的优先级 将SwitchA的优先级设置为4096 步骤6: 验证SwitchA的优先级 当两个端口都连在一个共享介质上,交换机会选择一个高优先级的端口进入forwarding状态,低优先级的端口进入discarding状态。 步骤7:验证交换机SwitchB的G0/1,G0/2,端口的状态 由上图可知,SwitchB的G0/1端口处于转发状态,G0/2端口处于组阻塞状态。 步骤8: 步骤7后每个交换机的信息如下: 两交换机G0/1端口链路down之后SwitchB的端口2信息如下:

WL- 快速生成树

第二周快速生成树RSTP的配置 【实验项目】 快速生成树RSTP的配置 【实验目的】 理解快速生成树RSTP的配置及原理! 【背景描述】 某学校为了开展计算机教学和网络办公,建立了一个计算机教室和一个校办公区,这两处的计算机网络通过两台交换机互联组成内部校园网,为了提高网络的可靠性,网络管理员用两条链路将交换机互联,现要在交换机上做适当配置,使网络避免环路。 本实验以两台2950T交换机和两台PC机为例,实验拓扑如下所示。 【技术原理】 生成树协议(spanning-tree)的作用是在交换网络中提供冗余备份链路,并且解决交换网络中的环路问题。 生成树协议是利用SPA算法(生成树算法),在存在交换环路的网络中生成一个没有环路的树形网络。运用该算法将交换网络冗余的备份链路逻辑上断开,当主要链路出现故障时,能够自动地切换到备份链路。保证数据的正常转发。 生成树协议的特点是收敛时间长。从主要链路出现故障到切换到备份链路30~50秒的时间。 快速生成树协议(RSTP)在生成树协议的基础上增加了两种端口角色,替换端口(alternate Port)和备份端口(Backup Port),分别作为根端口(Root Port)和指定端口(Designated Port)

的冗余端口。当根端口或指定端口出现故障时,冗余端口不需要经过50秒的收敛时间,就可以直接切换到替换端口或备份端口。从而实现RSTP协议小于1秒的快速收敛。 1、端口状态 在RSTP中,端口状态只有丢弃状态(Discarding)、学习状态(Learning)和转发状态(Forwarding)3种。丢弃状态替代了STP中的禁用、阻塞和监听状态。 2、端口角色 在STP中,端口角色有根端口、指定端口、阻塞端口和禁不起用端口,这4种类型。在RSTP 中,除了这些端口角色外,还增加了替代端口和备份端口。 (1)根端口:和STP中类似。 (2)指定端口:和STP中类似。 (3)替代端口:作为根端口的备份端口,替代端口可以接收BPDU报文,但不转发数据。 替代端口出现在非指定交换机上,当根端口发生故障后,替代端口将成为根端口,(4)备份端口:作为指定端口的备份端口,可以接收BPDU报文,但不转发数据,备份端口出现在指定交换机上,作为到达以太网段的冗余链路。备份端口只出现在当交换机拥有两条或两条以上到达共享LAN网段的链路的情况下。 【实现功能】 实现冗余链路的快速收敛。 【注意事项】 1、实验时一定要先启用生成树后连拓扑。 2、锐捷的交换机缺省是关闭spanning-tree的,如果网络在物理上存在环路,则必须手工开启spanning-tree(cisco是默认开启的)。 3、锐捷全系列的交换机默认为MSTP协议,在配置时注意生成树协议的版本。 【参考配置】 步骤1 基本配置(两台交换机配置相同) Switch>en Switch#conf t Switch(config)#vlan 10 Switch(config-vlan)#name vlan10 Switch(config)#int f0/10 Switch(config-if)#switchport mode access Switch(config-if)#switchport access vlan 10 Switch(config-if)#exit Switch(config)#int range f0/1 - 2

克鲁斯卡尔算法实验报告

实验报告 实验原理: Kruskal 算法是一种按照图中边的权值递增的顺序构造最小生成树的方法。其基本思想是:设无向连通网为G=(V,E),令G 的最小生成树为T,其初态为T=(V,{}),即开始时,最小生成树T 由图G 中的n 个顶点构成,顶点之间没有一条边,这样T 中各顶点各自构成一个连通分量。然后,按照边的权值由小到大的顺序,考察G 的边集E 中的各条边。若被考察的边的两个顶点属于T 的两个不同的连通分量,则将此边作为最小生成树的边加入到T 中,同时把两个连通分量连接为一个连通分量;若被考察边的两个顶点属于同一个连通分量,则舍去此边,以免造成回路,如此下去,当T 中的连通分量个数为1 时,此连通分量便为G 的一棵最小生成树。 如教材153页的图4.21(a)所示,按照Kruskal 方法构造最小生成树的过程如图 4.21 所示。在构造过程中,按照网中边的权值由小到大的顺序,不断选取当前未被选取的边集中权值最小的边。依据生成树的概念,n 个结点的生成树,有n-1 条边,故反复上述过程,直到选取了n-1 条边为止,就构成了一棵最小生成树。 实验目的: 本实验通过实现最小生成树的算法,使学生理解图的数据结构存储表示,并能理解最小生成树Kruskal 算法。通过练习,加强对算法的理解,提高编程能力。 实验内容: (1)假定每对顶点表示图的一条边,每条边对应一个权值; (2)输入每条边的顶点和权值; (3)输入每条边后,计算出最小生成树; (4)打印最小生成树边的顶点及权值。 实验器材(设备、元器件): PC机一台,装有C语言集成开发环境。 数据结构与程序: #include #include #include using namespace std;

相关文档
最新文档