Chinaunix首页 | 论坛 | 博客
  • 博客访问: 795442
  • 博文数量: 264
  • 博客积分: 592
  • 博客等级: 中士
  • 技术积分: 1574
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-24 22:02
文章分类

全部博文(264)

文章存档

2019年(2)

2018年(1)

2017年(1)

2016年(4)

2015年(14)

2014年(57)

2013年(88)

2012年(97)

分类: LINUX

2014-02-12 15:13:17

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



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



                                   



  1. //配置BPDU的优先级向量:  
  2. //      包含四个元素,<根网桥ID,根路径开销,网桥ID,端口ID>,长度为22字节,值越小,表明网桥在拓扑中越重要。  
  3.   
  4. //拓扑中配置更新的顺序:选择根网桥,选择根端口,选择指定端口  

  1. //STP中涉及到的定时器:  
  2. //1.网桥使用的定时器:  
  3.     //定时器               默认值(s)              取值范围(s)  
  4.     //Hello                 2                       1~10  
  5.     //Topology Change       转发延迟+最大生存期  未定义  
  6.     //TCN                   Hello时间                 未定义  
  7.     //Address Aging         300或转发延迟            未定义  
  8.   
  9.   
  10. //2.端口使用的定时器:  
  11.     //定时器               默认值(s)              取值范围(s)  
  12.     //Message Aging         20                      6~40  
  13.     //Forward Delay         15                      4~30  
  14.     //Hold                  1                       未定义  
  15.   
  16.   
  17. //并非所有定时器都可由用户配置,有些定时器使用相同的配置(TCN和Hello)  
  18. //1.网桥使用的定时器:  
  19. //  Hello,用于定期产生配置BPDU,只有根网桥使用该定时器。  
  20. //  TCN,由检测到拓扑变化而且必须通知根网桥的网桥设备使用。  
  21. //  Topology Change,由根网桥使用,以便记住要在其配置BPDU中设定一个特殊标识,此标识用于将拓扑变化通知其他网桥。  
  22. //  Aging,用于从转发数据库清除无效的地址,无论其是否启用STP。  
  23.   
  24. //2.端口使用的定时器:  
  25. //  Message Aging,BPDU所携带的信息生存期是有限的,该定时器用于强制执行这个生存期,每当端口上接收了一个BPDU后,  
  26. //  该定时器就会重启,只要接收到一个BPDU,就会对它的消息生存期和网络允许的最大生存期做一比较,如果前者大于后者,  
  27. //  该帧就会被丢弃。其在非指定端口上运行,在没有任何问题的稳定环境下,该定时器绝不会到期,但当根网桥无法产生BPDU,  
  28. //  或者接收到的BPDU已过期,此定时器就会到期,当此定时器到期时,该端口就会被重新启动,被分配为指定角色。  
  29. //  Forward Delay,该定时器负责状态转移,从监听到学习以及从学习到转发。  
                                   



  1. //用户可配置信息:  
  2. //  1.网桥和端口优先级  
  3. //  2.端口开销  
阅读(549) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~