位置: IT常识 - 正文

STP详解

编辑:rootadmin
STP详解 STP

推荐整理分享STP详解,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

STP全称为“生成树协议”(Spanning Tree Protocol),是一种网络协议,用于在交换机网络中防止网络回路产生,保证网络的稳定和可靠性。它通过在网络中选择一条主路径(树形结构),并阻塞其他可能形成回路的路径,以避免数据包在网络中产生无限循环,从而实现网络的高效和可靠传输。STP在交换机之间进行通信和协调,确保网络拓扑结构的稳定和可用性,并且能够自动适应网络拓扑结构的变化。STP是一种基于链路层的协议,广泛应用于各种类型的局域网和数据中心网络中。

文章目录STP技术背景作用:BPDU原理生成树算法 —— 选举根交换机生成树算法 —— 选举根端口生成树算法 —— 选举指定端口并阻塞备用端口端口状态(Port States):cost(成本值)的计算公式是案例技术背景

在一个有多个交换机或者桥接器的网络中,当存在多条路径连接同一组设备时,可能会发生环路,数据包会不断循环在这些路径上传递,导致网络堵塞或者数据包丢失。这时候STP就可以检测并消除环路,保证数据包能够正确地传输。

一个缺乏冗余性设计的网络:任何一个网络节点出现故障,会造成单链路故障、单设备故障,使整个网络瘫痪。

引入冗余性的同时也引入了二层环路:网络的冗余性增强了,但是却出现了二层环路。

常见的二层环路的原因有:错误地连接设备之间的互联线缆、配置错误等。

STP用于构建一个无环的网络拓扑结构,防止数据包在网络中出现环路并造成广播风暴。STP的主要作用是在网络中选择一个最优的路径,以避免广播风暴和冗余数据包的产生,同时提高网络的可靠性和稳定性。

假设有一个大公司,公司的总部和各个分部之间需要进行通信和数据传输。为了保证通信的可靠性和安全性,每个分部都建立了多个交换机,这些交换机通过不同的链路连接着不同的主机和服务器。

然而,由于链路的冗余和网络的复杂性,可能会出现链路环路的情况,也就是说,某些交换机之间会存在多条路径,而这些路径上又连接了多个交换机,形成了一个环路。这样一来,数据包就可能在环路上不停地循环,无法到达目的地,从而导致通信故障。

为了解决这个问题,公司决定使用 STP 技术来避免链路环路的出现。通过在交换机之间建立逻辑上的拓扑结构,STP 可以选择一条最佳的路径,同时屏蔽其他的路径,从而避免数据包在环路上不停地循环,保证了数据的可靠传输。这样一来,公司的通信和数据传输就更加可靠和高效了。

作用:

用于在网络中防止数据包在交换机之间形成环路,从而导致网络故障和拥塞。在一个具有冗余链路的网络中,如果不进行处理,数据包就会在多个路径上无限制地循环发送,最终导致网络崩溃。

STP的基本思想是通过选择一条最优路径,从而构建一棵树形结构,从而消除环路。在这个树形结构中,只有一条路径连接任何两个设备,这保证了数据包不会形成环路,从而确保网络的正常运行。

STP的实现需要交换机之间的通信,它们需要交换信息来建立树形结构并确定根桥(Root Bridge),即网络中所有桥中最顶层的桥。在这个过程中,每个桥都会根据所接收到的信息计算出最短路径,并将这个信息向其他桥广播。如果一个桥接收到了另一个桥发送的更优信息,它将更新它自己的信息,并向其他桥广播这个新的信息。

当所有桥都收到了足够的信息后,它们将会选择一个桥作为根桥,并选择一条路径到根桥的最短路径,其余的路径都将被阻止。这个过程称为“生成树算法”。通过STP,网络管理员可以更好地控制网络,减少故障和拥塞,并提高网络的可靠性和稳定性。

生成树算法(Spanning Tree Algorithm)是一种网络算法,其目的是在一个连通图中选择一棵生成树,使得该生成树包含原图的所有节点,且不存在环。

STP详解

在计算机网络中,生成树算法通常用于构建一个树形拓扑结构,以避免网络中的环路和冗余链路。生成树算法的实现通常通过网络设备上的协议来完成,其中最常用的就是Spanning Tree Protocol(STP)。

STP是一种生成树算法,它通过将所有节点的连接关系看作一个图来计算生成树。首先,在该图中选取一个节点作为根节点,然后依次对每个非根节点进行计算,找到连接该节点的链路中的最短路径,将该链路加入生成树。如果该链路导致生成树中出现了环路,则通过从生成树中删除一条链路来解决环路问题。这个过程一直重复,直到所有的非根节点都被加入了生成树中。

STP算法的实现可以通过以下步骤来完成:

选定一个根节点:在网络中选定一个根节点,将其作为生成树的根。计算最短路径:对于每个非根节点,计算连接该节点的链路中的最短路径,将该链路加入生成树。检测环路:检测生成树中是否存在环路,如果存在,则通过删除一条链路来解决环路问题。计算端口状态:根据生成树的计算结果,对网络设备上的端口进行状态计算,决定哪些端口需要开启或关闭。

STP算法的实现可以保证网络中不存在环路和冗余链路,从而提高网络的可靠性和稳定性。

例子:

假设有一个局域网,其中有5台交换机,它们分别是Switch1、Switch2、Switch3、Switch4和Switch5,它们通过多条链路相互连接。为了保证数据的传输不出现环路,我们需要在交换机之间构建一棵生成树。假设在这个局域网中,Switch1是根交换机,那么生成树的过程如下:

Switch1作为根交换机,将所有的端口都设为根端口,并发送BPDU(Bridge Protocol Data Unit)报文,通知其他交换机它是根交换机。Switch2、Switch3和Switch4收到BPDU报文后,比较自己的参数与BPDU报文的参数,发现Switch1的参数更优,因此它们都将自己的根端口设为与Switch1相连的端口,并将自己的非根端口设为指向根端口的端口,然后再向其他交换机发送BPDU报文,以便其他交换机更新生成树的信息。Switch5收到BPDU报文后,发现Switch1的参数更优,因此它将自己的根端口设为与Switch1相连的端口,并将自己的非根端口设为指向根端口的端口,然后向其他交换机发送BPDU报文。在上述过程中,如果有多条链路具有相同的参数,那么根据STP算法中的端口优先级和端口号来决定哪条链路是根端口,哪些是指向根端口的非根端口。经过以上步骤,生成树构建完成,其中Switch1作为根交换机,Switch2、Switch3、Switch4和Switch5成为根交换机的子节点。这样,在数据传输过程中,就可以通过生成树来保证数据只能按照一个方向流动,避免了出现环路和数据丢失等问题。

需要注意的是,STP有多个版本,包括STP、RSTP、MSTP等,它们都有不同的特点和用途。此外,由于STP需要进行广播和计算,因此它可能会对网络性能产生一定的影响,因此在设计网络时需要权衡STP的优点和缺点,选择适当的版本和配置。

BPDU

BPDU是指桥接协议数据单元(Bridge Protocol Data Unit),是在网络中由网桥或交换机发送的信息单元,用于进行交换机之间的通信,以实现网络拓扑的自动发现和动态调整。

当交换机启用STP协议(Spanning Tree Protocol)时,交换机会通过发送BPDU来交流网络拓扑信息,并利用这些信息计算生成一个树型的拓扑结构,从而避免出现网络环路而导致的广播风暴和网络故障。BPDU包含了发送者的标识、端口的标识、桥的标识和优先级、BPDU类型以及其他必要的信息。

交换机通过BPDU实现以下功能:

发现交换机之间的链路关系。选举根交换机,确定整个网络的拓扑结构。计算最短路径,防止出现环路。监控链路状态,检测链路故障。动态调整网络拓扑结构,实现快速恢复。

BPDU包括以下内容:

Protocol Identifier(2 bytes):协议标识符,表示该BPDU是由哪种协议生成的,STP的标识符为0x0000。Protocol Version Identifier(1 byte):协议版本标识符,表示生成BPDU的STP版本,STP版本1为0x00,STP版本2为0x02。BPDU Type(1 byte):BPDU类型,包括配置BPDU(0x00)、TCN BPDU(Topology Change Notification,0x80)、RST BPDU(Rapid Spanning Tree,0x02)等。Flags(1 byte):标志位,包括TCA(Topology Change Acknowledgment)、Proposal、Port Role、Learning、Forwarding和Agreement等。Root Identifier(8 bytes):根桥的优先级和MAC地址,用于在网络中选举根桥。Root Path Cost(4 bytes):从发送BPDU的桥到根桥的路径代价。Bridge Identifier(8 bytes):发送BPDU的桥的优先级和MAC地址。Port Identifier(2 bytes):发送BPDU的端口编号。Message Age(2 bytes):BPDU已经存在的时间,以BPDU为单位计算,最大值为0x1FFF。Maximum Age(2 bytes):BPDU在网络中的最大生存时间,达到该时间BPDU会被认为是过期的,以BPDU为单位计算,最大值为0x1FFF。Hello Time(2 bytes):发送两个连续BPDU之间的时间间隔,以BPDU为单位计算,最大值为0x1FFF。Forward Delay(2 bytes):收到TCN BPDU后,等待网络稳定的时间,以BPDU为单位计算,最大值为0x1FFF。原理

STP(Spanning Tree Protocol)是一种用于创建环路无环路网络拓扑结构的协议。其主要原理是通过选举一个根桥(root bridge)和将其他桥连接到这个根桥的方式来消除网络中的环路。

在STP中,每个桥的端口会被分为两种类型:根端口(root port)和指定端口(designated port)。其中,根端口是连接到根桥的端口,而指定端口是连接到其他桥的端口。通过选举根桥以及为每个桥分配根端口和指定端口,可以实现一个无环路的拓扑结构。

具体实现过程如下:

选举根桥:在网络中,所有的桥会通过发送BPDU(Bridge Protocol Data Unit)来选举根桥。BPDU包含了桥的ID和优先级等信息,其中ID是由优先级和MAC地址组成的,优先级越高的桥被选为根桥。选举完成后,根桥会向其他桥发送BPDU,其他桥也会将其接收到的BPDU向其他桥转发,以保持网络拓扑的更新和同步。计算根端口和指定端口:每个桥根据收到的BPDU计算出到根桥的距离(path cost),距离越短的桥被选为根端口。同时,每个桥还需要选出一个或多个设计端口,这些设计端口会将数据帧转发到其他桥。收敛过程:在网络拓扑发生变化时,STP会通过重新选举根桥和重新计算端口的方式重新构建拓扑结构,直到网络达到一个无环路的状态。这个过程被称为收敛过程,需要一定的时间来完成。

STP的主要作用是保证网络中不会出现环路,从而避免数据包的不必要循环和丢失。同时,STP还能够自动适应网络拓扑的变化,确保网络拓扑结构的稳定和可靠。

生成树算法 —— 选举根交换机根交换机的选举条件:网桥ID(BID)最小者当选。网桥ID(BID)由以下两部分构成:优先级范围 0 - 61440步长 4096默认值 32768交换机的基本MAC地址网桥ID(BID)的比较方法优先级取值越小,则网桥ID(BID)就越小。生成树算法 —— 选举根端口在一个非根交换机上选举出一个根端口RP(Root Port)。并且只能是一个。根端口RP用于接收根交换机发来的BPDU。也用于转发普通流量。根端口RP的选举条件:BPDU接收端口到根交换机的路径成本最小。对端的网桥ID(BID)最小。对端的端口ID(PID)最小。优先级范围 0 - 240步长 16默认值:128端口号链路带宽成本值4MB/s25010MB/s10016MB/s62100MB/s191GB/s410GB/s2生成树算法 —— 选举指定端口并阻塞备用端口在每个段上选出一个指定端口DP(Designated Port)并且只能是一个。指定端口DP用于转发根交换机发来的BPDU,也用来转发普通流量。指定端口DP的选举条件:根交换机的所有端口都是指定端口DP。根端口的对端端口一定是指定端口DP。BPDU转发端口到根交换机的路径成本最小。本端的网桥ID(BID)最小。剩余端口成为备用端口AP(Alternate Port),将它们阻塞。端口状态(Port States):

端口状态是指在一个交换机的端口与跟桥之间的关系。STP确保在一个桥接网络中只有一条活动的路径,从而避免了环路问题。端口状态共有5种:

Disabled(禁用状态):禁用状态的端口不会参与 STP 的计算,处于物理层断开状态。Blocking(阻塞状态):端口接收到 BPDU (Bridge Protocol Data Unit) 数据帧后,端口进入阻塞状态,不会转发数据,但会继续监听网络中的 BPDU,阻止环路的产生。Listening(监听状态):端口接收到 BPDU 数据帧后,进入监听状态。此时,端口仍然不会转发数据,但会继续监听 BPDU,此状态通常持续 15 秒。Learning(学习状态):端口在监听状态一段时间后,进入学习状态,开始学习与之相连的设备 MAC 地址,但不会转发数据。Forwarding(转发状态):学习完毕后,端口进入转发状态,开始转发数据。在这个状态下,端口将正常工作,将数据帧从一个端口转发到另一个端口。在阻塞状态下,端口只能接收bpdu报文。从这种状态转变可能需要20秒;在监听状态下,交换机判断是否有其他路径到达根桥。向前延迟,持续 15秒。监听状态:用户数据不被转发,MAC地址不被学习;在学习状态下,用户数据不会被转发,但MAC地址会从看到的任何流量 中学习。学习状态持续15秒,也称为前向延迟;转发状态转发用户数据,继续学习MAC地址。bpdu仍在处理;cost(成本值)的计算公式是

cost = 200000 Kbps / port_speed

因此,可以看出 Cisco 交换机默认的 cost 值是由带宽决定的,而带宽越大,成本值越小,这也符合了生成树算法的本质,即选择最短路径。同时,由于交换机的速度越来越快,所以在一些新型的 Cisco 交换机中,可能会将默认的 reference bandwidth 值提高到 100Gbps 或更高的数值,以适应新的硬件环境。

其中,port_speed是指端口速率。对于各种常见的端口速率,对应的成本值如下:

端口号链路带宽成本值4MB/s25010MB/s10016MB/s62100MB/s191GB/s410GB/s2案例

案例1: 案例2: 案例3:

本文链接地址:https://www.jiuchutong.com/zhishi/287112.html 转载请保留说明!

上一篇:若依(ruoyi)字典管理插件实现思路探究(若依名字的含义是什么意思)

下一篇:【项目问题定位】前端请求不到资源报错ERR_CONTENT_LENGTH_MISMATCH的解决(项目中的问题)

  • 天眼查企业查询个体工商户信息教程

    天眼查企业查询个体工商户信息教程

  • 荣耀50pro有红外线遥控功能吗(荣耀50pro有红外遥控功能吗)

    荣耀50pro有红外线遥控功能吗(荣耀50pro有红外遥控功能吗)

  • 真我手机语音助手怎么语音唤醒(真我手机语音助手)

    真我手机语音助手怎么语音唤醒(真我手机语音助手)

  • 米家摄像头怎么共享给家人(米家摄像头怎么取消共享)

    米家摄像头怎么共享给家人(米家摄像头怎么取消共享)

  • ppt兼容模式有影响吗

    ppt兼容模式有影响吗

  • 小米手机连接usb没反应(小米手机连接usb只显示充电)

    小米手机连接usb没反应(小米手机连接usb只显示充电)

  • word所认为的字符不包括汉字嘛(字word是指)

    word所认为的字符不包括汉字嘛(字word是指)

  • QQ位置怎么发(qq位置怎么发不出去了)

    QQ位置怎么发(qq位置怎么发不出去了)

  • 笔记本南桥坏了的表现(笔记本南桥坏了 修理需要多少钱)

    笔记本南桥坏了的表现(笔记本南桥坏了 修理需要多少钱)

  • 苹果闹钟不关会响多久(苹果闹钟不关会叫多久)

    苹果闹钟不关会响多久(苹果闹钟不关会叫多久)

  • 一个手机绑定几个qq号(一个手机绑定几个抖音号)

    一个手机绑定几个qq号(一个手机绑定几个抖音号)

  • 打印机没有usb端口怎么办(打印机没有usb端口怎么回事)

    打印机没有usb端口怎么办(打印机没有usb端口怎么回事)

  • 苹果序列号ff开头是什么版(苹果序列号ff开头是翻新机吗)

    苹果序列号ff开头是什么版(苹果序列号ff开头是翻新机吗)

  • 照片生成pdf是什么意思(把照片生成pdf格式文件的软件)

    照片生成pdf是什么意思(把照片生成pdf格式文件的软件)

  • powerpoint的主要功能是(powerpoint的主要应用)

    powerpoint的主要功能是(powerpoint的主要应用)

  • 个人聚合码怎么申请(个人聚合码额度是多少)

    个人聚合码怎么申请(个人聚合码额度是多少)

  • 苹果手机配无线耳机吗(苹果手机配无线充电器吗)

    苹果手机配无线耳机吗(苹果手机配无线充电器吗)

  • 图片大于500k怎么办(图片大于500k怎么弄)

    图片大于500k怎么办(图片大于500k怎么弄)

  • 键盘灯开关是哪个键(键盘灯光开关在哪)

    键盘灯开关是哪个键(键盘灯光开关在哪)

  • soul软件怎么隐身上线(soul软件怎么隐藏关注的人)

    soul软件怎么隐身上线(soul软件怎么隐藏关注的人)

  • iphone11pro怎么插双卡(苹果11pro怎么插耳机)

    iphone11pro怎么插双卡(苹果11pro怎么插耳机)

  • wps如何查找多个内容(wps如何查找多个内容数量)

    wps如何查找多个内容(wps如何查找多个内容数量)

  • vivoz5x有没有微信美颜(vivoz5x怎么设置微信密码解锁)

    vivoz5x有没有微信美颜(vivoz5x怎么设置微信密码解锁)

  • 钉钉上抄送人怎么选(钉钉上抄送人怎么删除)

    钉钉上抄送人怎么选(钉钉上抄送人怎么删除)

  • 京东账号怎么找回(京东账号怎么找回来,原来的号码不用了)

    京东账号怎么找回(京东账号怎么找回来,原来的号码不用了)

  • word专业词汇索引在哪(word2016专业词汇索引)

    word专业词汇索引在哪(word2016专业词汇索引)

  • 默认语音号码是什么意思(默认语音号码是用流量吗)

    默认语音号码是什么意思(默认语音号码是用流量吗)

  • 红米note7pro什么处理器(红米note7pro zol)

    红米note7pro什么处理器(红米note7pro zol)

  • 微信扔瓶子被举报了怎么办(微信的扔瓶子在哪里)

    微信扔瓶子被举报了怎么办(微信的扔瓶子在哪里)

  • 闲鱼怎么看夺宝攻略(有谁在闲鱼夺宝成功的)

    闲鱼怎么看夺宝攻略(有谁在闲鱼夺宝成功的)

  • 母婴app开发误区有哪些(母婴app开发误区是什么)

    母婴app开发误区有哪些(母婴app开发误区是什么)

  • ps怎么沿参考线切图?(ps怎么参考线快捷键)

    ps怎么沿参考线切图?(ps怎么参考线快捷键)

  • 外贸企业税务处理方式
  • 预缴所得税报表填错啦,年报可以修改吗
  • 研发设备的折旧费计入研发费吗
  • 虚开普票的立案标准
  • 无形资产摊销计算例题
  • 土地增值税计入固定资产清理
  • 自产产品用于广告要交消费税吗
  • 税务变更需要哪些材料
  • 一般纳税人取得3%专票可以抵扣吗
  • 收到对方开错的发票怎么处理
  • 卖下脚料怎么做分录
  • 没有收入要做应交税费的会计分录
  • 已经入库的商品出库了要怎么做会计分录
  • 公司看望病人账务处理
  • 企业收入进私户怎么做账
  • 非正常原因导致的存货盘亏或毁损非正常原因是哪些
  • 企业所得税营业税金及附加
  • 增值税专用发票和普通发票的区别
  • 生育津贴做账法会计准则
  • 办公室房租计入什么科目
  • 滴滴开票是专票还是普票
  • 一般纳税人增值税及附加税费申报表怎么填
  • 怎么批量给指定条件加入批注
  • Win11怎么自定义鼠标指针图案
  • 局域网的工作模式及特点
  • 预付款多长时间
  • 利息股息红利个人所得税税率
  • 企业补缴个人所得税罚款
  • php的mysql_query
  • uniapp页面loading
  • 长春花怎么养才能爆花
  • 贷款支付的本息如何记账
  • 斐讯路由器怎么重置
  • 福利费可以抵扣进项吗?
  • vue插槽的使用场景
  • 加工行业增值税负率一般控制在多少?
  • 电子票开票人复核人一样有影响吗
  • 织梦怎么采集文章
  • 生产油漆涂料的物质
  • 小规模纳税人1%税率优惠政策
  • 企业开办前需要预测现金流量计划吗
  • 账面原材料比实际库存多怎么办
  • 提供学历教育服务取得收入免征增值税的有
  • 个体户开公账户每个月要申报吗
  • 加计扣除的增值税怎么做账
  • 营业外支出的会计要素
  • 定额发票已验旧怎么办
  • 服务业如何确定收入
  • 行政单位应缴财政税金
  • 垃圾处理费如何做账
  • 小规模纳税人减按1%怎么计算
  • 赠品视同销售会计分录如何编制?
  • 发货快递费多少钱
  • 工地水包水
  • 协定存款是什么存款
  • 汇兑损益的税务处理
  • sql多表关联修改操作
  • ubuntu更换版本
  • mac怎么连接校园网wifi
  • win7系统怎么设置微信多开
  • VirtualBOX给CentOS建共享文件夹的方法
  • windows media player找不到媒体流
  • win10怎么进去
  • 通过u盘安装win11
  • Win10控制面板打不开
  • 安卓textview设置文本
  • 怎样从零开始
  • linux命令find用法详解
  • bootstrap快速入门
  • selenium自动化步骤
  • “android”
  • python调用python代码
  • 电子税务推广工作内容
  • 江西省发票查询系统
  • 云南国家税务网上开票赋码
  • 长春税务局待遇如何
  • 深圳北站哪里取纸质票
  • 1月纳税申报截止时间
  • 南京江宁汽车过户手续及费用
  • 福州台江区怎么去
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设