本发明属于网络通信,具体涉及一种基于会话的路由信息更新方法和网络设备。
背景技术:
1、当前,流量通过通信设备时,通信设备会通过ip五元组(源地址、目的地址、源端口、目的端口、传输层协议)创建一条唯一可标识的会话session,同时该流量经过路由模块后会在会话中存储查找到的相关路由信息。而当设备的路由发生变化时,会话中存储的路由信息可能已经失效,如果后续同一条流的报文依然按照当前会话记录的路由信息转发的话,就可能导致流量无法到达目的地,因此,需要及时地刷新会话上记录的路由信息。
2、而当前相关技术中,会话路由信息更新的处理方式为:当路由变化产生时,所有会话都和变化后的路由进行比较,分析是否需要更新会话的路由信息,如果变化的路由比会话中保存的路由信息更优,或者会话中保存的路由被删除了,就需要更新会话的存储的路由信息。然而,这种处理方式的效率不高,当会话数量很大时,达到百万、千万级别,并且路由变化也很多时,这种处理方式会很慢,并且伴随着锁的操作,严重时会影响正常业务处理。
3、在当前的技术方案中,会话更新的处理方式有以下三种:
4、技术一:路由变化后把会话分批处理,把处理时间拉长,每次处理少量的会话,每秒处理一次,这样cpu利用率不会那么高,正常业务可以及时得到处理。
5、技术二:路由变化后所有会话重新查找路由表来更新路由信息,该方式可以周期性地检查是否存在路由变化,如果有路由变化,遍历所有会话,每条会话重新查找路由表,查找结果和保存的路由不同就进行更新。
6、技术三:增加路由变化采集功能和会话更新功能,路由变化采集功能周期性的采集单位时间内路由的变化信息,如果采集到变化的信息就对变化的信息进行备份供路由更新模块查询更新会话的路由信息,其中更新模块要遍历所有的会话信息。在更新模块工作的时候路由采集模块会继续进行新一轮的信息采集。
7、上述三种方式均存在技术缺陷:
8、技术一的缺陷是:会话可能更新不及时会导致流量中断的情况发生。
9、技术二的缺陷是:路由变化时所有会话重新查找路由表更新会话路由信息效率依然不是很高,且在更新所有会话过程中如果出现新的路由变化,又需要从头开始遍历会话,大量路由变化时cpu利用率会很高,从而不能及时更新会话。
10、技术三的缺陷是:技术三解决了技术二在更新所有会话过程中如果出现新的路由变化,又需要从头开始遍历会话的问题,但是保留了技术一的缺陷和技术二中路由变化时所有会话重新查找路由表更新会话路由信息效率依然不是很高的缺陷。
技术实现思路
1、(一)要解决的技术问题
2、本发明要解决的技术问题是如何提供一种基于会话的路由信息更新方法和网络设备,以解决现有技术中会话路由信息更新存在的上述缺陷。
3、(二)技术方案
4、为了解决上述技术问题,本发明提出一种基于会话的路由信息更新网络设备,该网络设备包括:会话模块、路由模块和路由变化感知模块;
5、会话模块,用于存储流量的连接信息,其中,连接信息包括:ip五元组信息、流量匹配的路由信息和路由年龄信息;
6、路由模块,包括:存储路由信息子模块和管理路由子模块,存储路由信息子模块用于存储路由的完整信息,即为是路由表;管理路由子模块用于对存储路由信息进行增、删、改、移动操作;
7、路由变化感知模块,用于感知路由模块的路由信息变化,并原子性地触发路由年龄的变化。
8、进一步地,当管理路由子模块执行存储路由信息的增、删、改、移动操作时,路由变化感知模块就会感知到路由变化的信息并触发路由年龄的变化。
9、进一步地,存储路由信息子模块中的任何一个路由发生变化,均要更新路由年龄。
10、进一步地,当流量查询路由模块存储的路由信息后,会话模块把路由信息刷新到会话模块中会话对应的路由信息上。
11、进一步地,当会话模块存储的路由年龄信息和路由变化感知模块中的路由年龄不相同时,会把路由变化感知模块中的路由年龄信息刷新到会话模块中会话对应的路由年龄信息上。
12、本发明还提供一种基于会话的路由信息更新方法,该方法包括如下步骤:
13、s1、网络设备启动时初始化路由模块、路由变化感知模块和会话模块;
14、s2、当网络设备启动后,用户根据需求通过管理路由子模块给路由模块配置路由信息,路由信息存储到存储路由信息子模块中;
15、s3、当路由变化感知模块感知到路由变化后原子性地更新路由年龄;
16、s4、当流量的首包进入网络设备后会话模块会创建一个会话,当报文经过路由模块查找路由后,会话模块会把从存储路由信息子模块查找到的路由信息刷新到会话上,同时把路由变化感知模块记录的路由年龄信息刷新到会话上;
17、s5、后续同一条流量的报文经过路由模块时,不需再查找路由模块存储的路由信息,而是使用会话上记录的路由信息就能完成路由转发;
18、s6、当任一路由信息发生变化后,路由变化感知模块会感知到路由变化,同时触发路由年龄的更新;
19、s7、当流量的后续报文匹配完会话后,比较会话上记录的路由年龄和当前路由变化感知模块记录的路由年龄是否相同,如果相同,说明路由没有变化就不需要重新查路由了;如果不相同说明路由已经变化需要重新查找路由;
20、s8、经过重新查找路由后把新查找的路由信息刷新到会话上,同时刷新路由年龄信息,即将路由变化感知模块记录的路由年龄刷新到会话记录的路由年龄信息上。
21、进一步地,所述步骤s3中,存储路由信息子模块中的任何一个路由发生变化,均要更新路由年龄。
22、进一步地,所述步骤s6中,用户根据需求通过管理路由子模块修改路由信息,会导致路由信息发生变化。
23、进一步地,所述步骤s6中,接口down/up事件会导致路由信息发生变化。
24、进一步地,路由年龄只能逐一递增。
25、(三)有益效果
26、本发明提出一种基于会话的路由信息更新方法和网络设备,本发明具有如下技术效果:
27、1、采用本发明可以解决当路由发生变化时,可能存在会话路由信息更新不及时导致流量中断的问题。
28、2、采用本发明可以解决当路由发生变化时,所有会话都需重新查找路由表更新会话路由信息导致效率不高的问题。
29、3、采用本发明可以解决当路由发生频繁变化时,在更新所有会话路由信息的时候又需要从头开始遍历会话的问题。
30、4、本发明可以提高网络设备的流量转发效率。
1.一种基于会话的路由信息更新网络设备,其特征在于,该网络设备包括:会话模块、路由模块和路由变化感知模块;
2.如权利要求1所述的基于会话的路由信息更新网络设备,其特征在于,当管理路由子模块执行存储路由信息的增、删、改、移动操作时,路由变化感知模块就会感知到路由变化的信息并触发路由年龄的变化。
3.如权利要求2所述的基于会话的路由信息更新网络设备,其特征在于,存储路由信息子模块中的任何一个路由发生变化,均要更新路由年龄。
4.如权利要求1所述的基于会话的路由信息更新网络设备,其特征在于,当流量查询路由模块存储的路由信息后,会话模块把路由信息刷新到会话模块中会话对应的路由信息上。
5.如权利要求1所述的基于会话的路由信息更新网络设备,其特征在于,当会话模块存储的路由年龄信息和路由变化感知模块中的路由年龄不相同时,会把路由变化感知模块中的路由年龄信息刷新到会话模块中会话对应的路由年龄信息上。
6.一种基于会话的路由信息更新方法,其特征在于,该方法包括如下步骤:
7.如权利要求6所述的基于会话的路由信息更新方法,其特征在于,所述步骤s3中,存储路由信息子模块中的任何一个路由发生变化,均要更新路由年龄。
8.如权利要求6所述的基于会话的路由信息更新方法,其特征在于,所述步骤s6中,用户根据需求通过管理路由子模块修改路由信息,会导致路由信息发生变化。
9.如权利要求6所述的基于会话的路由信息更新方法,其特征在于,所述步骤s6中,接口down/up事件会导致路由信息发生变化。
10.如权利要求6所述的基于会话的路由信息更新方法,其特征在于,路由年龄只能逐一递增。