生成树协议

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

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

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

二 .二层环路带来的问题
因为交换机对“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协议-基础的更多相关文章

  1. STP协议与MSTP协议

    STP协议与MSTP协议 目录 一.STP概述 1.1.交换网络环路的产生 1.2.STP简介 二.生成树算法 2.1.生成树算法的步骤 2.2.网桥 ID 2.3.选择根端口 2.4.选择指定端口 ...

  2. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  3. 小白日记27:kali渗透测试之Web渗透-Http协议基础,WEB

    Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 ...

  4. HTTP协议基础与实验

    一. HTTP协议(Hypetext Transfer Protoacal,超文本传输协议) HTTP协议规定了Web基本的运作过程,以及Web服务器之间的通信细节. Http协议采用客户端/服务器端 ...

  5. udp协议基础(转自疯狂java讲义)

    第17章  网络编程 17.4  基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...

  6. UART串口协议基础1

    Louis kaly.liu@163.com 串口协议基础 1 串口概述 串口由收发器组成.发送器是通过TxD引脚发送串行数据,接收器是通过RxD引脚接收串行数据. 发送器和接收器都利用了一个移位寄存 ...

  7. OSI模型第二层数据链路层-STP协议

    1.stp协议的由来. 在二层网络中,交换机起到了很重要的作用,如果有一台交换机出现故障会影响网络的使用,为了避免存在单点故障,在实际的二层链路中会采用链路冗余,也就是采用交换设备之间多条联络连接,即 ...

  8. 接口测试培训:HTTP协议基础

    接口测试培训:HTTP协议基础   引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展. ...

  9. STP协议

    STP协议的作用: 第一, 可以避免网络环路和广播风暴. 二层数据包是没有TTL(time to live)的,如果不加以限制,可能会无限的传播下去.二层设备间如果存在环路,大量的广播包就可能导致广播 ...

  10. 【RL-TCPnet网络教程】第41章 HTTP超文本传输协议基础知识

    第41章      HTTP超文本传输协议基础知识 本章节为大家讲解HTTP(HyperText Transfer Protocol,超文本传输协议),从本章节开始,正式进入嵌入式Web的设计和学习. ...

随机推荐

  1. Python Socket 基础多用户编程

    简介   写下这篇小记的原因是想记录一下自己学习Python Socket编程的心路历程.之前在中专的时间学过一些基础的Socket编程,知道了一些比较基础的内容比如基础的socket.bind()类 ...

  2. js手动触发页面元素点击事件,自定义点击事件模拟点击

    // initEvent事件已经弃用1. 创建MouseEvents事件const clickEvent = document.createEvent('MouseEvents')2. 初始化点击事件 ...

  3. Docker和Kubernetes网络模型

    Docker网络模型 Bridge模式(默认) Docker程序启动后会创建一个bridge0网桥,并分配一个IP,可以想象成一个虚拟的交换机,创建的容器实例都会通过虚拟网卡veth pair设备连接 ...

  4. windows-sam文件

    sam文件是账号密码的数据库文件 存放位置C:\Windows\System32\Config\sam

  5. loj2511

    引言 思维题. 这个做法跑得飞快,还不用 dp,也不是爆搜! 复杂度(可能)为 \(O(s^2t)\) 或 \(O(s^2)\),实际效率也是飞快. 不过这题我直接提交答案了. 思路 考虑 \(A=m ...

  6. Classical Cipher

    [NPUCTF2020]Classical Cipher 难得做到一道古典密码的题目,打开后有一个flag.zip和一个提示. 解密后的flag请用flag{}包裹 压缩包密码:gsv_pvb_rh_ ...

  7. 迁移virtualenv虚拟环境,复制,免安装

    前提:在原来的服务器中使用相同的python版本,并使用virtualenv创建了自己的虚拟环境. 1.首先在新的机器上安装virtualenv(要有和原机器相同版本的python解释器,第5步也很相 ...

  8. python服务返回text与json

    json.dumps(),loads()和jsonify()的区别 使用方法不同: dumps和loads方法,来自json模块,而json模块是python中的,可以直接导入: import jso ...

  9. IDEA激活 重置试用30天

    转载于 https://www.cnblogs.com/renlywen/p/14216325.html jetbrains-agent已经停止,现在又出现了新的激活方式,重置试用时间,以下为操作步骤 ...

  10. js判断任意数值接近数组中的某个值

    可以是数组,也可以是数组对象,看需求定义 let val = '' for (let i = 0; i < this.allData.length; i++) { if (this.days & ...