生成树的详细配置及实验[1]

生成树的详细配置及实验[1]
生成树的详细配置及实验[1]

STP及其优化

实验拓扑图:

实验步骤:

1. 设置SW1,SW2,SW3主机名分别为Core1,Core2, ED-SW

2. 把Core1与Core2间的两条链路绑定成etherchannel2,并设置成Trunk mode

Core1:

interface range fa0/23 - 24

switchport trunk encapsulation dot1q //支持ISL及dot1Q的交换机必须设置trunk的封装协议。低端的C2950,C2960,C2918只支持dot1Q,无此命令。

switch mode trunk //接口设置为Trunk模式。

channel-group 2 mode on //接口加入Etherchannel2。

Creating a port-channel interface Port-channel 2

//系统提示自动创建port-channel2。

interface Port-channel2 // Port-channel2接口配置必须同物理接口一致。

switchport trunk encapsulation dot1q

switchport mode trunk

Core2:

interface range fa0/23 - 24

switchport trunk encapsulation dot1q

switch mode trunk

channel-group 2 mode on

Creating a port-channel interface Port-channel 2

interface Port-channel2

switchport trunk encapsulation dot1q

switchport mode trunk

3. 验证etherchannel设置

Core1#sh etherchannel

summary //显示etherchannel的详细信息

Flags: D - down P - in port-channel

I - stand-alone s - suspended

H - Hot-standby (LACP only)

R - Layer3 S - Layer2

U - in use f - failed to allocate aggregator

u - unsuitable for bundling

w - waiting to be aggregated

d - default port

Number of channel-groups in use: 1 //目前已经建好1个etherchannel。

Number of aggregators: 1

Group Port-channel Protocol Ports

------+-------------+-----------+-----------------------------------------------

2 Po2(SU) -

fa0/23(P) fa0/24(P) // S - Layer2 U - in use P - in port-channel

4. Core1,Core2,ED-SW间的所有链路均设置成Trunk

ED-SW:

int range f0/23 – 24

no shutdown

switchport mode trunk

Core1:

int f0/21

switch trunk encap dot1q

switch mode trunk

Core2:

int f0/21

switch trunk encap dot1q

switch mode trunk

5. 验证etherchannel设置

Core2#show interface trunk

Port Mode Encapsulation Status N ative vlan

Fa0/21 on 802.1q trunking

1 // F0/21,Trunk模式为ON,封装为802.1q,目前已经形成Trunking,native vlan为vlan 1。

Po2 on 802.1q trunking

1

Port Vlans allowed on trunk

Fa0/21 1-4094 //此Trunk允许所有的vlan流量通过。

Po2 1-4094

Port Vlans allowed and active in management domain

Fa0/21 1 //此交换域只有vlan 1是活动的vlan。因为现在无其他vlan

Po2 1

Port Vlans in spanning tree forwarding state and not pruned

Fa0/21 1 //Vlan没有被vtp修剪

Po2 1

6. 添加vlan1-10,奇数vlan生成树根选择Core1,偶数vlan生成树根选择Core2

Core1,Core2,ED-SW:

vlan 2 //添加vlan 2

name testvlan2 //命名vlan 2为testvlan2

vlan 3

name testvlan3

vlan 4

name testvlan4

vlan 5

name testvlan5

vlan 6

name testvlan6

vlan 7

name testvlan7

vlan 8

name testvlan8

vlan 9

name testvlan9

vlan 10

name testvlan10

7. 验证新添加的vlan

Core1#sh vlan brief // Vlan标号列,vlan名字,状态,及对应

端口

VLAN Name Status Ports

--------------------------------------------- ---------------------

----------

1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4

Fa0/5, Fa0/6, Fa0/7, Fa0/8

Fa0/9, Fa0/10, Fa0/11, Fa0/12

Fa0/13, Fa0/14, Fa0/15, Fa0/16

Fa0/17, Fa0/18, Fa0/19, Fa0/20

Fa0/22, Gi0/1, Gi0/2

//这些端口默认划分到vlan1,注意Fa0/21,23,24不在这里,因为这3个端口做成了Trunk

2 testvlan2 active

――――部分输出忽略――――――

9 testvlan9 active

10 testvlan10 active

1002 fddi-default act/unsup //这些为特殊vlan,现在基本不用

1003 token-ring-default act/unsup

8. 验证新添加的vlan

Core1#sh spanning-tree

VLAN0001

Spanning tree enabled protocol ieee //Spanning-tree 为ieee标准

Root ID Priority 32769 //此交换机vlan 1的优先级=默认32728+vlan的标号,则vlan2为32768+2,其他vlan类似。

Address 000d.65dc.8800 //交换机MAC

This bridge is the root //此交换机已经成为valn1的root,默认情况一台交换机成为所有vlan的root

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address 000d.65dc.8800

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/4 Desg FWD 19 128.4 P2p

Fa0/21 Desg FWD 19 128.21 P2p

// F0/21为指定端口,处于转发状态,STP Cost为19

Po2 Desg FWD 12 128.65 P2p

VLAN0002

Spanning tree enabled protocol ieee

Root ID Priority 32770

Address 000d.65dc.8800

This bridge is the root

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)

Address 000d.65dc.8800

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/21 Desg FWD 19 128.21 P2p

Po2 Desg FWD 12 128.65 P2p

9. 设置Core1为vlan 1,3,5,7,9的主根

作为vlan2,4,6,8,10的次根

设置Core2为vlan2,4,6,8,10的主根

作为vlan1,3,5,7,9的次根

Core1:

spanning-tree vlan 1,3,5,7,9 root primary

spanning-tree vlan 2,4,6,8,10 root secondary

Core2:

spanning-tree vlan 1,3,5,7,9 root secondary

spanning-tree vlan 2,4,6,8,10 root primary

10. 验证根配置

Core1#sh spanning-tree

VLAN0001

Spanning tree enabled protocol ieee

Root ID Priority 24577

Address 000d.65dc.8800

This bridge is the root

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Bridge ID Priority 24577 (priority 24576 sys-id-ext 1) Address 000d.65dc.8800

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/4 Desg FWD 19 128.4 P2p

Fa0/21 Desg FWD 19 128.21 P2p

Po2 Desg FWD 12 128.65 P2p

VLAN0002

Spanning tree enabled protocol ieee

Root ID Priority 24578 //根网桥优先级及MAC,vlan2的根已经变成了Core2

Address 0013.80e2.4880

Cost 12

Port 65 (Port-channel2)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 28674 (priority 28672 sys-id-ext

2) 本网桥优先级及MAC地址

Address 000d.65dc.8800

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/21 Desg FWD 19 128.21 P2p

Po2 Root FWD 12 128.65 P2p //指定端口变成了根端口

Core1#sh run

spanning-tree mode pvst //生成树模式,默认为PVST

spanning-tree vlan 1,3,5,9 priority 24576

spanning-tree vlan 2,4,6,8,10 priority 28672 //命令被自动转换,也可以直接使用此命令

11. 把PC接入到ED-SW的Fa0/2,并记录端口指示灯转换到绿色的时间___S

为了解决交换机端口转发延迟问题,启用Fa0/2的portfast功能

ED-SW:

ed-sw(config-if)#spanning-tree portfast

%Warning: portfast should only be enabled on ports connected to a single

host. Connecting hubs, concentrators, switches, bridges, etc... to this

interface when portfast is enabled, can cause temporary bridging loops.

Use with CAUTION

//告警信息,建议启用了portfast功能的接口只连接单台主机,接其他设备可能会发生环路

%Portfast has been configured on FastEthernet0/2 but will only

have effect when the interface is in a non-trunking mode.

// Portfast功能只在非Trunk模式下生效

注:也可以在全局模式下输入spanning-tree portfast default启用所有的端口portfast功能

12. 重新插拔PC与ED-SW的网线,再次记录端口指示灯转换到绿色的时间__S

验证portfast已经在Fa0/2口上启用

ed-sw#sh spanning-tree interface f0/2 portfast

VLAN0001 enabled

13. 配置PC IP地址:192.168.88.203/24

配置Core1 Vlan1 IP地址:192.168.88.201/24

配置Core2 Vlan1 IP地址:192.168.88.202/24

Core1:

interface Vlan1

ip address 192.168.88.201 255.255.255.0

no shut

end

Core2:

interface Vlan1

ip address 192.168.88.202 255.255.255.0

no shut

end

14. 在PC的DOS命令行下:

ping 192.168.88.201 -t //不停的Ping 192.168.88.201 断掉ED-SW到Core1的连接,记录ping包丢失了___个

15. 在ED-SW上配置uplinkfast

ed-sw(config)#spanning-tree uplinkfast

16. 验证uplinkfast

ed-sw#sh spanning-tree uplinkfast

UplinkFast is enabled

17. 在PC的DOS命令行下:

ping 192.168.88.201 -t //不停的Ping 192.168.88.201 断掉ED-SW到Core1的连接,记录ping包丢失了__个

18. 取消ED-SW的uplinkfast功能

19. 启用Core1,Core2,ED-SW的RSTP功能

20. 验证RSTP是否启用

ed-sw#sh spanning-tree

VLAN0001

Spanning tree enabled protocol rstp //生成树模式Root ID Priority 24577

Address 000d.65dc.8800

Cost 19

Port 23 (FastEthernet0/23)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)

Address 000d.bdbb.7480

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/2 Desg FWD 19 128.2 Edge

P2p //边缘端口

Fa0/4 Desg BLK 19 128.4 P2p

Fa0/23 Root FWD 19 128.23 P2p

Fa0/24 Altn BLK 19 128.24 P2p //被阻塞的端口

VLAN0002

Spanning tree enabled protocol rstp

Root ID Priority 24578

Address 0013.80e2.4880

Cost 19

Port 24 (FastEthernet0/24)

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Bridge ID Priority 32770 (priority 32768 sys-id-ext 2)

Address 000d.bdbb.7480

Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Aging Time 300

Interface Role Sts Cost Prio.Nbr Type

---------------- ---- --- --------- -------- --------------------------------

Fa0/23 Altn BLK 19 128.23 P2p

Fa0/24 Root FWD 19 128.24 P2p

在PC的DOS命令行下:

ping 192.168.88.201 -t //不停的Ping 192.168.88.201

断掉ED-SW到Core1的连接,记录ping包丢失了__个21. 配置MST

Core1,Core2,ED-SW上启用两个MST Instance 1,2 Vlan1,3,5,7,9映射到Instance 1

Vlan2,4,6,8,10映射到Instance 2

Core1 instance 1优先级设为 4096

Instacen 2优先级设置 16384

Core2 instance 1优先级设为 16384

Instacen 2优先级设置 4096

Core1:

spanning-tree mode mst

spanning-tree mst configuration

instance 1 vlan 1, 3, 5, 7, 9

instance 2 vlan 2, 4, 6, 8, 10

spanning-tree mst 1 priority 16384

spanning-tree mst 2 priority 8192

Core2:

spanning-tree mode mst

spanning-tree mst configuration instance 1 vlan 1, 3, 5, 7, 9 instance 2 vlan 2, 4, 6, 8, 10 spanning-tree mst 1 priority 16384 spanning-tree mst 2 priority 8192 ED-SW:

spanning-tree mode mst

spanning-tree mst configuration instance 1 vlan 1, 3, 5, 7, 9 instance 2 vlan 2, 4, 6, 8, 10

22. 验证MST配置

Core2#sh spanning-tree

MST0

Spanning tree enabled protocol mstp Root ID Priority 32768 Address 000d.65dc.8800

STP.RSTP协议理解

STP/RSTP 协议理解 拟制 Prepared by 沈岭 Date 日期 2004-11-03 评审人 Reviewed by Date 日期 yyyy-mm-dd 批准 Approved by Date 日期 yyyy-mm-dd 华为三康技术有限公司 Huawei-3Com Technologies Co., Ltd. 版权所有 侵权必究 All rights reserved

修订记录Revision Record

目录 1 S TP 生成树协议 (7) 1.1STP的主要作用 (7) 1.2STP的基本原理: (7) 1.3STP端口的角色和状态 (8) 1.4端口状态: (9) 1.5STP算法 (9) 1.5.1问题1 (12) 1.5.2问题2 (13) 1.6STP的计时器: (13) 1.7STP拓扑结构改变 (14) 1.8问题讨论 (16) 1.8.1问题3的答案: (16) 1.8.2附加题: (16) 2 RSTP 快速生成树协议 (19) 2.1RSTP的改进 (19) 2.2P/A协商 (22) 2.3拓扑结构变化 (23) 2.3.1问题1: (24) 2.3.2问题2: (25) 2.3.3问题3 (25) 2.3.4问题4: (25) 2.3.5附加题 (26) 2.4RSTP新增特性 (26) 2.4.1BPDU Guard (26) 2.4.2Root Guard (27)

2.4.3Root Primary/Secondary (27) 2.4.4Loop Guard (27) 2.4.5STP Mcheck (28) 2.4.6STP TC-protection (28) 推荐资料: (29) 参考资料: (29)

最小生成树问题课程设计报告

数据结构课程设计 目录 一. 设计目的.................................................................................................. 错误!未定义书签。 二. 设计内容 (1) 三.概要设计 (1) 1、功能模块图 (1) 2、各个模块详细的功能描述 (2) 四.详细设计 (3) 1.主函数和其他函数的伪码算法 (3) 2、主要函数的程序流程图 (7) 3、函数之间的调用关系图 (15) 五.测试数据及运行结果 (15) 1.正常测试数据及运行结果 (16) 2、非正常测试数据及运行结果 (17) 六.调试情况,设计技巧及体会 (18) 七.参考文献 (19) 八.附录:源代码 (19)

一. 设计目的 课程设计是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。能够在设计中逐步提高程序设计能力,培养科学的软件工作方法。而且通过数据结构课程设计能够在下述各方面得到锻炼: 1、能根据实际问题的具体情况,结合数据结构课程中的基本理论和基本算法,正确分析出数据的逻辑结构,合理地选择相应的存储结构,并能设计出解决问题的有效算法。 2、提高程序设计和调试能力。通过上机实习,验证自己设计的算法的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改。 3、培养算法分析能力。分析所设计算法的时间复杂度和空间复杂度,进一步提高程序设计水平。 二. 设计内容 最小生成树问题: 设计要求:在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。存储结构采用多种。求解算法多种。 三.概要设计 1、功能模块图

最小生成树实验报告

数据结构课程设计报告题目:最小生成树问题 院(系):计算机工程学院 学生姓名: 班级:学号: 起迄日期: 指导教师: 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中某个顶点。

生成树协议STP的应用实验1

实验四、生成树协议 STP的应用实验 【相关知识】 1.生成树协议 STP简介 在局域网中,为了提高网络连接可靠性,经常提供冗余链路。所谓冗余链路就像公路、铁路一 样,条条道路通北京,这条不通走那条。例如在大型企业网中,多半在核心层配置备份交换机(网 桥),则与汇聚层交换机形成环路,这样做使得企业网具备了冗余链路的安全优势。但原先的交换机 并不知道如何处理环路,而是将转发的数据帧在环路里循环转发,使得网络中出现广播风暴,最终 导致网络瘫痪。 为了解决冗余链路引起的问题, IEEE802 通过了 IEEE 802.1d协议, 即生成树协议 (Spanning Tree Protocol,STP)。IEEE 802.1d协议通过在交换机上运行一套复杂的算法,使冗余端口置于“阻塞状 ,从而使网络中的计算机通信时只有一条链路生效,而当这个链路出现故障时,STP 将会重新计 态” 算出网络的最优链路,将“阻塞状态”的端口重新打开,从而确保网络连接的稳定可靠。 生成树协议和其它协议一样,是随着网络的不断发展而不断更新换代的。在生成树协议发展的 过程中,老的缺陷不断被克服,新的特性不断被开发出来。按照功能特点的改进情况,习惯上生成 树协议的发展过程被分为三代: 第一代生成树协议:STP/RSTP 第二代生成树协议:PVST/PVST+ 第三代生成树协议:MISTP/MSTP 2.IEEE 801.1D生成树协议简介 生成树协议(Spanning Tree Protocol,STP)最初是由美国数字设备公司(DEC)开发的,后经 IEEE 修改并最终制定了 IEEE 802.1d标准。 STP 协议的主要思想是当网络中存在备份链路时,只允许主链路激活,如果主链路失效,备份 链路才会被打开。大家知道,自然界中生长的树是不会出现环路的,如果网络也能够像树一样生长 就不会出现环路。STP 协议的本质就是利用图论中的生成树算法,对网络的物理结构不加改变,而 在逻辑上切断环路,封闭某个网桥,提取连通图,形成一个生成树,以解决环路所造成的严重后果。 为了理解生成树协议,必先了解以下概念: (1)桥协议数据单元(Bridge Protocol Data Unit,BPDU):交换机通过交换 BPDU来获得建立 最佳树型拓扑结构所需的信息。生成树协议运行时, 交换机使用共同的组播地址 “01-80-C2-00-00-00”来发送 BPDU; (2)每个交换机有唯一的桥标识符(Brideg ID),由桥优先级和 MAC 地址组成; (3)每个交换机的端口有唯一的端口标识符(Port ID),由端口优先级和端口号组成; (4)对生成树的配置时,对每个交换机配置一个相对的优先级,对每个交换机的每个端口也配 置一个相对的优先级,该值越小优先级越高; (5)具有最高优先级的交换机被称为根桥(Root Bridge),如果所有设备都具有相同的优先级, 则具有最低 MAC 地址的设备将成为根桥; (6)网络中每个交换机端口都有一个根路径开销(Root Path Cost),根路径开销是某交换机到 根桥所经过的路径开销(与链路带宽有关)的总和; (7)根端口是各个交换机通往根桥的根路径开销最低的端口,若有多个端口具有相同的根路径 开销,则端口标识符小的端口为根端口; (8)在每个 LAN 中都有一个交换机被称为指定交换机(Designated Bridge),它是该 LAN 中与 根桥连接而且根路径开销最低的交换机; (9)指定交换机和 LAN 连接的端口被称为指定端口(Designated Port)。如果指定桥中有两个 以上的端口连在这个 LAN 上,则具有最高优先级的端口被选为指定端口。根桥上的端口都可以成为

数据结构课程设计最小生成树问题

数据结构与算法 课程设计报告 课程设计题目:最小生成树问题 专业班级:信息与计算科学1001班 姓名:谢炜学号:100701114 设计室号:理学院机房 设计时间: 2011-12-26 批阅时间: 指导教师:杜洪波成绩: 一、摘要: 随着社会经济的发展,人们的生活已经越来越离不开网络,网络成为人们社 会生活的重要组成部分。我们希望拥有一个宽松的上网环境,以便更好的进行信 息的交流,在此我们有必要提升我们的网络传播速度。从某种程度上来说网络传

播速度代表着一个国家网络化程度的高低。 为了解决网络传输速度的问题我们希望在各个城市之间多架设一些通信网络线路,以缓解网络不够流畅不够便捷的问题。而在城市之间架设网络线路受到资金因素等的限制,我们希望找到一条捷径这样我们即达到了连接了各个城市网络的目的又节省了建设成本。 通过以上的分析我们得出解决此问题的关键在于找到一个短的路径完成网络的假设。在此我们想将各个城市抽象成为一个个节点,连接各个城市之间的网络作为连接各个节点的边。于是我们就将城市的空间分布抽象成为一个网络图,再将各条边的距离抽象成为各节点之间的权值。在原来的基础上建立一个带有权值的网络图。于是原有的问题就转化为找图的最小生成树问题。 我们利用普利姆算法和卡鲁斯卡尔算法找到我们所需要的最小的生成树。 二、问题分析 在n个城市间建立通信网络,需架设n-1条路线。求解如何以最低的经济代价建设此通信网,这是一个最小生成树问题。我们可以利用普利姆算法或者克鲁斯卡尔算法求出网的最小生成树,输入各城市的数目以及各个城市之间的距离。将城市之间的距离当做网中各点之间的权值。 三、实现本程序需要解决的问题 (1)如何选择存储结构去建立一个带权的网络; (2)如何在所选存储结构下输出这个带权网络; (3)如何实现普利姆算法的功能; (4)如何从每个顶点开始找到所有的最小生成树的顶点; (5)如何输出最小生成树的边及其权值 此问题的关键就是利用普利姆算法,找到一个最小上的生成树,在一个就是输出我们所需要的信息,在此我们将各个城市看做是网中的各个顶点城市之间的距离看做是个顶点之间的权值。现在我们问题做如下的分析: 这个问题主要在于普利姆算法的实现。我们将各个城市的空间分布抽象成一个带有权值的网络,这个权值就是任意两个城市之间,各个城市就看做是网络的各个顶点。 我们建立的输入的数据格式为:首先提示输入带权的顶点数目,我定义为整形的数据型,然后输入每条边的信息,即边的两个顶点之间的权值,以十进制整数类型数据,这样我们就建立了一个带权的网络。 问题的输出我是将我们所得到的最小生成树的路线输出出来。 题目的要求就是我们在n个城市之间架设网络得到的最为经济的架设方法,我们进行以上的工作就是在找我们所需要的最小生成树,已解决我们的问题。 四、算法思想 普利姆算法求最小生成树的主要思想 假设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,{E})为N的最小生成树。

最小生成树的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; }

生成树协议故障排除

附件2: 北京理工大学珠海学院实验报告 ZHUHAI CAMPAUS OF BEIJING INSTITUTE OF TECHNOLOGY 班级学号姓名指导教师成绩实验题目生成树协议故障排除实验时间 拓扑图 地址表

端口分配- S2 学习目标 ?观察所有中继的初始状态 ?更正存在的错误 ?记录交换机配置 场景 拓扑图所示的冗余交换 LAN 由您负责维护。您和您的用户发现在网络高峰期延时会变长,经过分析,您怀疑是中继拥塞所致。您发现在所配置的六条中继中,只有两条在当前运行的默认 STP 配置中转发数据包。要解决此问题,就需要提高对可用中继的使用率。 任务1:观察所有中继的初始状态 在每台交换机上,使用show spanning-tree命令列出其上的生成树表。注意观察每台交换机上的转发端口,找出在默认配置中哪些中继没有被使用。您可以使用网络拓扑图来记录所有中继端口的初始状态。 任务2:更正存在的错误 修改生成树配置,使所有三条中继都能用上。假设三个用户LAN(10、20 和30)承载等量的流量。尝试找出一个解决方案,使三个用户VLAN 中的每一个都使用不同的一组端口进行转发。 要使本次练习得到正确评分,您必须满足以下条件: ?S1 成为VLAN 10 的根桥(优先级4096)、VLAN 20 的备用根桥(优先级16384)?S2 成为VLAN 20 的根桥(优先级4096)、VLAN 30 的备用根桥(优先级16384)?S3 成为VLAN 30 的根桥(优先级4096)、VLAN 10 的备用根桥(优先级16384) 任务3:记录交换机配置 实施完毕您的解决方案后,在每台交换机上捕获show run命令的输出并保存在文本文件中。

理解快速生成树协议(RSTP)

快速生成树协议(802.1w) 注:本文译自思科的白皮书Understanding Rapid Spanning Tree Protocol(802.1w). ---------------------------------------------------------------------------------------------------------------------- 介绍 Catalyst 交换机对RSTP的支持 新的端口状态和端口角色 端口状态(Port State) 端口角色(Port Roles) 新的BPDU格式 新的BPDU处理机制 BPDU在每个Hello-time发送 信息的快速老化 接收次优BPDU 快速转变为Forwarding状态 边缘端口 链路类型 802.1D的收敛 802.1w的收敛 Proposal/Agreement 过程 UplinkFast 新的拓扑改变机制 拓扑改变的探测 拓扑改变的传播 与802.1D兼容 结论 ---------------------------------------------------------------------------------------------------------------------- 介绍 在802.1d 生成树(STP)标准设计时,认为网络失效后能够在1分钟左右恢复,这样的性能是足够的。随着三层交换引入局域网环境,桥接开始与路由解决方案竞争,后者的开放最短路由协议(OSPF)和增强的内部网关路由协议(EIGRP)能在更短的时间提供备选的路径。 思科引入了Uplink Fast、Backbone Fast和Port Fast等功能来增强原始的802.1D标准以缩短桥接网络的收敛时间,但这些机制的不足之处在于它们是私有的,并且需要额外的配置。快速生成树协议(RSTP;IEEE802.1w)可以看作是802.1D标准的发展而不是革命。802.1D 的术语基本上保持相同,大部分参数也没有改变,这样熟悉802.1D的用户就能够快速的配置新协议。在大多数情况下,不经任何配置RSTP的性能优于思科的私有扩展。802.1w能够基于端口退回802.1D以便与早期的桥设备互通,但这会失去它所引入的好处。

数据结构课程设计报告java最小生成树

上海电力学院 数据结构(JAVA)课程设计 题目:____最小生成树_______ 学生姓名:_****___________ 学号:_____*******_______ 院系:计算机科学与技术学院 专业年级: ______*****___级 20**年 *月**日

目录 1.设计题目 (1) 2.需求分析 (1) 1)运行环境 (1) 2)输入的形式和输入值的范围 (1) 3)输出的形式描述 (1) 4)功能描述 (1) 5)测试数据 (1) 3.概要设计 (1) 1)抽象数据类型定义描述 (1) .2)功能模块设计 (1) 3)模块层次调用关系图 (2) 4.详细设计。实现概要设计中定义的所有的类的定义及类中成员函数,并对主要的模块写出伪码算法。 (2) 5.调试分析。包括调试过程中遇到的问题及解决的方法、算法的时间空间复杂性分析、经验体会。 (6) 6.用户使用说明。详细列出每一步的操作说明。 (7) 7. 测试结果 (7) 8.附录:程序设计源代码 (9)

一、设计题目 1).问题描述 若要在 n 个城市之间建设通信网络,只需要架设n-1 条线路即可。如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。 2). 基本要求 以邻接多重表存储无向带权图,利用克鲁斯卡尔算法或普瑞姆算法求网的最小生成树。 二、需求分析 1)运行环境 软件在JDK运行,硬件支持windows系统 2)输入的形式和输入值的范围 自动生成顶点数据在10~20之间;各个顶点之间权值在25~50之间;通过程序改动亦可生成已知顶点权值之间的最小生成树,需将随机生成代码改为edge edge[]={new edge(0,1,16),new(0,2,18)......}; 将已知顶点、权值通过其函数输入再生成其所对应最小生成树。 3)输出的形式描述 输出随机生成顶点个数以及各个顶点之间权值;然后输出本次生成顶点之间构成的最小生成树。

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();

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 -

最小生成树数据结构课程设计报告

河北科技大学 课程设计报告 学生姓名:白云学号:Z110702301 专业班级:计算机113班 课程名称:数据结构课程设计 学年学期: 2 01 3—2 014学年第2学期指导教师:郑广 2014年6月

课程设计成绩评定表

目录 一、需求分析说明 (1) 1.1最小生成树总体功能要求 (1) 1.2基本功能 (1) 1.3 模块分析 (1) 二、概要设计说明 (1) 2.1设计思路 (1) 2.2模块调用图 (2) 2.3数据结构设计 (2) 2.3.1.抽象数据类型 (2) 2.3.2方法描述 (2) 三、详细设计说明 (3) 3.1主函数模块 (3) 3.2邻接表输出子模块 (3) 3.3邻接矩阵输出子模块 (3) 3.4创建邻接矩阵子模块 (3) 3.5创建邻接表子模块 (3) 3.6 Prim子模块 (3) 3.7 Kruscal子模块 (4) 四、调试分析 (4) 4.1实际完成情况说明 (4) 4.2 出现的问题及解决方案 (4) 4.3程序中可以改进的地方 (4) 六、课程设计总结 (7) 七、测试数据 (7) 八、参考书目 (7)

一、需求分析说明 1.1最小生成树总体功能要求 在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。存储结构采用多种。求解算法多种。 1.2基本功能 在n个城市之间建设网络,只需要架设n-1条线路,建立最小生成树即可实现最经济的架设方法。 程序可利用克鲁斯卡尔算法或prim算法生成最小生成树。 1.3 模块分析 主模块:用于生成界面和调用各个子模块。 Kruscal模块:以kruscal算法实现最小生成树。 Prim模块:以prim算法实现最小生成树。 邻接表模块:用邻接表方式存储图。 邻接表输出模块:输出邻接表。 邻接矩阵模块:用邻接矩阵方式存储图。 邻接矩阵模块:输出邻接矩阵。 二、概要设计说明 2.1设计思路 问题的解决分别采用普利姆算法以及克鲁斯卡尔算法。 1) 普利姆算法就是先选择根,把它放入一个集合U中,剩余的顶点放在集合V中。然后选择该顶点与V中顶点之间权值最小的一条边,以此类推,如果达到最后一个则返回上一个顶点。 2) 克鲁斯卡尔算法就是写出所有的顶点,选择权最小的边,然后写出第二小的,以此类推,最终要有一个判断是否生成环,不生成则得到克鲁斯卡尔的最小生成树。

实验报告

算法与数据结构 实验报告 系(院):计算机科学学院 专业班级:软工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的优先级 当两个端口都连在一个共享介质上,交换机会选择一个高优先级的端口进入

计算机网络实验三 生成树的协议配置

惠州学院《计算机网络》实验报告 实验三生成树的协议配置 一.实验目的 在掌握环路产生的原因及危害性的基础上,学习STP的功能、原理及配置方法,从而了解利用冗余链路来提高网络安全性和可靠性的相关技术。 二.实验环境 1.交换机2台,二层三层均可,本实验使用的是二层交换机 2.实验用PC机2台 3.Console电缆2根 4.直连双绞线2根 5.交叉双绞线2根 三.实验内容和要求 (1)掌握链路冗余的重要性。 (2)了解广播风暴对网络性能造成的影响。 (3)掌握STP、RSTP和MSTP的概念以及相互之间的区别。 (4)学习生成树协议的配置方法。 四.网络拓扑图 五、实验步骤 生成树协议在部分交换机(如思科)上是自动打开的,管理员不需要进行配置。但在一些交换机(如锐捷)上默认是关闭的,如果网络中存在环路,则必须手动开启。根据如上的拓扑图,具体配置如下: 1.在交换机A上创建一个VLAN,然后将与PC1连接的端口添加到VLAN 10中。同时,将用于交换机之间连接的两个端口设置为tag模式。 Switch-A#configure terminal Switch-A(config)#vlan 10

Switch-A(config-vlan)#name test Switch-A(config-vlan)#exit Switch-A(config)#interface FastEthernet 0/6 Switch-A(config-if)#switchport access vlan 10 Switch-A(config-if)#end Switch-A(config)#interface FastEthernet 0/3 Switch-A(config-if)#Switchport mode trunk Switch-A(config-if)#exit Switch-A(config)#interface FastEthernet 0/4 Switch-A(config-if)#Switchport mode trunk Switch-A(config-if)#end 2.在交换机B上创建一个VLAN,然后将与PC2连接的端口添加到VLAN 10中。同时,将用于交换机之间连接的两个端口设置为tag模式。 Switch-B#configure terminal Switch-B(config)#vlan 10 Switch-B(config-vlan)#name test Switch-B(config-vlan)#exit Switch-B(config)#interface FastEthernet 0/6 Switch-B(config-if)#switchport access vlan 10 Switch-B(config-if)#end Switch-B(config)#interface FastEthernet 0/3 Switch-B(config-if)#Switchport mode trunk Switch-B(config-if)#exit Switch-B(config)#interface FastEthernet 0/4 Switch-B(config-if)#Switchport mode trunk Switch-B(config-if)#end 3.如果该交换机没有启用生成树协议,则分别在A和B交换机上启用相应的协议,以免产生环路。Cisco交换机开启生成树协议的命令为:spanning-tree vlan 1 Switch-A(config)#spanning-tree vlan 1 Switch-B(config)#spanning-tree vlan 1 锐捷交换机开启生成树协议的命令为:spanning-tree mode rstp 六、实验截图

相关文档
最新文档