STP协议-基础
生成树协议
一 .技术背景
一个缺乏冗余性设计的网络:任何一个网络节点出现故障,会造成单链路故障、单设备故障,使整个网络瘫痪。
引入冗余性的同时也引入了二层环路:网络的冗余性增强了,但是却出现了二层环路。
常见的二层环路的原因有:错误地连接设备之间的互联线缆、配置错误等。
二 .二层环路带来的问题
因为交换机对“BUM帧(Broadcast,Unknown unicast,Multicast)指定广播、未知单播及组播帧”,会进行泛洪行为,一旦在环路中进行泛洪,那么数据帧就会被复制多份,然后在环路中进行着无限制的泛洪,就会形成以下一系列的问题:
1 广播风暴:短时间内会出现大量数据帧在环路中无限制的泛洪。
2 重复帧拷贝:在广播风暴的同时还会将数据帧重复拷贝多份,不停的防洪。
3 MAC地址漂移:当一台交换机的环路相关的端口,因为收到了被重复拷贝的数据帧,导致MAC地址表中环路相关端口和MAC的对应关系会不停的来回快速切换,导致以此为目标MAC的数据帧找不到去路。
三. 生成树协议
在网络中部署生成树后,交换机之间会进行生成树协议报文的交互并进行无环拓扑计算,最终将网络中的某个(或某些)接口进行阻塞(Block),从而打破环路。
交换机上运行的生成树协议会持续监控网络的拓扑结构,当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动做出调整。
因此,生成树能够动态响应网络拓扑变化调整阻塞接口,既能解决二层环路问题,也能为网络的冗余性提供一种方案。
查看生成树的简要信息命令:display stp brief
四 .STP的基本概念
1 桥ID(Bridge ID,BID)
IEEE802.1D标准中规定BID由16位的桥优先级(BridgePriority)与桥MAC地址构成,优先级默认为32768。
每一台运行STP的交换机都拥有一个唯一的BID。
BID桥优先级占据高16bit,其余的低48bit是桥MAC地址。
在STP网络中,BID最小的设备会被选举为根桥。
注:此处网桥(Bridge ),或者桥也就是交换机。
相关命令
修改优先级命令:stp priority 0 \\优先级必须是4096的倍数
修改优先级为0:stp root primary \\树根
修改优先级为4096:stp root secondary \\次级根
查看生成树信息命令:display stp
查看接口信息命令:display interface
2 根桥(Root Bridge)
STP的主要作用之一是在整个交换网络中计算出一棵无环的“树”(STP树)。
根桥是一个STP交换网络中的“树根”。
STP开始工作后,会在交换网络中选举一个根桥,根桥是生成树进行拓扑计算的重要“参考点”,是STP计算得出的无环拓扑的“树根”。
在STP网络中,桥ID最小的设备会被选举为根桥。
在BID的比较过程中,首先比较桥优先级,优先级的值越小,则越优先,拥有最小优先级值的交换机会成为根桥;如果优先级相等,那么再比较MAC地址,拥有最小MAC地址的交换机会成为根桥。
3 Cost(开销)
每一个激活了STP的接口都维护着一个Cost值,接口的Cost主要用于计算根路径开销,也就是到达根的开销。
接口的缺省Cost除了与其速率、工作模式有关,还与交换机使用的STPCost计算方法有关。
接口带宽越大,则Cost值越小。
用户也可以根据需要通过命令调整接口的Cost。
COST计算方法

4 RPC(根路径开销,Root Path Cost)
在STP的拓扑计算过程中,一个非常重要的环节就是“丈量”交换机某个接口到根桥的“成本”,也即RPC。
一台设备从某个接口到达根桥的RPC等于从根桥到该设备沿途所有入方向接口的Cost累加。
5 Port ID(PID,接口ID)
运行STP的交换机使用接口ID来标识每个接口,接口ID主要用于在特定场景下选举指定接口。
接口ID由两部分构成的,高4bit是接口优先级,低12bit是接口编号。
激活STP的接口会维护一个缺省的接口优先级,在华为交换机上,该值为128。用户可以根据实际需要,通过命令修改该优先级。
6 BPDU(Bridge Protocol Data Unit,网桥协议数据单元)
BPDU是STP能够正常工作的根本。BPDU是STP的协议报文。每隔2秒发出一个BPDU。
STP交换机之间会交互BPDU报文,这些BPDU报文携带着一些重要信息,正是基于这些信息,STP才能够顺利工作。
BPDU分为两种类型:
配置BPDU(ConfigurationBPDU)
TCNBPDU(TopologyChangeNotificationBPDU)
配置BPDU是STP进行拓扑计算的关键;
TCNBPDU只在网络拓扑发生变更时才会被触发。
BPDU报文的数据链路层是802.3以太。

STP协议-基础的更多相关文章
- STP协议与MSTP协议
STP协议与MSTP协议 目录 一.STP概述 1.1.交换网络环路的产生 1.2.STP简介 二.生成树算法 2.1.生成树算法的步骤 2.2.网桥 ID 2.3.选择根端口 2.4.选择指定端口 ...
- TCP/IP协议基础(转)
转自 http://www.chinaunix.net 作者:Bernardus160 发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...
- 小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB
Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 ...
- HTTP协议基础与实验
一. HTTP协议(Hypetext Transfer Protoacal,超文本传输协议) HTTP协议规定了Web基本的运作过程,以及Web服务器之间的通信细节. Http协议采用客户端/服务器端 ...
- udp协议基础(转自疯狂java讲义)
第17章 网络编程 17.4 基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...
- UART串口协议基础1
Louis kaly.liu@163.com 串口协议基础 1 串口概述 串口由收发器组成.发送器是通过TxD引脚发送串行数据,接收器是通过RxD引脚接收串行数据. 发送器和接收器都利用了一个移位寄存 ...
- OSI模型第二层数据链路层-STP协议
1.stp协议的由来. 在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即 ...
- 接口测试培训:HTTP协议基础
接口测试培训:HTTP协议基础 引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展. ...
- STP协议
STP协议的作用: 第一, 可以避免网络环路和广播风暴. 二层数据包是没有TTL(time to live)的,如果不加以限制,可能会无限的传播下去.二层设备间如果存在环路,大量的广播包就可能导致广播 ...
- 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识
第41章 HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...
随机推荐
- Electron 打包 (electron-builder)
本文只测试了Windows 10 下打包Windows基础安装包 更多花哨的配置,请戳官方文档 https://www.electron.build/ www.electron.build/ 构建基 ...
- WPF项目需要不断更新前台图片时,碰到“System.IO.IOException: 文件“xxx”正由另一进程使用“问题的解决
问题描述 项目中要求能不断拍照并更新显示图片,使用FileStream在本地创建了图片文件: 当下次重新拍照前删除之前拍过的图片时,提示"System.IO.IOException: 文件& ...
- How to present a paper 怎么讲好一篇文献
Author : 如果在冬夜一个旅人 Date : 2022/05/24 目录 背景说明 1 读文献 1.1 读文献的层次 1.2 论文阅读的首轮次序 2 讲文献 2.1 The Problem to ...
- ORACLE 遇到ORA 03113 数据库连接卡住
环境:RAC 双节点 发现两个节点的alert日志中出现大量的 opiodr aborting process unknown ospid (150950) as a result of ORA-60 ...
- python实现发票二维码解析
通过发票左上角的二维码信息,获取发票的关键信息,只需将图片格式的电子发票或扫描后的发票图片传入即可. 测试结果如下: 增值税电子普通发票:{'发票代码': '031xxxxxx311', '发票号码' ...
- Warning: PHP Startup: Unable to load dynamic library
使用 phpstudy时,一直提示找不到指定的模块,但是在我对应的文件里面是有该模块的 且 php.ini中 对应的语句注释也已打开 我遇见该问题解决方法是:php版本与这个拓展的版本不对应 ,把版 ...
- dropbear 2019.78 Installing to target......Running build_buildroot failed!
使能buildroot的环境变量 source envsetup.sh ;rv1126一般选择90make dropbear-dircleanmake dropbear./build.sh rootf ...
- js-惰性函数
1. 需求:我们现在需要写一个 foo 函数,这个函数返回首次调用时的 Date 对象,注意是首次. 使用场景:当我们每次都需要进行条件判断,其实只需要判断一次,接下来的使用方式都不会发生改变的时候, ...
- tensorrt cuda cudnn 各版本的匹配要求
https://docs.nvidia.com/deeplearning/tensorrt/release-notes/tensorrt-8.html#rel_8-0-3
- HCIP-进阶实验04-多运营商BGP协议部署
HCIP-进阶实验04-多运营商BGP协议部署 1 实验拓扑 2 实验环境说明 2.1 IP地址规划表 设备 接口 IP地址 备注 R1 G0/0/0 12.12.12.1/30 Loopback0 ...