[发明专利]一种多生成树链路倒换性能优化的实现方法有效
申请号: | 201010173357.1 | 申请日: | 2010-05-10 |
公开(公告)号: | CN101854358A | 公开(公告)日: | 2010-10-06 |
发明(设计)人: | 曲志丰 | 申请(专利权)人: | 北京东土科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/24;H04L12/56 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100041 北京市石*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 生成 树链路 倒换 性能 优化 实现 方法 | ||
技术领域
本发明涉及到通信领域,更具体地说,属于通信领域多生成树链路倒换性能的优化。
背景技术
在IEEE提供的标准802.1Q上,对MSTP协议有一个原理上的描述,同时也写出的通用的实现算法,但是标准上所列的该算法,并未对性能提升方面,有较多的提及。
随着当今社会,科技日新月异的飞速发展,人民对效率要求的越来越高,对工业通信设备而言,有更快的交换速度,就意味着每秒中能处理更多交通流量,就意味着每秒钟商家能生产更多的产品,就意味着安全的生产和生活……现有的生成树技术,并不能达到较为优化的性能,并不能满足持续发展的工业化社会的需要。
在MSTP性能的优化的过程中,尝试了几种方法,最后选定了一种方法,这种方法能有效的提高性能,而且不会引发其它的一些问题。
开始分析倒换性能时,分解倒换过程中的各个环节,对各个环节所消耗的时间进行统计分析,发现在整个倒换的过程中握手流程耗费的时间是最多的,所以决定从优化握手流程着手,优化MSTP的倒换性能。
MSTP发包的个数,有一定的限制,在代码中有一个值,这个值所起到的作用是MSTP在一秒钟发送报文的个数,姑且叫其为发包上限(TX_HOLD_COUNT),超过发包上限的报文在当前的一秒钟内是无法发送出去的,程序中有变量记录每秒钟的发包个数,每当程序发送一个报文,该变量计数增1,并将该变量与上限(TX_HOLD_COUNT)进行比较,若报文统计发包个数已经等于最大的发包上限(TX_HOLD_COUNT)的时候,如果程序还需要发送报文,那只能等到下一秒了。
发包上限,是一个常量,通常协议文档中的建议值是在每秒不超过10个,在我司实现的代码中,这个值已经被修改为一个较大的值了,远远大于10。
而每个实例由事件激发都有可能发送报文,而且每个实例都进行单独发送报文,这样,如果有多个实例,就会有较多的报文交互,在两个交换机报文交互的过程中,如果报文发送的个数超过发包上限所设定的最大值,那么就要等到下一秒进行发送。因此影响了握手消息的交互时间,间接延长了倒换时间,给倒换性能带来了很大的障碍。
MSTP划分为多个实例,每个实例都单独发包,每个实例有事件到来,都会驱动MSTP协议栈发送报文,每个实例不但要发送报文,还要接收报文,完成交互过程,这个如果是多个实例就会有较多的报文交互,并且每个交互根据消息的标志位的不同还会引发一些其它的报文交互过程。
这样和发包上限放在一起进行考虑,多实例发包个数必然多,而发包上限要对发包的个数做限制,这两个方面互相矛盾。
从报文的结构上来看,每个报文中含有,多个实例的信息,每发送一个报文,都会携带其它实例的所有信息,在网络中会有较多的重复性的传输,并且状态机也有很多的重复性的处理。
举例,域中配置10个实例,实例1需要发送消息,实例1会驱动协议栈发送该报文,该报文中除了携带实例1的消息外,同时也携带其它9个实例的消息,这9个实例是被重复发送的,对端收到这样的消息,并不知道哪个实例才是驱动这个报文发出的实例,所以每个实例所携带的信息,都要执行一遍。相当于有9x9=81个处理过程被浪费掉了。
对于发包个数的限制,发明人也曾经尝试来修改发包个数来提高MSTP的倒换性能,对这个值一定的修改的确是可以某种程度上提高性能,它的主要原理就是,将txcount值增大,让其在一秒钟能发较多的包,MSTP所需要发送的报文在一秒钟尽量全部发送出去。经测试,原来MSTP的倒换性能为最大3秒,经过修改txcount的值,可以使倒换性能提高到600毫秒以内。
但是这样修改同时也存在一些问题,第一个所引起的比较严重的问题,是在多环的拓扑结构的网络中,重启一台主设备的时候会产生MSTP协议报文风暴,而且不可恢复;第二,在网络中交互的MSTP报文较多,这样会影响网络中业务数据的流量。
发明内容
本发明的目的是克服现有技术中的不足,提供一种更优化的实现方法技术。
本发明的技术方案是,一种多生成树链路倒换性能优化的实现方法,多生成树划分为多个实例,将所有实例信息收集到一起打包成一个报文一起发出;在各个单个实例处理完的地方做限制报文的发送处理,直至各个实例按所需的流程在程序的各个状态机中处理完成后,允许发送一个包,这个包中携带全部实例的信息。有两种地方做统一打包发送的处理,第一个地方为各个事件的处理函数,第二个地方就是收发包的地方。
事件上的处理,比如在端口UP事件中的处理为:
(1)首先要对该端口上的各个实例进行初始化;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京东土科技股份有限公司,未经北京东土科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010173357.1/2.html,转载请声明来源钻瓜专利网。