文章目录

  • 简介
  • 网络冗余引起的问题
  • STP作用
    • STP操作
    • BPDU
    • RSTP

简介

为了提高网络可靠性,交换网络中通常会使用冗余链路。然而,冗余链路会给交换网络带来环路风险,并导致广播风暴以及MAC地址表不稳定,重复帧拷贝等问题,进而会影响到用户的通信质量。生成树协议STP(Spanning Tree Protocol)可以在提高可靠性的同时又能避免环路带来的各种问题。

STP (Spanning Tree Protocol)生成树协议用于解决在二层交换网络中由于部署冗余链路而造成的转发环路问题。在二层网络中,一旦出现转发环路就会造成数据顿在环路内不断的循环和增生,产生广播风暴导致网络瘫痪。在这种场景下生成树协议应运而生,生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到解决二层转发环路的目的,同时具备链路的备份功能。生成树协议和其他协议一样,也是随着网络的不断发展在不断更新换代。最初被广泛应用的是IEEE802.1D-198STP (Spanning Tre protocol,树议),并 此为基础产生了2.0版本和3.0版本,分别是IEEE 802.1w RSTP (Rapid Spanning Tkee protocol,快速生成树协议)和IEEE802.1s MST (Multiple Spanning Tree Protocol, 生成树协议)。

通常情况下STP需要调整汇聚交换机成为根设备和备份根设备,在需要的位置实施边缘端口和BPDU保护。华为设备上通用生成树不能实现每VLAN实例(除非VBST),如果要实现基于特定VLAN的流量负载,需要多实例生成树MSTP

网络冗余引起的问题


环路会引起广播风暴。
网络中的主机会收到重复数据帧。
环路会引起MAC地址表震荡。

STP作用


STP通过阻塞端口来消除环路,并能够实现链路备份的目的

STP操作

①、端口角色

1.选举一个根桥,剩余的为非根桥
2.每个非根交换机选举一个 根端口
3.每个网段选举一个指定端口
4.阻塞非根、非指定端口

3个有且只有一个:
1)一个网络有且只有一个根交换机 。根交换机所有接口一般都是指定端口
2)一个非根交换机有且只有一个根端口
3)每个链路有且只有一个指定端口,Design Port(DP)
4)其他(N个)都是备份端口AP,(Alternative Port)

每一台交换机启动STP后,都认为自己是根桥
非根交换机在选举根端口时分别依据该端口的根路径开销、对端BID、对端PID和本端PID
非根交换机在选举指定端口时分别依据根路径开销、BID、PID
未被选举为根端口或指定端口的端口为预备端口,将会被阻塞

  • root桥选举:桥id(bridge id),优先级默认为32768,只能是4096的倍数+背板mac(非接口mac)。数值越小越优先
    系统视图stp mode stp
    系统视图stp root primary或者stp priority 0
    系统视图dis stp brief

  • RPC(root path cost):根路径开销
    接口视图下stp cost 2000

②、端口状态


1 端口初始化或使能;
2 端口被选为根端口或指定端口。
3 端口不再是根端口或指定端口。
4 forward delay计时器超时。
5 端口禁用或链路失效。

STP是否允许端口VLAN流量通过是关键

BPDU

BPDU包含桥ID、路径开销、端口ID、计时器等参数,只有根设备可以发送

RST BPDU

STP的配置BPDU中Flag字段的中间6位在RSTP中得到了应用

字段内容 说明
Protocol Identifier 协议ID=“0”
Protocol Version Identifier 协议版本标识符,STP为0,RSTP为2,MSTP为3。
BPDU Type BPDU类型,MSTP为0x02。

  • 0x00:STP的Configuration BPDU
  • 0x80:STP的TCN BPDU(Topology Change Notification BPDU)
  • 0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST BPDU(Multiple Spanning-Tree BPDU)
Flags 对于“标记域”(Flags),第一个bit(左边、高位bit)表示“TCA(拓扑改变响应)”,最后一个bit(右边、低位bit)表示“TC(拓扑改变)”。
Root Identifier 网桥ID都是8个字节——前两个字节是网桥优先级,后6个字节是网桥MAC地址。
Root Path Cost 根路径开销,本端口累计到根桥的开销。
Bridge Identifier 发送者BID,本交换机的BID。
Port Identifier 发送端口PID,发送该BPDU的端口ID。
Message Age 该BPDU的消息年龄。
Max Age 消息老化年龄。
Hello Time 发送两个相邻BPDU间的时间间隔。
Forward Delay 控制Listening和Learning状态的持续时间。

配置BPDU报文每经过一个交换机,Message Age都加1。
如果Message Age大于Max Age,非根桥会丢弃该配置BPDU

RSTP

STP的改进
STP网络中, STP树的完全收敛需要依赖定时器的计时,端口状态从Blocking迁移到Forwarding至少需要两倍Forward Delay的时间长度,总的收敛时间太长,一般需要几十秒的时间,如果STP网络的拓扑结构频繁变化,网络也会频繁失去连通性,从而导致用户通信频繁中断。为了弥补STP慢收敛的缺陷, IEEE 802.1w定义了RSTP (Rapid SpanningTree Protocol). RSPT在STP的基础上进行了许多改进,使得收纹时间大大减少,一般只需要几秒钟的时间,在现实网络中, STP儿乎已经停止使用,取而代之的是RSTP.
树的数量没有发生变化,最显著的是收敛速度快,BPDU发生了变化
下面我们简单介绍一下RSTP改进点中的两个1, 3种端口状态
改进:
AP到到RP立即forwarding


详细内容参见:
HCNA网络技术学习指南-第4章,PPT,实战案例红宝书-案例13

013A-生成树STP概念相关推荐

  1. 链路聚合以及生成树(STP)

    链路聚合以及生成树(STP) 链路聚合 网络层数据链路层工作 特点: 提供线路冗余,还能增加线路带宽 链路聚合的带宽影响的因素: ​ 物理接口的速率,数量(所有加入链路聚合的数量,链路聚合中启用端口的 ...

  2. 华为eNSP配置生成树STP协议

    华为eNSP配置生成树STP协议 一.STP协议 二.STP算法的大原则是先选出不被阻塞的接口,剩下的接口都会被阻塞. (一)先选举一个根桥(根交换机) (二)每个非根交换机选举一个根端口 (三)每个 ...

  3. 【路由交换实验】生成树STP(stp,rstp,mstp)

    理论 冗余的重要性 叫做MAC地址表的震荡 为了增加网络的可靠性,有必要引入双链路的备份,但是引入冗余链路以后,网络里面又产生了环路,产生一系列广播风暴的问题,可以使用STP生成树协议来解决这个问题. ...

  4. 华为生成树stp配置实例

    在一个复杂的网络中,网络规划者由于冗余备份的需要,一般都倾向于在设备之间部署多条物理链路,其中一条作主用链路,其他链路作备份.这样就难免会形成环形网络,若网络中存在环路,可能会引起广播风暴和MAC表项 ...

  5. 完全图、连通图、非连通图、连通分量、强连通图、生成树的概念

    图 对于n个结点的图来说: 无向完全图:有n(n-1)/2 条边,如下:4个顶点有6条边 连通图:无向图中,任意两个顶点是连通的(一个顶点不必与另一个顶点直接相连,可以通过其它顶点到达即可)最少有n- ...

  6. 生成树的概念,最小生成树Prim算法 Kruskal算法

    求解最小生成树可以用Prim算法 Kruskal算法

  7. 网络服务——生成树技术STP的BPDU报文详解

    文章目录 一.STP的简介 1.由来 2.基本概念 二.STP的监测协议-BPDU报文 1.BPDU报文内容 1.1.根ID 1.2.根的路径开销 1.3.端口ID 2.经过BPDU报文之后四个步骤 ...

  8. 网络基础之STP生成树和MSTP多生成树协议

    本章目录 一.STP(生成树协议) 1.STP概述 (1)交换网络环产生的影响 (2)STP简介 2.STP工作原理 (1)生成树算法步骤 (2)BPDU(桥协议数据单元) (3)交换机端口上的STP ...

  9. 《网安学习之道》第一季计算机基础18_生成树协议STP

    第十八章.生成树协议STP的工作原理和配置 一.目的 1.理解生成树的原理 理解STP的选举过程 问题1.为什么是交换机0的f0/1的端口堵塞? 2.配置PVSTP+ 二.STP概念 生成树协议是在数 ...

最新文章

  1. 我竟然混进了Python高级圈子!
  2. KS006基于SSM实现学生成绩管理系统
  3. jenkins rec cve-2019-1003000 复现
  4. LeetCode 70爬楼梯71简化路径72编辑距离(dp)
  5. gcn在图像上的应用_GCN的概念与应用
  6. 如何在ngRepeat中使用Bootstrap Span元素
  7. Python编写编程作业批量自动打分程序的思路与实现
  8. MyBatis学习总结(25)——Mybatis Generator generatorConfig.xml配置文件详细说明
  9. PyTorch中为什么需要使用squeeze()和unsqueeze()操作?
  10. HTML1.0 - html 环境搭建 开发工具
  11. 最优化知识笔记整理汇总
  12. MSBuild 命令参数
  13. TcpSocket的Qt串口实现与QtSocket接收数据不完整处理方法
  14. 另存为fdf或xps加载项_2007 Microsoft Office加载项:Microsoft另存为PDF或XPS
  15. Linux 常用软件
  16. 多目标跟踪之数据关联算法——匈牙利算法
  17. 如何一键重装Win7系统 便捷重装Win7系统教程
  18. 数据库DataBase
  19. 违背妇女意志_2018年国际妇女节:在技术中庆祝妇女
  20. exposure x5胶片滤镜插件如何安装及使用下载技巧

热门文章

  1. 线性回归建模及模型诊断
  2. c语言常用符号优先级问题,【C语言】符号优先级
  3. uboot研读笔记 | 04 - 移植uboot 2012.04到JZ2440(支持Nor Flash读写)
  4. saga分布式事务框架原理学习
  5. “痕迹主义”在基层流行,已成形式主义新变种
  6. win7插了耳机还是外放_一加 OnePlus Buds 蓝牙真无线耳机补充测评报告 游戏低延迟测试 「Soomal」...
  7. php 移动文件夹,php实现移动文件或文件夹的两种方法
  8. 8、CSS排版:从毕昇开始,我们就开始用正常流了
  9. Greedy Search VS Beam Search 贪心搜索 vs 集束搜索
  10. (转)真刀真枪压测:基于TCPCopy的仿真压测方案