技术标签: 计算机网络基础 华为ENSP 数通HCIA 网络 php 网络协议 STP 开发语言
在计算机网络中,生成树(Spanning Tree)是一种用于解决网络中的环路问题的协议。当网络中存在多条冗余路径时,如果不采取措施,数据包可能会在环路中无限循环,导致网络拥塞和性能下降。生成树的目的是通过选择一条最佳路径,将网络中的环路消除,确保数据包的正常传输。
生成树协议使用分布式算法来计算和选择生成树,使网络中的设备形成一个无环的拓扑结构。最常用的生成树协议是 IEEE 802.1D Spanning Tree Protocol(STP)。
STP 的基本原理如下:
每个网络设备通过发送 BPDU(Bridge Protocol Data Unit)消息来交换信息。BPDU 包含了设备的标识、优先级、路径开销等信息。
设备通过比较接收到的 BPDU 信息来选择生成树的根桥(Root Bridge)。根桥是生成树的起点,它具有最小的优先级。
每个设备计算到根桥的路径开销,并选择一条最佳路径。路径开销由设备的优先级和端口的路径开销之和决定。
在生成树中,每个设备选择一个根端口(Root Port),该端口连接到生成树中的下一个设备。
生成树中的某些端口可能被标记为阻塞状态,这些端口不参与数据传输,以避免环路。
以下是以华为设备为例的 STP 配置命令及其解析:
stp enable
通过此命令,启用生成树协议。
stp priority <priority>
通过此命令,设置设备的生成树优先级。优先级越低,设备在生成树中的地位越高。
stp root primary
通过此命令,将设备配置为生成树的根桥。根桥是生成树的起点,具有最小的优先级。
interface <interface> stp port priority <priority>
通过此命令,设置指定接口的生成树端口优先级。端口优先级用于选择生成树中的根端口。
display stp
通过此命令,显示生成树的状态信息,包括根桥、根端口、阻塞端口等。
尽管生成树协议解决了网络中的环路问题,但它也存在一些问题:
收敛时间:当网络拓扑发生变化时,生成树协议需要一定时间来重新计算生成树,这会导致网络中断和数据包丢失。
带宽利用率:生成树协议将某些端口标记为阻塞状态,这些端口无法传输数据,导致带宽浪费。
单点故障:如果生成树的根桥发生故障,整个网络将无法正常工作。
限制了网络拓扑:生成树协议要求网络中不存在环路,这限制了网络拓扑的灵活性和可扩展性。
为了解决这些问题,出现了一些改进的生成树协议,如快速生成树协议(Rapid Spanning Tree Protocol,RSTP)和多实例生成树协议(Multiple Spanning Tree Protocol,MSTP),它们在收敛时间、带宽利用率和网络可靠性方面有所改进。
生成树协议通过选择一条最佳路径,消除网络中的环路,确保数据包的正常传输。STP 是最常用的生成树协议,它使用分布式算法来计算和选择生成树。通过配置生成树优先级、生成树根桥和生成树端口优先级等命令,可以进行简单的 STP 配置。然而,STP 也存在一些问题,如收敛时间、带宽利用率、单点故障和限制网络拓扑。为了改进这些问题,出现了一些改进的生成树协议,如 RSTP 和 MSTP。
文章浏览阅读7.8k次。开发环境vs2010css:bootstrapjs:jquery bootstrap paginator原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了MVC多条件+分页查询因为美工不是很好,所以用的是bootstrap前端框架,自己懒得写前端的分页控件,用的是bootstrap paginator分页控件。方式: _.net core mvc+bootstrap 页面分页查询
文章浏览阅读2.5k次。Springboot +spring security,OAuth2 四种授权模式概念_springbootsecurity oauth2
文章浏览阅读78次。 在学习设计模式的过程中,实践需与理论相结合才能更好地举一反三,灵活运用。设计模式到底是什么?它是对整个软件系统的拆分,组装,并决定模块间关系以及如何互动、通信的某种模式。究其本质,设计模式就是以语言特性(面向对象三大特性)为硬件基础,再加持六大设计原则的灵魂组合而总结出的一系列套路,本篇要讲地就是灵魂。单一职责 我们知道功能完备的软件系统是复杂的,系统的拆分与模块化是不可或...
文章浏览阅读1.1k次。Token:票据,令牌。当用户尝试登录,将请求提交到服务器端,如果服务器端认证通过,会生成一个Token数据并响应到客户端,此Token是有意义的数据,此客户端在后续的每一次请求中,都应该携带此Token数据,服务器端通过解析此Token来识别用户身份!关于Session与Token:Session默认是保存在服务器的内存中的数据,会占用一定的服务器内存资源,并且,不适合集群或分布式系统(虽然可以通过共享Session来解决),客户携带的Session ID只具有唯一性的特点(理论上),不具备数据含义……而_token 与 jwt
文章浏览阅读944次。记一次数据库连接数据库报错报错提示:Loading class com.mysql.jdbc.Driver'. This is deprecated. The new driver class iscom.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.原因:mysql驱动类D_the new driver class is `com.mysql.cj.jdbc.driver
文章浏览阅读1.7w次,点赞8次,收藏41次。Python正则表达式是简介表达一组字符串的表达式,正则表达式可以方便的检查一个字符串是否与某种模式匹配。本文将结合实例给大家讲解六种在正则表达式中的常见函数,分别是re.match、re.search、re.findall、re.compile、re.split和re.sub。re.match() tch函数从头开始匹配,如果不是起始位置匹配成功的话,match函数的匹配结果就为none。re...._python span
文章浏览阅读822次。给大家带来的一篇关于人工智能相关的电子书资源,介绍了关于深度学习、人工智能算法方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小30.8 MB,Ian Goodfellow编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.7。内容介绍本书包括3 个部分:第1 部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2 部分系统深入地讲解现今已成熟的深度学习方法和技术..._人工智能 算法 pdf
文章浏览阅读1.2k次。(一)VNC1 下载如下包 git clonehttps://github.com/Juniper/contrail-testhttps://github.com/Juniper/contrail-provisioninghttps://github.com/Juniper/contrail-fabric-utilshttps://github.com/Juniper/cont_centos6 ipfix
文章浏览阅读7.4k次,点赞3次,收藏39次。//用两个数码管显示0到99。十位数为0的时候,显示为空白。//用两个按键控制数值的加减,按一次K1数字加1,按一次K2数字减1,数值的范围是从0到99。//再用一个接近开关控制数字的减小,接近开关感应一次数字减1,减到0停止。// C语言程序如下。/*************************************************************** 文件 : -----..._两位数码管显示功能。具体功能描述如下:数码管可以显示0-99两位数字,按一下加按键
文章浏览阅读3w次,点赞7次,收藏12次。 在Android开发中,设置背景图片是一个既简单又常用的方法,由于本人现在需要同时做Android开发,所以Android的开发技能也要不断学习储备,不仅是为了给老板省钱,也是为了增加自己的竞争力。那么就来分享一下开发心得,给控件添加背景图的方法步骤,Android大牛请飘过,只分享给需要的人,今天分享在这里分享一下给添加背景图片的方法。 设置背景图片有两种方法,但是在..._c#andriod 背景图
文章浏览阅读3.8k次,点赞2次,收藏12次。网络通信技术1. 基本概念1.1 接口1.2 表项查询方法1.2.1 内容寻址存储器2. 二层技术3. 三层技术1. 基本概念1.1 接口1.2 表项查询方法1.2.1 内容寻址存储器内容寻址存储器(Content Addressable Memory)CAM,是在传统的存储技术的基础上实现的联想记忆存储器,主要有读、写、查询操作。读操作:输入地址,返回该地址上的数据,读取速度与RAM相同;写操作:2. 二层技术3. 三层技术..._网络通信技术
文章浏览阅读3.4k次,点赞6次,收藏18次。简单的学生成绩管理系统(数组实现)用java 数组写了一个简单的学生管理系统,没有连数据库,数据存放在内存,实现简单的增、删、改、查功能。一、运行图片二、部分代码package com.sky.demo;import javax.swing.text.Style;import java.util.Scanner;public class Service { Scanner scanner = new Scanner(System.in); //数组,静态初始化,分配大小 _为什么用数组做成绩管理系统他的成绩只显示3和个数组