发明内容
本发明实施方式所要解决的技术问题在于提供一种网络应用的多连接处理方法及装置,能够将属于同一种网络应用的多个连接关联在一起,并可以将各连接所提取的信息进行共享,同时也不需要对每一条连接都进行协议识别的过程,进一步提高了系统运行的效率。
本发明实施方式是通过以下技术方案实现的,一种网络应用的多连接处理方法,包括:
从多连接中的第一个连接的协商数据包中,获取下一个连接双方将要使用的IP地址和端口地址四元组;
从所获取的IP地址和端口地址四元组中,选取对应的两项或三项来建立预测连接多元组表;
将所述第一个连接中提取的信息传入所述预测连接多元组表中;
当所述下一个连接到来时,查找所述预测连接多元组表,获得与所述下一个连接双方的地址相匹配的表项,以及所述第一个连接中提取的信息;
将所述相匹配的表项更新为下一个连接双方对应的IP地址和端口地址的四元组,根据所述四元组进行所述下一个连接数据包的发送和处理。
所述选取对应的两项或三项来建立预测连接多元组表,具体包括:
将一端的所有IP地址和端口地址对与另一端的所有IP地址分别组合,建立包含三元组的预测连接多元组表;
或,将一端的所有IP地址和端口地址对与另一端的所有端口地址分别组合,建立包含三元组的预测连接多元组表。
所述选取对应的两项或三项来建立预测连接多元组表,具体包括:
将一端的所有IP地址或端口地址与另一端的所有IP地址或端口地址分别组合,建立包含两元组的预测连接多元组表。
所述方法还包括:
对所述预测连接多元组表的表项进行超时老化处理,若在设定的时间内,某一表项没有更新,则将该表项老化删除。
当所述下一个连接到来时,在查找所述预测连接多元组表之前,还包括:
查找预先建立的四元组转发表,若查找到相应的四元组表项,则根据所述四元组表项进行所述下一个连接数据包的发送和处理;若没有查找到相应的四元组表项,则再查找所述预测连接多元组表,完成后继操作。
所述预先建立的四元组转发表的表项中包括:建立连接双方的IP地址和端口地址四元组;
对所述预先建立的四元组转发表的表项进行超时老化处理,若在设定的时间内,某一表项没有更新,则将该表项老化删除。
所述第一个连接中提取的信息包括:第一次建立连接双方的帐号或密码原始数据信息。
本发明实施方式还提供了一种网络应用的多连接处理装置,包括:
地址解析单元,用于从多连接中的第一个连接的协商数据包中,获取下一个连接双方将要使用的IP地址和端口地址四元组;
预测连接建立单元,用于从所获取的IP地址和端口地址四元组中,选取对应的两项或三项来建立预测连接多元组表;
信息传递单元,用于将所述第一个连接中提取的信息传入所述预测连接多元组表中;
多连接处理单元,用于当下一个连接到来时,对所述下一个连接的数据包进行处理,其中:当下一个连接到来时,查找所述预测连接多元组表,获得与所述下一个连接双方的地址相匹配的表项,以及所述第一个连接中提取的信息;将所述相匹配的表项更新为下一个连接双方对应的IP地址和端口地址的四元组,根据所述四元组进行所述下一个连接数据包的发送和处理。
所述装置中还包括:
老化处理单元,用于对所述预测连接建立单元所建立的预测连接多元组表的表项进行超时老化处理,其中:若在设定的时间内,某一表项没有更新,则将该表项老化删除。
所述装置设置于建立连接的一端设备上,或设置成单独的功能实体。
由上述所提供的技术方案可以看出,首先从多连接中的第一个连接的协商数据包中,获取下一个连接双方将要使用的IP地址和端口地址四元组;然后从所获取的IP地址和端口地址四元组中,选取对应的两项或三项来建立预测连接多元组表,并将所述第一个连接中提取的信息传入所述预测连接多元组表中;这样,当所述下一个连接到来时,就可以查找所述预测连接多元组表,来获得与所述下一个连接双方的地址相匹配的表项,以及所述第一个连接中提取的信息;再将所述相匹配的表项更新为下一个连接双方对应的IP地址和端口地址的四元组,最后就可以根据所述四元组进行所述下一个连接数据包的发送和处理。由于在查找预测连接多元组表时,也同时获得了第一个连接中提取的信息,这样在对下一个连接的数据包进行处理时,就可以将属于同一种网络应用的多个连接关联在一起,实现各连接所提取信息的共享;同时由于建立了预测连接多元组表来提供下一个连接数据包的转发处理,所以在对多个连接的数据进行转发处理时,就不需要对每一条连接都进行协议识别的过程,节省了网络资源,提高了系统运行的效率。
具体实施方式
本发明实施方式提供了一种网络应用的多连接处理方法及装置。能够在查找预测连接多元组表时,同时获得了第一个连接中提取的信息,这样在对下一个连接的数据包进行处理时,就可以将属于同一种网络应用的多个连接关联在一起,实现各连接所提取信息的共享;同时由于建立了预测连接多元组表来提供下一个连接数据包的转发处理,所以在对多个连接的数据进行转发处理时,就不需要对每一条连接都进行协议识别的过程,节省了网络资源,提高了系统运行的效率。
为更好的描述本发明实施方式,现结合附图对本发明的具体实施方式进行说明,如图1所示为本发明实施方式所述方法的流程示意图,所述方法包括:
步骤11:获取下一个连接双方的地址四元组。
具体来说,就是在多连接的网络应用中,若已经建立了连接的两端中的一端需要再和另一端建立连接,则从这第一个连接的协商数据包中,获取下一个连接双方将要使用的IP地址和端口地址四元组。
这里为表述清楚,可以将已经建立了连接的两端设定为客户端C1和服务器端S,当C1需要再和另一客户端C2建立连接时,C1会向S发出一个协商数据包,此时通过获取这个协商数据包并对该数据包进行解析,就可以得到下一个连接时,C1将要使用的IP地址和端口地址对;然后S再和C2交互后,返回给C1一个响应协商数据包,此时通过获取这个响应协商数据包并对该数据包进行解析,就可以得到下一个连接时,C2将要使用的IP地址和端口地址对,这样就获取到了下一个连接双方C1和C2将要使用的IP地址和端口地址四元组。由于在实际组网中,C1和C2的地址可能随时发生移动,所以C1和C2所提供的IP地址和端口地址对可能是一对或多对,那么所获得的IP地址和端口地址四元组就是包含一对或多对地址的数列。
步骤12:建立预测连接多元组表。
具体来说,就是在进行步骤11的操作之后,就可以从所获取的IP地址和端口地址四元组数列中,选取对应的两项或三项来建立预测连接多元组表。
若选取对应的两项来建立预测连接多元组表,则将一端的所有IP地址或端口地址与另一端的所有IP地址或端口地址分别组合,建立包含两元组的预测连接多元组表。
举例来说,若获得的C1的IP和端口地址对为IP1和端口1,以及IP2和端口2;相对应的C2所获得的IP和端口地址对为IP3和端口3,以及IP4和端口4。那么就可以在IP1和端口1中选取一个,在对应的IP3和端口3中选取一个,将其两两组合来形成预测连接多元组表的表项;或在IP2和端口2中选取一个,在对应的IP4和端口4中选取一个,将其两两组合来形成预测连接多元组表的表项。依此类推,当获取的IP和端口地址对有多个时,只要选取相对应的IP或端口地址,就可以将其组合来形成预测连接多元组表的表项。
实际操作中,由于选取对应的两项组合所建立的预测连接多元组表,其预测准确性可能不高,故也可以选取其中的三项来建立预测连接多元组表,具体来说就是,将一端的所有IP地址和端口地址对与另一端的所有IP地址分别组合,建立包含三元组的预测连接多元组表;或将一端的所有IP地址和端口地址对与另一端的所有端口地址分别组合,建立包含三元组的预测连接多元组表。
举例来说,若获得的C1的IP和端口地址对为IP1和端口1,以及IP2和端口2;相对应的C2所获得的IP和端口地址对为IP3和端口3,以及IP4和端口4。那么就可以选取IP1和端口1,和相对应的IP3或端口3进行组合,形成包含三元组的预测连接多元组表的表项;也可以选取IP2和端口2,和相对应的IP4或端口4进行组合,形成包含三元组的预测连接多元组表的表项。这样建立的预测连接多元组表,由于已经包含了连接双方的三项地址,故预测的准确度更高,有效提高了系统运行的效率。
步骤13:将连接信息共享传入预测连接多元组表中。
具体来说,就是在建立了预测连接多元组表后,就可以将上一次连接,也就是第一次连接中所提取的信息传入所述的预测连接多元组表中,这里所述的第一次连接中所提取的信息可以是第一次连接的通信双方的帐号、密码等特有的信息,这样当下一次连接到来时,就可以通过查找预测连接多元组表,来获得上次连接中所提取的信息,实现信息的多连接关联和共享。
步骤14:当所述下一个连接到来时,对所述下一个连接的数据包进行相应处理。
具体来说,当所述下一个连接到来时,根据下一个连接所获得的数据包中的地址四元组来查找所述预测连接多元组表,获得与所述下一个连接双方的地址相匹配的表项,以及所述第一个连接中提取的信息。
这里所述的相匹配的表项,在包含两元组的预测连接多元组表中,可以通过如下方式来获得:在所获得的数据包的地址四元组中,只要有对应的两项和所述预测连接多元组表中某一表项的两项符合,则可认为该表项就是相匹配的表项。
而在包含三元组的预测连接多元组表中,是通过如下方式来获得:在所获得的数据包的地址四元组中,有对应的三项和所述预测连接多元组表中某一表项的三项符合,则认为该表项就是相匹配的表项。
在得到了相匹配的表项后,就可以将所述相匹配的表项更新为下一个连接双方对应的IP地址和端口地址的四元组;然后再根据所述四元组进行所述下一个连接数据包的发送和处理。
这里所述对相匹配的表项进行更新,具体来说就是根据所获得的数据包的地址四元组,将表项中的不确定项修改为确定项,使其更新为下一个连接双方对应的IP地址和端口地址的四元组,这样就可以根据该四元组对下一个连接数据包进行相应的发送和处理,同时由于第一次连接中所提取的信息已经传入到了所述的预测连接多元组表中,当查找预测连接多元组表中的相匹配表项时,就同时获得了上次连接中所提取的信息,这样在对下一个连接数据包进行相应处理时,就可以实现和上一次连接所提取信息的关联和共享,提高了系统的性能。
另外,在执行步骤14,当所述下一个连接到来,查找所述预测连接多元组表之前,还可以首先查找一个预先建立的四元组转发表,该预先建立的四元组转发表的表项为可能建立连接双方的IP地址和端口地址四元组。在该四元组转发表中进行查找,若能够查找到相匹配的四元组表项,则根据该相匹配的四元组表项进行所述下一个连接数据包的发送和处理,这样就不需要再查找预测连接多元组表了;而如果没有查找到相匹配的四元组表项,则再查找所述预测连接多元组表,完成后继操作。
另外,对以上所述预测连接多元组表的表项和预先建立的四元组转发表的表项,都可以进行超时老化的处理。也就是说,若在设定的时间内,某一表项没有更新,则将该表项老化删除掉。
通过以上技术方案的实施,就可以在对多连接网络应用的数据包进行处理时,实现各连接所提取信息的共享;同时由于建立了预测连接多元组表来提供下一个连接数据包的转发处理,所以在对多个连接的数据进行转发处理时,就不需要对每一条连接都进行协议识别的过程,节省了网络资源,提高了系统运行的效率。
本发明实施方式还提供了一种网络应用的多连接处理装置,如图2所示为所述装置的结构示意图,所述装置中包括地址解析单元、预测连接建立单元、信息传递单元和多连接处理单元,所述的地址解析单元用于从多连接中的第一个连接的协商数据包中,获取下一个连接双方将要使用的IP地址和端口地址四元组。具体获取的方法如上方法实施方式所述。
所述的预测连接建立单元用于从所获取的IP地址和端口地址四元组中,选取对应的两项或三项来建立预测连接多元组表。具体建立的方法如上方法实施方式所述。
所述的信息传递单元用于将所述第一个连接中提取的信息传入所述预测连接多元组表中。这里所述的第一次连接中所提取的信息可以是第一次连接的通信双方的帐号、密码等特有的信息,这样当下一次连接到来时,就可以通过查找预测连接多元组表,来获得上次连接中所提取的信息,实现信息的多连接关联和共享。
所述的多连接处理单元用于当下一个连接到来时,对所述下一个连接的数据包进行处理。具体来说就是,当下一个连接到来时,查找所述预测连接多元组表,获得与所述下一个连接双方的地址相匹配的表项,以及所述第一个连接中提取的信息;将所述相匹配的表项更新为下一个连接双方对应的IP地址和端口地址的四元组,根据所述四元组进行所述下一个连接数据包的发送和处理。
另外,在所述装置中还可以包括老化处理单元,所述的老化处理单元用于对所述预测连接建立单元所建立的预测连接多元组表的表项进行超时老化处理。具体来说就是,在设定的时间内,若某一表项没有更新,则将该表项老化删除。
以上所述的装置可以设置于建立了连接的一端设备上;也可以设置成单独的功能实体,作为网络中的旁路设备来对建立连接的设备进行监控。
为进一步描述本发明实施方式,现结合具体的实施例对其技术方案作进一步说明,如图3所示为多连接网络应用的结构示意图,图中:C1表示第一连接端,可以为客户端;S表示第二连接端,为服务器端;C2表示多连接中另一连接端,可以为另一客户端,在某些网络应用服务中,也可以为另一服务器端。它们之间的连接交互过程如下所述:
a)首先,C1向S发送登陆数据包1,该数据包中可以包括C1的帐号或密码等特有的登陆信息;
b)S向C1发送登陆信息确认数据包2;
c)C1与S建立连接,中间省略号表示S和C1之间其他的信息交互过程;
d)当C1需要与另一连接端C2建立连接时,由于C1并不知道C2的地址,可能只知道C2的帐号,于是C1向S发送协商数据包3,表明想要和C2建立连接,同时在协商数据包3中提供C1开放给C2的IP和端口地址对;
e)S转发协商数据包到C2,为数据包4;
f)C2接收到数据包4后,发给S回复数据包5,其中包含C2开放给C1的IP和端口地址对;
g)S将其转发给C1,为另一协商数据包6;
h)此时,C1再发送登陆数据包7给C2,请求建立连接;
i)C2回复响应数据包8给C1,这样C1和C2就建立了连接,下面的省略号表示C1与C2之间其他的信息交互过程。
当本发明所述网络应用的多连接处理装置设置位于C1和S之间时,就可以对以上的数据包1,2,3,6,7和8进行截获,然后根据这些数据包类型的不同进行相应的处理。其中,对协商数据包3和6的处理流程如图4所示,图中包括:
步骤31,首先判断此数据包是否为协商数据包;若是协商数据包,也就是以上数据包中的3和6,则转到步骤32处理,否则转到步骤37处理;
步骤32,从协商数据包中解析出下一个连接即将使用的IP地址和端口地址对,也就是从3和6中解析出下一个连接C1与C2即将使用的IP地址和端口地址;
步骤33,将获取的C1的IP地址和端口地址存储到数组1中;
步骤34,蒋获取的C2的IP地址和端口地址存储到数组2中;
步骤35,判断协商过程是否结束,若已结束,则转到步骤38处理;否则转到步骤36;
步骤36,继续协商过程;
步骤37,结束本建立预测处理过程;
步骤38,将数组1中的IP端口对与数组2中的IP端口对,两两交错建立预测多元组表,具体来说就是将数组1中的每个IP端口对与数组2中的所有IP地址分别组合形成预测多元组表的表项;将数组2中的每个IP端口对与数组1中的所有IP地址分别组合形成预测多元组表的表项;同时将上次连接中提取的信息传入该建立的预测多元组表中,作为一个公共的表项存在,这里所述上次连接中提取的信息包括C1的帐号或密码等特有的登陆信息。
在进行以上操作后,建立预测处理的过程就结束了。由此我们就可以将属于同一种网络应用的多个连接关联在一起,由于进行了有效的连接预测,当第二个连接,即C1和C2之间的传输数据包到来时,就可以根据建立的预测连接多元组表来进行相应的处理,而不需要对每个传输数据包都进行协议识别的过程,从而提高了系统运行效率,同时还实现了各连接所提取信息的共享,将第一个连接中获取的信息传递到后续连接中。
其中,当下一个连接到来时,对下一个连接的传输数据包的处理过程如图5所示,图中包括:
步骤21,首先从网络中接收下一个连接的传输数据包,如图3中的数据包7或8;
步骤22,对接收的传输数据包进行IP包头和传输层包头的解析,获取连接双方的实际IP地址和端口地址;
步骤23,首先可以在预先建立的四元组转发表中查找本数据包相匹配的表项,这里预先建立的四元组转发表可以是以哈希表的方式存在,表项内容为可能建立连接双方的IP地址和端口地址四元组;
步骤24,判断是否存在相匹配的表项,若存在相匹配的四元组表项,则转到步骤212处理,否则转到步骤25处理;
步骤25,在所建立的预测连接多元组表中查找本数据包相匹配的表项,此处查找时只要存在表项与四元组的三项符合即视为相同,这里所述建立的预测连接多元组表也可以是以哈希表的方式存在的;
步骤26,判断是否存在相匹配的表项,若存在相匹配的表项,则转到步骤27处理,否则转到步骤28处理;
步骤27,将三元组表项转化为四元组,即将不确定项修改为确定项,具体可以将预测连接多元组表的相应表项删除,并将此表项更新后添加到预先建立的四元组转发表中;
步骤28,对该数据包进行协议识别过程;
步骤29,判断是否能够识别,若能识别出协议,则转到步骤210处理,否则转到步骤211处理;
步骤210,新建四元组表项,将新建的四元组表项更新到预先建立的四元组转发表中;
步骤211,丢弃本数据包,不进行处理;
步骤212,对预先建立的四元组转发表的表项进行老化更新处理,即更新相应表项的存在时间;
步骤213,根据相应的四元组转发表的表项进行数据包的发送和处理,即将数据包传入所对应的应用层解析入口,并进行相应的应用层协议解析处理。
从以上步骤可以看出,当第二个连接来到时,可以先根据建立的预测连接多元组表来进行相应的处理,而不需要对每个传输数据包都进行协议识别的过程,提高了系统运行效率。
综上所述,本发明实施方式通过预先建立预测连接多元组表,能够在查找预测连接多元组表时,同时获得了第一个连接中提取的信息,这样在对下一个连接的数据包进行处理时,就可以将属于同一种网络应用的多个连接关联在一起,实现各连接所提取信息的共享;同时由于建立了预测连接多元组表来提供下一个连接数据包的转发处理,所以在对多个连接的数据进行转发处理时,就不需要对每一条连接都进行协议识别的过程,节省了网络资源,提高了系统运行的效率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。