论文部分内容阅读
由于路由协议只能用于第三层网络,在第二层网络中就可能存在环路,这使得在二层网络中传输的报文可能会无限的转发和增长,最后造成网络风暴使得整个网络效率低下甚至瘫痪。为了解决这一个问题,IEEE在很早之前制订了8021.D标准,在这个标准中定义了生成树协议(STP,Spanning Tree Protocol),这个协议能够很好的解决网络中出现环路的问题。随着网络的不断发展,IEEE又先后制定了快速生成树协议(RSTP, Rapid the Spanning Tree Protoco1)和多生成树协议(MSTP,Multiple Spanning Tree Protocol)。相对于STP和RSTP而言,MSTP具有巨大的优势,目前MSTP已经相当成熟,成为生成树发展的一致方向。由于目前LINUX操作系统的流行,出现了大量基于该系统的网络设备。但是在LINUX内核的网桥模块中,只支持STP协议并不支持MSTP协议。人们迫切需要LINUX提供对MSTP的支持,尤其是在一些基于LINUX的嵌入式设备上。本文在对生成树协议原理进行学习和对网桥模块的中STP源代码进行分析的基础上,以Linux作为开发环境,以标准C作为开发语言,成功完成了MSTP协议的设计、实现及编码工作。然后将实现的MSTP模块编译成驱动,插入到LINUX内核当中。最后将MSTP模块应用到基于LINUX的网络设备当中,并将其与其他交换机进行混合组网后进行简单的功能测试。测试结果表明MSTP模块符合IEEE802.1s标准,能成功与其他设备的MSTP模块、RSTP模块或STP模块对接。