网络子系统25_生成树协议

//参考 深入理解linux网络技术内幕
//生成树协议(Spanning Tree Protocol, STP)是用于消除环路拓扑的分布式算法。

//生成树协议的基本元素:
//	1.链路开销,当链路没有指定开销,或者都设置成相同开销时,一个节点到达根的距离用网络跃点数来测量。
//	2.BPDU,STP通过让各个网桥之间交换称为网络协议数据单元(BPDU)的特殊帧来传递配置信息。
//	3.根网桥,唯一能产生BPDU的网桥,其他网桥只有在接收到BPDU时才会传输BPDU(当网桥第一次加入时,会认为
//	自己就是根网桥)。
//	4.指定网桥,每个LAN都有一个指定网桥,它成为该LAN中所有主机和网桥到达根节点的网桥。
//	5.端口状态,由STP或手工设置网桥端口可以处于的状态,见状态转换图。
//	6.端口角色:
//		6.1根端口,每个网桥设备只能有一个根端口,能到达根网桥具有最高优先级的端口,被选为根端口。
//		6.2指定端口,每个网桥设备可以有多个指定端口,但没有LAN只能有一个指定端口,网桥设备通过其指定端口到达其他LAN。
//	根端口由根网桥使用,给各个lan发送信息,指定端口由lan使用,通过其向根网桥发送信息。
//	7.网桥id,每个网桥都会被指派一个id,8字节,分两部分,低6字节为其某个端口的mac地址,高2字节为可配置的优先级。
//	8.端口id,每个端口都会被指派一个id,2字节,分两部分,设置端口号的方式和具体协议有关,且其值只在网桥本地有意义。
//	9.端口开销,开销越低,表示该端口越应当被优先使用。
//网桥id,端口id

                               

//网桥协议数据单元(BPDU)类型:
//	1.配置BPDU,用于定义无环路拓扑,
//		1.1发送时机:
//			1.1.1 根网桥会运行一个定时器(Hello定时器),到期后触发配置BPDU的传输,或者当网桥加电时,会认为自己是根网桥,
//			设置所有端口为指定端口,然后发送配置BPDU.
//			1.1.2 非根网桥只有在应答其根端口收到的BPDU才会生成BPDU,生成的BPDU中传输者的网桥id和端口id会被该网桥替换,
//			该网桥会把开销更新为其接收到的开销加上其本地网桥中接收BPDU的端口的开销之和。
//			1.1.3 无论网桥是否为根网桥,当一台网桥接收到一个BPDU,如果其优先级向量低于该网桥在其端口所用的,那么网桥会
//			以自己的(较高优先级)的信息应答;当一台网桥接收到一个TCN BPDU,会立刻发出一个设有特殊标示的配置BPDU作为应答。
//			1.1.4 当非根网桥,由于添加或删除端口导致网桥配置信息的改变,使网桥从非根网桥变为根网桥,则在所有指定端口上,
//			发送配置BPDU。
//	2.TCN(拓扑变化通知) BPDU,当检测到拓扑变化时,网桥用于通知根网桥。

                                   

//配置BPDU的优先级向量:
//		包含四个元素,<根网桥ID,根路径开销,网桥ID,端口ID>,长度为22字节,值越小,表明网桥在拓扑中越重要。

//拓扑中配置更新的顺序:选择根网桥,选择根端口,选择指定端口

//STP中涉及到的定时器:
//1.网桥使用的定时器:
	//定时器				默认值(s)				取值范围(s)
	//Hello 				2 						1~10
	//Topology Change 		转发延迟+最大生存期 	未定义
	//TCN					Hello时间 				未定义
	//Address Aging 		300或转发延迟 			未定义

//2.端口使用的定时器:
	//定时器				默认值(s)				取值范围(s)
	//Message Aging 		20						6~40
	//Forward Delay			15						4~30
	//Hold					1 						未定义

//并非所有定时器都可由用户配置,有些定时器使用相同的配置(TCN和Hello)
//1.网桥使用的定时器:
//	Hello,用于定期产生配置BPDU,只有根网桥使用该定时器。
//	TCN,由检测到拓扑变化而且必须通知根网桥的网桥设备使用。
//	Topology Change,由根网桥使用,以便记住要在其配置BPDU中设定一个特殊标识,此标识用于将拓扑变化通知其他网桥。
//	Aging,用于从转发数据库清除无效的地址,无论其是否启用STP。

//2.端口使用的定时器:
//	Message Aging,BPDU所携带的信息生存期是有限的,该定时器用于强制执行这个生存期,每当端口上接收了一个BPDU后,
//	该定时器就会重启,只要接收到一个BPDU,就会对它的消息生存期和网络允许的最大生存期做一比较,如果前者大于后者,
//  该帧就会被丢弃。其在非指定端口上运行,在没有任何问题的稳定环境下,该定时器绝不会到期,但当根网桥无法产生BPDU,
//	或者接收到的BPDU已过期,此定时器就会到期,当此定时器到期时,该端口就会被重新启动,被分配为指定角色。
//	Forward Delay,该定时器负责状态转移,从监听到学习以及从学习到转发。

                                   

//用户可配置信息:
//	1.网桥和端口优先级
//	2.端口开销
//	3.端口上运行的定时器
时间: 2024-12-02 21:43:47

网络子系统25_生成树协议的相关文章

交换机配置教程:生成树协议STP防止环路

前面曾经有过一篇文章,介绍如果企业只使用一台交换机来组网,就会存在单点故障,如果交换机坏了,此时的几个模块之间都无法进行正常的工作,客户机不能访问服务器,不能连接internet,不能访问打印机,也就是一点发生故障,则整网络无法正常工作.所以在一般的交换式网络中,我们都需要对交换机进行冗余,但是引入冗余又会发生一个问题,一个很严重的问题,就是网络环路.那么网络环路会带来广播风暴.多重复数据帧.MAC地址表不稳定等因素.那么大家可以看到网络环路的问题确实不小,解决方法就是利用生成树协议STP. S

以太网交换机中生成树协议的实现

摘要:生成树算法和协议是自动生成网络拓扑结构的基础.本文阐述了生成树算法和协议的内容,并给出了在以太网交换机中的具体实现过程.我们通过实践证明,该方尖对于解析最优网络拓扑结构效果良好. 以太网交换机在第二层即MAC层必须具有路由功能.目前普遍使用的MAC层路由方式是IEEE802.1组织发布的标准:基于生成树算法的路由.在局域网内的交换机执行了生成树算法以后,会组成一个生成树动态拓扑结构,该拓扑结构使局域网内任意两个工作站之间不存在回路,以防止由此产生的局域网广播风暴,同时,生成树算法还负责监测

Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介

原文:Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介 Linux内核分析(四) 两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理子系统.网络子系统.虚拟文件系统在这个阶段进行分析的,但是为了让大家对内核有个整体的把握,今天还是简单的介绍一下剩余的几个子系统,我们对这几个子系统的分析,只要了解其作用和部分内容即可,不必深究,等我们写上几个驱动,到时候按照驱动再来分析这几个子系统我们就清晰多了. 在http://www.cnbl

网络子系统11_arp子系统初始化

// 1.邻居: // 网络中的邻居指连接到同一个LAN中,且至少有一个接口有相同的ip子网配置 // 2.邻居协议的作用: // 通过l3地址获取主机的l2地址 // 3.通过l3获取l2地址办法: // 3.1 点到点连接,此时不需要l2地址 // 3.2 特殊的l3地址,通过简单的规则获取l2的映射 // 3.3 多播地址通过简单的转换规则转换为l2地址 // 3.4 ip中使用arp协议完成映射 // arp协议的初始化 // 向内核邻居子系统注册arp地址解析协议. // 调用路径:i

网络子系统15_arp邻居项初始化

// 初始化struct neighbour // 当邻居子系统新创一个neighbour时,邻居子系统调用特定协议的初始化函数,初始化邻居项. // 调用路径:neigh_create->arp_constructor // 函数主要任务: // 1.设置邻居项的地址类型,a,b,c,d // 2.使用与此邻居项关联的接口设备的neigh_param作为该邻居项调整邻居协议的参数. // 3.根据与此邻居项关联的接口设备的信息,初始化邻居项的状态,以及ops // 3.1 驱动没有提供填充l2

详解生成树协议-STP下交换机端口状态

如果交换机上每个端口 都有主机. 那么不 经过监听和学习的话,容易造成广播风暴. 所以生成树协议(STP)就是为了解决这样的问题而产生的.生成树的工作原理:生成树协议的国际标准是IEEE802.1b.运行生成树算法的网桥/交换机在规定的间隔 (默认2秒)内通过网桥协议数据单元(BPDU)的组播帧与其他交换机交换配置信息 ,其工作的过程 如下:◆ 通过比较网桥优先级选取根网桥(给定广播域内只有一个根网桥).◆ 其余的非根网桥只有一个通向根交换机的端口称为根端口.◆ 每个网段只有一个转发端口.◆ 根

网络子系统24_桥接概念

//网桥:l2层设备,每个接口都指定一个链路层地址,然后把所有不是自己的数据帧转发出去 //网桥的作用:合并LAN,linux网桥只用于桥接ethernet端口. //网桥消费入口帧的情况: // 1.将帧传往上层l3协议,并且入口帧的目的地址就是该接口的l2地址 // 2.将帧传给某个协议处理程序,如生成树协议 //网桥具备的能力: // 1.地址学习,被动学习,不需要用户配置或协议帮助 // 2.数据转发,当目的地址(l2地址)为为单播地址时,如果网桥知道通往该地址的接口,则会从该接口将数据

大数据-一个程序中,TCP协议用的muduo网络库,UDP协议可以用boos.asio吗?

问题描述 一个程序中,TCP协议用的muduo网络库,UDP协议可以用boos.asio吗? 通过TCP协议接收数据,解析好,在用UDP协议转发. UDP转发是后面增加的,muduo网路库不支持Udp协议,自己用socket api写,担心大数据,多并发的时候不可靠.请问大神有什么建议? 解决方案 这个当然可以,只要协议格式客户端,服务端之间处理好. 解决方案二: udp确实不可靠,要解决可以自己实现一套超时和重发机制,比如说每个数据包打上标号,发送方和接收方处理好重发,如果对数据质量要求高的话

网络编程中的协议问题

问题描述 网络编程中的协议问题 qq登录前的两种不同协议设置(TCP/IP和UDP)对qq的登陆有什么影响?