实验三-生成树ls
- 格式:doc
- 大小:90.00 KB
- 文档页数:6
最小生成树算法实验报告【实验报告】最小生成树算法实验一、实验目的本次实验旨在研究最小生成树算法,通过对比不同的算法,并对实验结果进行分析,探索最小生成树算法的优劣势和适应场景。
二、实验过程1.算法介绍本次实验中我们将使用两种最小生成树算法:普里姆算法和克鲁斯卡尔算法。
- 普里姆算法(Prim算法):从一个顶点开始,不断在剩下的顶点中选择到当前已有的最小生成树的距离最小的边,将该边的另一个顶点加入树中,直到所有的顶点都加入树中。
- 克鲁斯卡尔算法(Kruskal算法):首先将所有边按照权值从小到大进行排序,然后以最小权值的边开始,依次选择权值最小且不会形成环路的边,直到找到n-1条边为止,其中n为顶点数。
2.实验步骤首先,我们使用Python语言实现了普里姆算法和克鲁斯卡尔算法。
然后,我们构造了一些测试用例,包括不同规模的图和不同权值分布的图。
最后,我们对实验结果进行对比分析。
三、实验结果1.测试用例设计我们设计了三个测试用例,分别为小规模图、中规模图和大规模图,具体如下:-小规模图:顶点数为5的图,权值随机分布。
-中规模图:顶点数为50的图,权值随机分布。
-大规模图:顶点数为100的图,权值随机分布。
2.实验结果分析我们的实验结果如下表所示:算法,小规模图,中规模图,大规模图:-------:,:------:,:------:,:------:普里姆算法,13,455,703从实验结果可以看出,对于小规模图和中规模图,普里姆算法的运行时间明显低于克鲁斯卡尔算法。
但是对于大规模图,克鲁斯卡尔算法的运行时间与普里姆算法的运行时间差距不大,甚至略小于普里姆算法。
这是因为克鲁斯卡尔算法中排序边的时间复杂度为O(ElogE),而普里姆算法中筛选最小距离的边的时间复杂度为O(V^2)。
综上所述,普里姆算法适用于较小规模的图,而克鲁斯卡尔算法适用于较大规模的图。
四、实验总结本次实验研究了最小生成树算法,通过对比实验结果,我们发现不同算法在不同规模的图上的表现有所差异。
生成树实验一、为什么会产生生成树协议,他解决了什么问题概念及背景知识:1.1MAC地址介绍:单播MAC地址:第一个字节最低位为0,如3C-6A-A7-1A-2E-2B多播MAC地址:第一个字节最低位为1,如01-80-c2-00-00-00广播MAC地址:48位全部为1,如FF-FF-FF-FF-FF-FF1.2 二层转发介绍交换机二层的转发特性,符合802.1D网桥协议标准。
交换机的二层转发涉及到两个关键的线程:地址学习线程和报文转发线程地址学习线程如下:A)交换机接收网段上的所有数据帧,利用接收数据帧中的源MAC地址来建立MAC地址表;B)端口移动机制:交换机如果发现一个包文的入端口和报文中源MAC地址的所在端口(在交换机的MAC地址表中对应的端口)不同,就产生端口移动,将MAC地址重新学习到新的端口C)地址老化机制:如果交换机在很长一段时间之内没有收到某台主机发出的报文,在该主机对应的MAC地址就会被删除,等下次报文来的时候会重新学习。
转发线程如下:A)交换机在MAC地址表中查找数据帧中的MAC地址,如果找到,就将该数据帧发送到相应的端口,如果找不到就向所有的端口发送;B)如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文C)交换机向入端口以外的其它所有端口转发广播报文1.3 VLAN二层转发介绍报文转发线程:A)交换机在MAC地址表中查找数据帧中的目的MAC地址,如果找到(同时还要确保报文的入VLAN和出VLAN是一致的),就将该数据帧发送到相应的端口,如果找不到,就向(VLAN 内)所有的端口发送;B)如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文;C)交换机(VLAN内)入端口以外的其它所有端口转发广播报文。
1.4加入VLAN的好处:A)限制了局部的网络流量,在一定程度上可以提高整个网络的处理能力B)虚拟的工作组,通过灵活的VLAN设置,把不同的用户划分到工作组内;C)安全性,一个VLAN内的用户和其它VLAN内的用户不能互访,提高了安全性。
实训三生成树配置和端口安全一、实训目的理解生成树协议RSTP的配置及原理,掌握端口安全的配置二、生成树协议配置1、背景描述某学校为了开展计算机教学和网络办公,建立了一个计算机教室和一个校办公区,这两处的计算机网络通过两台交换机互连组成内部校园网,为了提高网络的可靠性,网络管理员用2条链路将交换机互连,现要在交换机上做适当配置,使网络避免环路。
本实训以2台S2126G交换机为例,2台交换机分别命名为SwitchA, SwitchB。
PC1与PC2在同一个网段,假设IP地址分别为192.168.0.137,192.168.0.136,网络掩码为255.255.255.0 。
2、实训设备:S2126G(2台)实训拓扑F0/3F0/33、实训内容与步骤(1)交换机A 的配置:(2)交换机B的配置。
(3)验证.switchA#show spanning-tree !查看生成树配置信息switchA#show runswitchB#show spanning-treeswitchB#show interface f 0/1switchB#show run(4)让一台计算机连续给另一台计算机发送数据,然后短开一条链路,查看数据发送情况.. 三.端口安全配置1、背景描述某学校为了建立了校园网,为了防止有人利用端口对网络进行攻击,在接入层的交换上进行了端口安全的设置。
2、实训设备S2126G交换机、一台计算机、网线拓扑结构:PC1的IP地址为:192 .168.0.1363、实训内容及步骤在F0/3端口上设置端口安全功能,设置最大地址个数为8,设置违例方式为protect. switch的配置如下为3 号端口绑定安全地址。
实验四:生成树配置(一)端口上开启RSTP1.网络拓扑图:2.一台三层交换机3560(SWA)与一台二层交换机2950(SWB),用两根交叉线连接F0/23和F0/24口。
各分别再连接一台PC(都是F0/3口)。
3.基本IP地址配置,如图所示。
SWA的VLAN1地址:192.168.0.1/24;SWB的VLAN1地址:192.168.0.2/24;PC1的地址:192.168.0.11/24;PC2的地址:192.168.0.12/24;四台设备的默认网关都是192.168.0.254。
测试四台设备的互通性(应该是全通)。
4.在SWA和SWB上分别建立VLAN 10,并把F0/3口都加入。
再测试四台设备的互通性(应该是SWA和SWB互通,其他都不通,因为跨交换机之间的trunk模式未设置)。
5.分别设置SWA和SWB的F0/23口和F0/24口的模式为trunk。
再测试四台设备的互通性(应该是SWA和SWB互通,PC1和PC2互通,其他不通)。
6.在PC1对PC2一直进行ping(命令ping -t 192.168.0.12),观察实验中的丢包和连接情况。
此时断开F0/23口(即数据转发口),观察丢掉多少个数据包,F0/24才能从阻塞变为转发状态,PC2可以重新Ping通。
重新连接F0/23,再次观察结果。
说明在默认的STP生成树中,冗余链路的延时比较长,影响网络速度和质量。
7.找出SWA和SWB哪个是根交换机?找出F0/23口和F0/24口哪个是转发状态?哪个是根端口?哪个是备份端口?哪些是指定端口?8.开启SWA和SWB的生成树协议,指定类型为RSTP。
再次断开F0/23口(即数据转发口),观察丢掉多少个数据包,F0/24才能从阻塞变为转发状态,PC2可以重新Ping通。
重新连接F0/23,再次观察结果。
说明在RSTP生成树中,冗余链路的延时比较短,加快了收敛速度,大提高了网络速度和质量。
一、实验目的1. 理解生成树协议(STP)的基本原理和工作机制;2. 掌握生成树协议的配置方法;3. 通过实验验证生成树协议在网络中的实际应用效果。
二、实验环境1. 实验设备:两台华为S5700交换机、两台PC机;2. 实验软件:华为网络设备仿真软件;3. 实验拓扑:两台交换机通过一条物理链路连接,两台PC机分别连接到两台交换机上。
三、实验原理生成树协议(Spanning Tree Protocol,STP)是一种用于在网络中消除环路并实现冗余链路备份的协议。
当网络中出现环路时,STP会阻塞部分端口,形成一个没有环路的树形结构,确保网络的高可用性和容错能力。
STP通过交换机之间的BPDU(Bridge Protocol Data Unit)报文进行信息交互,选举根网桥,并确定每个交换机的根端口和指定端口。
根端口是连接到根网桥的端口,指定端口是连接到同一VLAN且路径最短的端口。
其余端口被阻塞,不参与数据转发。
四、实验步骤1. 配置交换机名称和密码;2. 配置交换机接口;3. 配置VLAN;4. 配置STP;5. 验证STP配置效果。
五、实验过程1. 配置交换机名称和密码```bashS1>display versionS1>sysname S1S1>display versionS1>enableS1#configure terminalS1(config)#username admin password simple 123456 S1(config)#exit```2. 配置交换机接口```bashS1>display ip interface briefS1#interface GigabitEthernet0/0/1S1(config-if)#ip address 192.168.1.1 24S1(config-if)#exitS1#interface GigabitEthernet0/0/2S1(config-if)#ip address 192.168.1.2 24S1(config-if)#exit```3. 配置VLAN```bashS1>display vlanS1#vlan 10S1(config-vlan)#name VLAN10S1(config-vlan)#exitS1#interface GigabitEthernet0/0/1S1(config-if)#port link-type access S1(config-if)#port default vlan 10 S1(config-if)#exitS1#interface GigabitEthernet0/0/2S1(config-if)#port link-type access S1(config-if)#port default vlan 10 S1(config-if)#exit```4. 配置STP```bashS1>display stpS1#stpmode stpS1>display stpS1#interface GigabitEthernet0/0/1S1(config-if)#port link-type access S1(config-if)#port default vlan 10 S1(config-if)#exitS1#interface GigabitEthernet0/0/2S1(config-if)#port link-type access S1(config-if)#port default vlan 10S1(config-if)#exit```5. 验证STP配置效果```bashS1>display stpS1>display stp interface GigabitEthernet0/0/1S1>display stp interface GigabitEthernet0/0/2S1>ping 192.168.1.2```六、实验结果与分析1. 实验结果通过实验,成功配置了生成树协议,并验证了STP在网络中的实际应用效果。
实验八、九生成树配置—生成树协议STP和快速生成树协议RSTP一.实验名称生成树协议STP、快速生成树RSTP二.实验目的理解生成树协议STP和快速生成树协议RSTP三.背景描述某学校为了开展计算机教学和网络办公,建立了一个计算机教室和一个校办公区,这两处的计算机网络通过两台交换机互联组成内部校园网,为了提高网络的可靠性,网络管理员用2条链路将交换机互联,现要在交换机上做适当配置,使网络避免环路。
本实验以2台S3550-24交换机为例,2台交换机分别命名为SwitchA和SwitchB。
PC1和PC2在同一个网段,假设IP地址分别为192.168.0.137,192.168.0.136,网络掩码为255.255.255.0。
四.实验功能使网络在有冗余链路的情况下避免环路的产生,避免广播风暴等。
五.实验步骤1.生成树协议STP步骤1.在每台交换机说那个开启生成树协议。
SwitchA>enable 14Password:SwitchA#configure terminalEnter configuration commands, one per line. End with CNTL/Z.SwitchA(config)#spanning-tree2009-10-16 19:10:41 @5-CONFIG:Configured from outbandSwitchA(config)#end2009-10-16 19:10:43 @5-CONFIG:Configured from outband验证测试:验证生成树协议已经开启SwitchA#show spanning-treeStpVersion : MSTPSysStpStatus : EnabledBaseNumPorts : 24MaxAge : 20HelloTime : 2ForwardDelay : 15BridgeMaxAge : 20BridgeHelloTime : 2BridgeForwardDelay : 15MaxHops : 20TxHoldCount : 3PathCostMethod : LongBPDUGuard : DisabledBPDUFilter : Disabled###### MST 0 vlans mapped : AllBridgeAddr : 00d0.f8ff.837cPriority : 32768TimeSinceTopologyChange : 0d:0h:6m:47s TopologyChanges : 0DesignatedRoot : D0F8FF837CRootCost : 0RootPort : 0CistRegionRoot : D0F8FF837CCistPathCost : 0SwitchA#show spanning-tree interface fastethernet 0/1PortAdminPortfast : DisabledPortOperPortfast : DisabledPortAdminLinkType : autoPortOperLinkType : point-to-pointPortBPDUGuard: DisabledPortBPDUFilter: Disabled###### MST 0 vlans mapped : AllPortState : discardingPortPriority : 128PortDesignatedRoot : D0F8FF837CPortDesignatedCost : 0PortDesignatedBridge : D0F8FF837CPortDesignatedPort : 0000PortForwardTransitions : 0PortAdminPathCost : 0PortOperPathCost : 0PortRole : disabledPort步骤2:设置生成树模式SwitchA#configure terminalEnter configuration commands, one per line. End with CNTL/Z. SwitchA(config)#spanning-tree mode stp2009-10-16 19:12:31 @5-CONFIG:Configured from outband SwitchA(config)#end2009-10-16 19:12:33 @5-CONFIG:Configured from outband 验证测试:验证生成树协议模式为802.IDSwitchA#show spanning-treeStpVersion : STPSysStpStatus : EnabledBaseNumPorts : 24MaxAge : 20HelloTime : 2ForwardDelay : 15BridgeMaxAge : 20BridgeHelloTime : 2BridgeForwardDelay : 15MaxHops : 20TxHoldCount : 3PathCostMethod : LongBPDUGuard : DisabledBPDUFilter : DisabledBridgeAddr : 00d0.f8ff.837cPriority : 32768TimeSinceTopologyChange : 0d:0h:8m:30s TopologyChanges : 0DesignatedRoot : D0F8FF837CRootCost : 0RootPort : 0SwitchA#configure terminalEnter configuration commands, one per line. End with CNTL/Z. SwitchA(config)#spanning-tree priority 40962009-10-16 19:13:14 @5-CONFIG:Configured from outband SwitchA(config)#end2009-10-16 19:13:17 @5-CONFIG:Configured from outband SwitchA#show spanning-treeStpVersion : STPSysStpStatus : EnabledBaseNumPorts : 24MaxAge : 20HelloTime : 2ForwardDelay : 15BridgeMaxAge : 20BridgeHelloTime : 2BridgeForwardDelay : 15MaxHops : 20TxHoldCount : 3PathCostMethod : LongBPDUGuard : DisabledBPDUFilter : DisabledBridgeAddr : 00d0.f8ff.837cPriority : 4096TimeSinceTopologyChange : 0d:0h:9m:13sTopologyChanges : 0DesignatedRoot : D0F8FF837CRootCost : 0RootPort : 0在SwitchB上做完验证后,将两个交换机的接口1和接口2分别连起来,然后再将其网线换到右端,将其另一端接到交换机上,然后进行ping连接,运行cmd,ping 192.168.0.53,可以看到先是连接着的,若把1接口拔掉,就会出现30个丢包信息。
实验三最小生成树问题班级:计科1101班学号:0909101605姓名:杜茂鹏2013年5月23日一、实验目的掌握图的存储表示和以及图的最小生成树算法。
二、实验内容1.实现图的存储,并且读入图的内容。
2.利用普里姆算法求网络的最小生成树。
3.实现构造生成树过程中的连通分量抽象数据类型。
4.以文本形式输出对应图的最小生成树各条边及权值。
三、实验要求1.在上机前写出全部源程序;2.能在机器上正确运行程序;3.用户界面友好。
四、概要设计、首先采用图的邻接矩阵存储结构,然后从终端输入图的顶点名称、弧以及弧的权值建立邻接矩阵,并将图存储在文件Graph.txt中。
然后利用已经建好的图,分别对其进行深度、广度优先遍历,一次输出遍历的顶点最后建立此图的最小生成树,并将对应的边及权值写入文件graph_prim.txt 中。
六、详细设计实验内容(原理、操作步骤、程序代码)#include<stdio.h>#include<stdlib.h>#include<limits.h>#define INFINITY INT_MAX //最大值#define MAX_VERTEX_NUM 20 //最大顶点个数int visited[MAX_VERTEX_NUM];typedef struct ArcCell{int adj;int *info; //该弧相关信息的指针}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];typedef struct close{char adjvex;int lowcost;}closedge[MAX_VERTEX_NUM];typedef struct{char vexs[MAX_VERTEX_NUM]; //顶点向量AdjMatrix arcs; //邻接矩阵int vexnum,arcnum; //图的当前顶点数和弧数closedge cld;}MGraph;typedef struct QNode{char data;struct QNode *next;}QNode,*QueuePtr;typedef struct{QueuePtr front1;QueuePtr rear;}LinkQueue;void (*VisitFunc)(MGraph G,int v);void DFSTraverse(MGraph G,void (* Visit)(MGraph G,int v)); void DFS(MGraph G,int v);void InitQueue(LinkQueue &Q){Q.front1=Q.rear=(QueuePtr)malloc(sizeof(QNode));if(!Q.front1)exit(0);Q.front1->next=NULL;}void EnQueue(LinkQueue &Q,char e){QueuePtr p=(QueuePtr)malloc(sizeof(QNode));if(!p)exit(0);p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;}char DeQueue(LinkQueue &Q){if(Q.front1==Q.rear)exit(0);QueuePtr p=Q.front1->next;char e=p->data;Q.front1->next=p->next;if(Q.rear==p)Q.rear=Q.front1;free(p);return e;}int QueueEmpty(LinkQueue Q){if(Q.front1==Q.rear)return 1;return 0;}int LocateVex(MGraph &G,char v1){int i=0;while(!(G.vexs[i]==v1))i++;return i;}char GetVex(MGraph G,int i){char u;u=G.vexs[i];return u;}int minimum(MGraph G,closedge cld){int mini=1000,s1;for(int i=0;i<G.vexnum;i++){if(cld[i].lowcost!=0&&mini>cld[i].lowcost){mini=cld[i].lowcost;s1=i;}}return s1;}void CreateUDN(MGraph &G){int IncInfo;printf("请分别输入顶点数/弧数/以及弧所含信息:");scanf("%d %d %d",&G.vexnum,&G.arcnum,&IncInfo);getchar();for(int i=0;i<G.vexnum;i++){ //构造顶点向量printf("请输入顶点:");scanf("%c",&G.vexs[i]);getchar();}for(int i=0;i<G.vexnum;i++) //初始化邻接矩阵for(int j=0;j<G.vexnum;j++){G.arcs[i][j].adj=INFINITY;G.arcs[i][j].info=NULL;}for(int k=0;k<G.arcnum;k++){char v1,v2;int w,i,j;printf("输入一条边依附的顶点及权值:"); //构造邻接矩阵scanf("%c %c %d",&v1,&v2,&w); //输入一条边依附的顶点及权值i=LocateVex(G,v1);j=LocateVex(G,v2);G.arcs[i][j].adj=w;if(IncInfo)*G.arcs[i][j].info=IncInfo;G.arcs[j][i]=G.arcs[i][j];getchar();}}//深度优先遍历void Visit(MGraph G,int v){printf("%c",G.vexs[v]);}void DFSTraverse(MGraph G,void (* Visit)(MGraph G,int v)){VisitFunc=Visit;for(int v=0;v<G.vexnum;v++)visited[v]=0;for(int v=0;v<G.vexnum;v++)if(!visited[v]){DFS(G,v);}}void DFS(MGraph G,int v){visited[v]=1;VisitFunc(G,v);for(int j=0;j<G.vexnum;j++)if(!visited[j]&&G.arcs[v][j].adj!=INFINITY)DFS(G,j);}void BFSTraverse(MGraph G,void(*Visit)(MGraph G,int v)) {LinkQueue Q;for(int v=0;v<G.vexnum;v++)visited[v]=0;InitQueue(Q);for(int v=0;v<G.vexnum;v++)if(!visited[v]){visited[v]=1;Visit(G,v);EnQueue(Q,G.vexs[v]);while(!QueueEmpty(Q)){DeQueue(Q);for(int j=0;j<G.vexnum;j++)if(!visited[j]&&G.arcs[v][j].adj!=INFINITY) {visited[j]=1;Visit(G,j);EnQueue(Q,G.vexs[j]);}}}}void MiniSpanTree_PRIM(MGraph G,char u){FILE *IN;if((IN=fopen("graph_prim.txt","w+"))==NULL){printf("file open error!");exit(1);}int k=LocateVex(G,u);for(int j=0;j<G.vexnum;j++)if(j!=k){G.cld[j].adjvex=u;G.cld[j].lowcost=G.arcs[k][j].adj;}G.cld[k].lowcost=0;for(int i=1;i<G.vexnum;i++){k=minimum(G,G.cld);printf("%c%c",G.cld[k].adjvex,G.vexs[k]);int m=LocateVex(G,G.cld[k].adjvex);printf("%d\n",G.arcs[m][k].adj);fprintf(IN,"%c,%c,%d",G.cld[k].adjvex,G.vexs[k],G.arcs[m][k].adj);fputs("\n",IN);G.cld[k].lowcost=0;for(int j=0;j<G.vexnum;j++)if(G.arcs[k][j].adj<G.cld[j].lowcost){G.cld[j].adjvex=G.vexs[k];G.cld[j].lowcost=G.arcs[k][j].adj;}}fclose(IN);}void menu(){printf("1.生成无向网G\n");printf("2.最小生成树\n");printf("3.深度遍历\n");printf("4.广度遍历\n");printf("0.退出\n");}int main(void){MGraph G;int m;do{menu();printf("输入你想要进行的操作的序号:");scanf("%d",&m);getchar();switch(m){case 1:CreateUDN(G);break;case 2:char u;u=GetVex(G,0);MiniSpanTree_PRIM(G,u);break;case 3:DFSTraverse(G,Visit);break;case 4:BFSTraverse(G,Visit);break;case 0:break;default:break;}}while(m);}七、测试结果(截图)主界面八、实验心得1拼写错误节应该避免2尽量用通俗易懂的标示符定义函数、变量3变量应该先定义再使用4应该从使用者的角度考虑,做出简洁的主界面5编好一个函数时应该加注释方便以后阅读时好理解。
生成树实验一、为什么会产生生成树协议,他解决了什么问题概念及背景知识:1.1MAC地址介绍:单播MAC地址:第一个字节最低位为0,如3C-6A-A7-1A-2E-2B多播MAC地址:第一个字节最低位为1,如01-80-c2-00-00-00广播MAC地址:48位全部为1,如FF-FF-FF-FF-FF-FF1.2 二层转发介绍交换机二层的转发特性,符合802.1D网桥协议标准。
交换机的二层转发涉及到两个关键的线程:地址学习线程和报文转发线程地址学习线程如下:A)交换机接收网段上的所有数据帧,利用接收数据帧中的源MAC地址来建立MAC地址表;B)端口移动机制:交换机如果发现一个包文的入端口和报文中源MAC地址的所在端口(在交换机的MAC地址表中对应的端口)不同,就产生端口移动,将MAC地址重新学习到新的端口C)地址老化机制:如果交换机在很长一段时间之内没有收到某台主机发出的报文,在该主机对应的MAC地址就会被删除,等下次报文来的时候会重新学习。
转发线程如下:A)交换机在MAC地址表中查找数据帧中的MAC地址,如果找到,就将该数据帧发送到相应的端口,如果找不到就向所有的端口发送;B)如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文C)交换机向入端口以外的其它所有端口转发广播报文1.3 VLAN二层转发介绍报文转发线程:A)交换机在MAC地址表中查找数据帧中的目的MAC地址,如果找到(同时还要确保报文的入VLAN和出VLAN是一致的),就将该数据帧发送到相应的端口,如果找不到,就向(VLAN 内)所有的端口发送;B)如果交换机收到的报文中源MAC地址和目的MAC地址所在的端口相同,则丢弃该报文;C)交换机(VLAN内)入端口以外的其它所有端口转发广播报文。
1.4加入VLAN的好处:A)限制了局部的网络流量,在一定程度上可以提高整个网络的处理能力B)虚拟的工作组,通过灵活的VLAN设置,把不同的用户划分到工作组内;C)安全性,一个VLAN内的用户和其它VLAN内的用户不能互访,提高了安全性。
一、实验目的通过本次生成树实训,加深对生成树概念的理解,掌握生成树的构建方法,学习使用网络设备配置生成树协议,并分析生成树在网络中的重要作用。
二、实验环境1. 实验设备:两台交换机、一台计算机、网线。
2. 实验软件:网络仿真软件(如GNS3)或实际网络设备。
三、实验内容1. 了解生成树的基本概念和作用。
2. 学习生成树的构建方法,包括STP(Spanning Tree Protocol)和RSTP(Rapid Spanning Tree Protocol)。
3. 使用网络设备配置生成树协议。
4. 分析生成树在网络中的重要作用。
四、实验步骤1. 了解生成树的基本概念和作用生成树是一种无环的连通子图,它包含一个图的所有节点,但不包含任何环。
在计算机网络中,生成树主要用于防止网络中的环路,避免广播风暴和网络性能下降。
2. 学习生成树的构建方法生成树的构建方法主要有以下两种:(1)STP(Spanning Tree Protocol)STP是一种基于桥优先级的生成树协议。
在STP中,每个交换机都有一个桥优先级,该优先级由桥ID(桥优先级+MAC地址)决定。
桥ID越小,优先级越高。
STP通过以下步骤构建生成树:- 选择根桥:所有交换机通过比较桥ID确定根桥。
- 计算每个交换机的端口角色:根端口、指定端口和非指定端口。
- 选择每个交换机的根端口和指定端口。
(2)RSTP(Rapid Spanning Tree Protocol)RSTP是一种改进的STP协议,它提高了网络恢复速度。
RSTP通过以下步骤构建生成树:- 立即阻塞所有端口:所有端口初始时处于阻塞状态。
- 立即转发端口:当检测到端口状态变化时,立即将端口转换为转发状态。
- 优化端口状态转换:RSTP使用端口状态转换时间优化网络恢复速度。
3. 使用网络设备配置生成树协议以RSTP为例,配置生成树协议的步骤如下:(1)在交换机上配置RSTP协议:```Switch> enableSwitch# configure terminalSwitch(config)# spanning-tree mode rstp```(2)查看交换机生成树状态:```Switch(config)# show spanning-tree summary```4. 分析生成树在网络中的重要作用生成树在网络中的重要作用如下:- 防止环路:生成树通过阻塞部分端口,避免网络中的环路,从而防止广播风暴和网络性能下降。
1.实验报告如有雷同,雷同各方当次实验成绩均以0 12分计。
32.当次小组成员成绩只计学号、姓名登录在下表中的。
43.在规定时间内未上交实验报告的,不得以其他方式补5交,当次成绩按0分计。
64.实验报告文件以PDF格式提交。
789【实验题目】生成树协议10 【实验目的】理解快速生成树协议的配置及原理。
使网络在有冗余链路的情况下避免11环路的产生,避免广播风暴等。
12 【实验内容】13 (1)完成实验教程实例3-8的实验,回答实验提出的问题及实验思考。
14 (P117)15 (2)抓取生成树协议数据包,分析桥协议数据单元(BPDU )。
16 (3)在实验设备上查看VLAN 生成树,并学会查看其它相关重要信息。
17院系班 级组长学号学生实验分工陈 刘 3-8、 宗良18【实验要求】19一些重要信息需给出截图。
20注意实验步骤的前后对比!21【实验记录】(如有实验拓扑请自行画出,要求自行画出拓扑图)22(1)实例3-823实验拓扑图如下:2425步骤0:将PC1和PC2配置好IP地址和掩码后按照拓扑图连接实验设备。
2627在PC1上启动Wireshark 软件观察包的数量变化如下:2829此时已经产生了广播风暴。
30两台交换机此时的生成树配置信息如下:313233无生成树配置信息。
34用PC1pingPC2时包增长情况如下:3536可见此时包增长的更快,已经产生广播风暴,但是PC并未发生死锁。
37步骤1:38配置交换机A:3940步骤2:41配置交换机B:4243步骤3:44配置两交换机的快速生成树协议:45再按照拓扑图连接实验设备,此时包增长情况如下:464748此时两PC间可以相互ping通,且无广播风暴。
由此可见生成树协议的作用为49避免网络中存在交换环路的时候产生广播风暴,确保在网络中有环路时自动切断50环路。
51525354555657585960步骤4:验证测试61SwitchA的生成树信息:6263SwitchB的生成树信息:6465SwitchB中RootCost和RootPort值都为0,因此SwitchB为根交换机。
计算机网络实验 王爱新
交换实验三---------管理交换机的冗余链路
一、项目问题
某单位采用2台交换机组成一个局域网,由于很多数据流量是跨过交换机进行传输的,因此为了提高交换机之间的传输带宽,并实现链路冗余备份,在2台交换机之间采用2根网线相连,此时在网络中间形成了环路,有可能引起广播风暴。
怎样才能避免呢?管理员可用两种方法:1、可以用端口聚合来解决,实际上端口聚合主要目的使增加网络连接带宽的,避免在交换机与交换机连接时产生瓶颈。
2、启用交换机的生成树功能。
二、项目实施环境
S2126G 交换机2台,操作系统为Windows 的PC 机2台,网络拓朴如图所示,PC1连接switch1的FastEthernet0/22端口,PC2连接switch2的FastEthernet0/22端口,switch1和switch2之间通过快速以太网端口Fa0/12 、Fa0/2端口连接。
F0/2
PC
PC
F0/12
2126-1
2126-2
F0/1
F0/2
F0/22
F0/22
三、主要任务
1、配置生成树协议STP
2、配置快速生成树协议RSTP
四、项目实践目的
1、理解生成树协议STP及快速生成树协议RSTP的原理
2、掌握生成树协议STP及快速生成树协议RSTP的配置
五、项目实施步骤
(一)启用生成树协议实现冗余备份
1、两台交换机之间先连接一条电缆
2.在每台交换机上开启生成树协议
switchx# conf ter
switchx(config)# spanning-tree
问:这个命令的作用是什么?
switchx(config)#end
switchx# show spanning-tree
switchx# show spanning-tree interface fastethernet 0/12
3.在每台交换机上设置生成协议
switchx(config)# spanning-tree mode stp
switchx# show spanning-tree
4.把两台交换机之间的第二根电缆连接好,设置交换机的优先级
把交换机Switch1的优先级设为4096,Switch2的优先级采用默认值32768。
switchx(config)# spanning-tree priority 4096
switchx# show spanning-tree
问:设置交换机的优先级,有什么作用?
5、验证交换机switch2端口F0/12和F0/2的状态
Switch2# show spanning-tree interface fastethernet 0/12
Switch2# show spanning-tree interface fastethernet 0/2
问题1:目前状态,哪台交换机是根交换机?F0/12和F0/22的状态是什么?
6.验证网络拓朴发生变化时,ping的丢包情况
从PC1 ping PC2 ,然后拨掉switch1与 switch2的端口F0/2之间的连线,
观察丢包情况。
C:>\ping 172.16. 0.2 –t
问题1:ping命令,加上参数-t,作用是什么?
问题2:丢了几个包?解释原因。
7.验证网络拓朴发生变化时,交换机switch2的端口F0/12的状态,并观察生成树的收敛时间。
Switch2# show spanning-tree interface fastethernet 0/12
问题3:生成树的收敛时间是多少?
(二)配置快速生成树协议
网络拓朴按图连接好。
1.在每台交换机上开启快速生成树协议
switchx# conf ter
switchx(config)# spanning-tree
switchx(config)#end
switchx# show spanning-tree
switchx# show spanning-tree interface fastethernet 0/12
switchx# show spanning-tree interface fastethernet 0/2
问题4:switch1和switch2的端口F0/12及F0/2的状态分别是什么?
2.在每台交换机上设置快速生成树协议
switchx(config)# spanning-tree mode rstp
switchx# show spanning-tree
3.设置交换机的优先级
把交换机Switch1的优先级设为8192,Switch2的优先级采用默认值32768。
switchx(config)# spanning-tree priority 8192
switchx# show spanning-tree
4、验证交换机switch2端口F0/12和F0/2的状态
Switch2# show spanning-tree interface fastethernet 0/12
Switch2# show spanning-tree interface fastethernet 0/2
问题5:F0/12和F0/2的状态是什么?
5.验证网络拓朴发生变化时,拨掉switch1与 switch2的端口F0/2之间
的连线,观察交换机switch2的端口F0/12的状态,并观察状态转换时间。
Switch2# show spanning-tree interface fastethernet 0/2 问题6:F0/12的状态是什么?状态转换时间是多少?
6.验证网络拓朴发生变化时,ping 的丢包情况
从PC1 ping PC2 ,然后拨掉switch1与 switch2的端口之间的连线,观察丢包情况。
C:>\ping 172.16.0.2 –t 问题7:丢了几个包?
(三)扩展实验 多交换机生成树协议
如图,三台交换机相连,通过设置,控制三层交换机为根交换机。
并且控制非根交换机的指定端口。
F0/2
2126-1
2126-2
F0/2
F0/22
F0/22
3760-2
F0/2
F0/12
F0/12
F0/12。