网络初级篇之STP(实验验证)
一、根桥的选举。
1、优先级相等时。

(图1-1)

(图1-2)
在上面1-1图中,已经标出桥的mac地址,桥的优先级为默认优先级(缺省:32768)。任意一端口抓包,查看STP数据包内包含的信息,根桥的mac地址为LSW1的MAC地址(图1-2),所以LSW1为根桥。对比三个桥的mac地址,LSW1的MAC地址最小。
2、优先级不相等时。
还是在上图1-1中,在LSW2中,将LSW2的优先级更改为4096(优先级必须为4096的倍数;使用命令:[LSW2]stp priority 4096)。

(图1-3)
此时任意一端口抓包,STP数据包中包含的根桥的MAC地址变为LSW2的MAC地址(图1-3所示),所以此时LSW2为根桥。
3、结论:根桥的选举先对比桥的优先级,优先级最小的选举为根桥;当优先级都相当时,根据桥MAC地址选举,MAC地址小的为根桥。
二、根端口的选举。
根端口的选举有以下几个情景:
1、累计根路开销不相等时

(图2-1-1)

(图2-1-2)

(图2-1-3)
由根桥的选举我们得知,当优先级都相等时,LSW1为根桥(图2-1-1)。
假设,相邻两设备之间的根路开销都为1(同一设备的不同端口根路开销为0)
LSW2的G0/0/1端口的累计根路开销为1;G0/0/2端口的累计根路开销为2。则LSW2的G0/0/1端口为根端口(图2-1-2)。
LSW3的G0/0/1端口的累计根路开销为2;G0/0/2端口的累计根路开销为1。则LSW3的G0/0/2端口为根端口(图2-1-3)。
2、累计根路开销相等,对端BID不相等时。

(图2-2-1)

(图2-2-2)
如图2-2-1所示,LSW4为根桥,根据累计根路开销,我们可以得出LSW2与LSW3的根端口。但是,LSW1的两端口累计根路开销一样,无法通过此方法得出根端口。这时候就需要对端BID进行选举(上一文章讲了BID组成)。LSW1对端的两台设备中LSW2的MAC地址小,所以LSW1与LSW2相连的LSW1上的端口为根端口(图2-2-2)。
3、累计根路开销相等,对端BID相等,对端PID不相等时。

(图2-3-1)

(图2-3-2)

(图2-3-3)

(图2-3-4)
如图2-3-1所示,LSW1为根桥。LSW3无法通过累计根路开销、对端的BID来进行根端口的选举。这时只能通过对端PID来进行端口选举(所做实验中端口优先级全部为默认优先级:128)。
在图2-3-1中,LSW2的G0/0/1端口的对端PID为128.1;G0/0/2端口的对端PID为128.2。由图2-3-2得知,LSW2上的G0/0/1端口为根端口。
在图2-3-3中,LSW2的G0/0/1端口的对端PID为128.2;G0/0/2端口的对端PID为128.1。由图2-3-4得知,LSW2上的G0/0/2端口为根端口。
以上两条得出结论:在根端口的选举中,累计根路开销与对端BID都相等时,是根据对端PID来进行根端口的确认;对端PID小的端口为根端口。
4、累计根路开销相等,对端BID相等,对端PID相等,本端PID不相等。

(图2-4-1)

(图2-4-2)
如图2-4-1所示,LSW1为根桥。此时,对于LSW2上的端口,累计根路开销相等、对端BID相等、对端PID相等。这时候可以通过本端的PID来进行根端口的选举.
如图2-4-2所示,LSW2上的G0/0/1端口为根端口。此时,LASW2上的G0/0/1端口的本端PID为128.1;G0/0/2端口的本端PID为128.2
由此得出结论:在根端口选举中,累计根路开销、对端BID、对端PID都相等时,对比本端PID,本端PID小的为根端口。
三、指定端口的选举。

(图3-1-1)

(图3-1-2)
1、根据累计根路开销选举指定端口
如图3-1-1中,LSW1为根桥。根桥上的端口到根桥的累计根路开销为0。
在LSW1的G0/0/1端口与LSW2的G0/0/1端口中,前者的累计根路开销小于后者的累计根路开销,所以LSW1的G0/0/1端口选举为指定端口(图3-1-2)。
在LSW1的G0/0/2端口与LSW3的G0/0/2端口中,前者的累计根路开销小于后者的累计根路开销,所以LSW1的G0/0/2端口选举为指定端口(图3-1-2)。
PS:根桥上的所有端口都为指定段口。

(图3-1-3)
2、累计根路开销相等,根据BID选举指定端口。
在LSW2的G0/0/2端口与LSW3的G0/0/1端口中,两者到根桥的累计根路开销一样,此时,就需要对比BID的大小来选举指定端口。
对比LSW2与LSW3的MAC地址(优先级都为默认),我们可以得出:LSW2的BID小于LSW3的BID,则LSW2的G0/0/2端口为指定端口(图3-1-3)。
3、累计根路开销相等、BID相等,根据PID选举指定端口(非常特殊的情况下)。

(图3-1-4)
如上图3-1-4,LSW1的G0/0/1端口与G0/0/2端口的累计根路开销一致,BID一致,此时需要对比PID的大小来选举指定端口。
G0/0/1端口的PID为:128.1
G0/0/2端口的PID为:128.2
所以G0/0/1端口为指定端口
四、阻塞端口

(图4-1-1)

(图4-1-2)
当根端口与指定端口选举完成,剩余的便是阻塞端口(图4-1-1)。之后便会形成如图4-1-2的拓扑。此时,由于其中的阻塞端口,使其环路被破坏,防止了广播风暴的出现。
网络初级篇之STP(实验验证)的更多相关文章
- 网络初级篇之STP(概念原理)
一.什么是STP 生成树协议(Spanning Tree Protocol,STP),是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路.用于确保以太 ...
- 网络初级篇之STP(BPDU详解与STP故障恢复)
一.BPDU包含的参数 通过STP的原理,我们学习了红色部分的字段(根桥ID.根路径开销.桥ID.端口ID).现在讲解一下黄色部分的字段(类型.计时器.老化时间.访问时间) 1.(BPDU Type) ...
- 网络初级篇之配置telnet登录网络设备(实验)
一.作用 在日常工作中,登录网络设备,对其进行配置主要有几种方式:console.Telnet与ssh.这样可以实现远程(只要网络可达)控制,极大的方便了工作.今天主要讲解一下配置Telnet ...
- 网络初级篇之网络设备的FTP(原理与实验)
一.什么是FTP FTP就是文件传输协议.用于互联网双向传输.二.FTP的作用 控制文件下载空间在服务器复制文件从本地计算机或本地上传文件复制到服务器上的空间,主要的作用就是文件的传输,保 ...
- 网络初级篇之DHCP原理与配置(原理与实验)
一.什么是DHCP DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理.分配IP地址,使网络环境 ...
- 网络初级篇之OSPF(二)实验
一.实验目的: 下面关于OSPF的实验,仔细看配置过程,以增加对OSPF的理解. 二.实现目标: 使用OSPF实现所有主机之间的通信 三.配置过程: 1.AR1的配置过程: ...
- 网络初级篇之RSTP(原理与配置)
一.RSTP的产生 前面的文章写到了当网络拓扑发生变化时,STP的收敛速度大约需要花费30秒-50秒的时间才会继续转发数据.这样在实际生产环境中花费的时间是非常长的,这样RSTP(快速生成树协议)便应 ...
- 网络初级篇之VLAN(原理)
一.早期网络的问题 1.若某时刻有多个节点同时试图发送数据,极易产生冲突域,这样使得网络传输效率大大降低. 2.从一节点发送的数据都会被送到各个节点,极易形成广播域,这样会使得产生太多的广播流量而耗费 ...
- 网络初级篇之OSPF(一)原理
一.OSPF是什么 Open Shortest Path First, 开放最短路径优先协议,是一种开源的使用最短路径优先(SPF)算法的内部网关协议(IGP).常用于路由器的动态选路. 二.OSPF ...
随机推荐
- 在Spring中配置jdbc为什么不能用${username}问题
楼主在spring中配置jdbc时,引用的是dbcp.jar包,在dataSource.properties配置文件中,有mysql用户名,楼主自然的选择了使用username,密码是root, 然后 ...
- Swift3.0添加桥接文件
注意是在target下不是project !!!纠结了好久表示...... 都这里一直编译错误,找不到该桥接文件,这里也是纠结了好久......最后原因是不能使用下划线就可以了....<表示这是 ...
- zabbix3.0升级到4.0
升级步鄹: 3.0->3.2 1.停服务 service zabbix-server stop 2.备份配置文件 #cp /etc/zabbix/zabbix_server.conf /data ...
- 【AMAD】django-activity-stream
动机 简介 个人评分 动机 为你的django站点生成活动流(类似facebook feed).用户可以在个人feed页面看到订阅的人的活动流. 简介 django-activity-stream1中 ...
- cmake升级到3.10以上
使用yun install cmake3 安装 ,不会覆盖centos7 cmake 1 添加cmake3 源 echo '[group_kdesig-cmake3_EPEL]name=Copr re ...
- 2019-07-30 C#基础知识学习
继承和多态 接口与抽象类的区别:1.在接口中仅能定义成员,但是不能有具体的实现:抽象类除了抽象成员以外,其他成员有具体的实现.2.在接口中不能声明字段,并且不能声明任何私有成员,成员不能包含任何修饰符 ...
- SQLite进阶-9.别名
我们可以暂时给表或者列重命名为另一个名字,称为别名,重命名只是临时运行时改变,不会改变数据库中的实际的名字. -- 语法 SELECT column_name AS column_alias_name ...
- mysql查询出数据更新到另一张表
公司今天有个需求,大体意思就是把一个表的玩家游戏场数统计出来,然后赋值到另一张表的字段上,说白了就是两张表,但是查询出来的玩家账号和次数是多条,尝试很多种写法都没用,最后用了最笨的方式解决. -- - ...
- luffy后台相关设置
目录 项目创建 环境 创建项目 重构项目目录 配置开发环境 配置日志 环境变量 dev.py 在写项目直接导入utils文件夹也不''错误提示'' 封装logger dev.py utils/logg ...
- vue配置外放generate-asset-webpack-plugin
解决方法:(共有2个方法) 1.借助插件 generate-asset-webpack-plugin .在webpack.prod.conf.js中去生成configServer.json文件,让其 ...