一、STP概述

1.1、STP简介

交换网络环路主要由广播风暴、多帧复制和MAC地址表紊乱造成。

广播风暴:一个数据帧或包被传输到本地网段 (由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪。

多帧复制:pc1向pc2发送了一个单播帧B,假设SW1的mac-address中没有关于pc2的mac地址,SW2的mac-address中存在pc2的mac地址,SW3的mac-address中也存在关于pc2的mac地址。当pc1向pc2发送一个单播帧B的时候,由于SW1不知道 pc2的mac地址,所以SW1会进行泛洪的操作,这样以来,SW2和SW3都会收到一个单播帧B,又由于,SW2和SW3都存在pc2的mac地址,所以SW2和SW3都会对单播帧B进行对pc2的转发操作,这样以来pc2就收到了两个同样的单播帧B,这样就形成了多帧复制的现象。

MAC地址表紊乱:当pc发送了一个广播帧A,交换机收到这个广播帧之后会进行泛洪操作,这样以来,这个广播帧会顺时针和逆时针不停的旋转,每次A进入交换内,交换都会不停的修改mac-address表,这样就形成了mac地址表的翻摆。快速的mac地址表翻摆会大量消耗交换机的cpu,严重导致网络的拥堵。

为了防止上述现象的发生,就产生了stp生成树协议。

STP—Spanning Tree Protocol(生成树协议):逻辑上断开环路,防止广播风暴的形成。当线路故障时,阻塞接口被激活,恢复通信,起备份线路作用。

二、STP生成树的算法

2.1、生成树算法步骤

生成树算法分为三个步骤:

  • 选择根网桥(Root Bridge)
  • 选择根端口(Root Ports)
  • 选择指定端口(Designated Ports)

2.2、根网桥

选择根网桥的依据是网桥ID(BID)

网桥ID是唯一的,选择交换网络中网桥ID最小的交换机成为根网桥(网桥优先级一样,选择MAC地址较小的)

2.3、根端口

选择根端口的依据是

到根网桥的跟路径成本

直连的网桥ID最小

端口ID最小

跟路径成本:网桥到根网桥的路径上所有链路的成本之和

端口ID:端口优先级一样选择端口编号较小的

2.4、指定端口

根桥上的端口全是指定端口

在每个网段上,选择一个指定端口

非根桥上的指定端口,选择顺序是:根路径成本较低、所在交换机的网桥ID值较小、端口ID值较小

注:既不是根端口也不是指定端口的,STP将这个端口阻塞(Block)

2.5、BPDU(桥协议数据单元)

BPDU报文字段包含:根网桥ID、跟路劲成本、发送网桥ID、端口ID
当交换机启动时,假定自己是根网桥,在向外发送的BPDU中根网桥ID字段填写自己的网桥ID

2.6、交换机端口的STP状态

STP计时器(Hello时间、转发延迟、最大老化时间)共50S

最新文章

  1. MySQL行锁深入研究
  2. 《C专家编程》第三章——分析C语言的声明
  3. Hacker communities collection
  4. linux命令巧用,随手记
  5. 跑马灯标记marquee
  6. [oracle] ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
  7. HDU 4407 Sum 容斥原理
  8. 【风马一族_git_github】gitGui与github的SSH
  9. 在Oracle SQL Developer中创建新连接
  10. [解决]ASP.NET MVC 4/5 源码调试(source code debug)
  11. C# string.format转义大括号--转
  12. c++ :: 域操作符
  13. Ubuntu防火墙ufw安装配置
  14. Google的SPDY协议成为HTTP 2.0的基础
  15. 中国十大B2C电商站点开发语言调查
  16. vue 模仿机票自定义日历组件,区间选择
  17. 关于http以及aphace配置https
  18. Azure vm 扩展脚本自动部署Elasticsearch集群
  19. C#中的Action<>和Func<>
  20. POJ-3984.迷宫问题(BFS + 路径输出)

热门文章

  1. 寻找无序数组中的前k大元素
  2. AcWing 201. 可见的点
  3. 资源:Intellij IDEA 最新旗舰版注册激活破解*附注册码(2020年亲测)
  4. WPF技巧:命中测试在视觉树中的使用
  5. mybatis复杂映射
  6. Windows内核开发-2-开始内核开发-2-内核开发入门
  7. python 14篇 写日志
  8. Selenium 自动化测试中对页面元素的value比较验证 java语言
  9. python 分析文本文件
  10. ubuntu平台下,字符集的转换命令iconv