一种多协议网络报文传输保序系统的实现方法

文档序号:7853749阅读:85来源:国知局
专利名称:一种多协议网络报文传输保序系统的实现方法
技术领域
本发明涉及ー种保序系统的实现方法,更具体地说,涉及一种多协议网络报文传输保序系统的实现方法。
背景技术
随着网络速度的日益发展,要求网络产品对网络数据的处理速度越来越高,网络中数据的并行处理也越来越多,在并行处理的情况下,需要保证同种协议网络数据的先后顺序,也就是保序。要实现高速的报文处理和保序软件的处理速度远不能满足要求,则需要在硬件上进行实现。本发明主要是使用一种新的方式,保证报文保序操作速度,适应各种硬件处理逻 辑的时序要求。

发明内容
本发明针对以上问题的提出,而研制一种多协议网络报文传输保序系统的实现方法。本发明提供ー种多协议网络报文传输保序系统的实现方法,其特征在于,将报文的关键字按照固定顺序封装为关键字数据包存储,然后将该条报文的每段报文内容和关键字数据包中的至少ー种关键字进行封装,并在前面加上至少一位ニ进制位,来唯一标识该条报文的分段序号,并控制该条报文仅在其第一段报文内容处理完成的情况下才能进行第ニ段报文内容的处理,直到需要处理的分段报文的处理结果中出现预先设定的最高优先级处理结果时,将整条报文按照最高优先级处理结果进行处理;或者需要处理的分段报文已经全部处理完成但没有出现预先设定的最高优先级处理结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理。优选地,方法包括如下步骤SI、报文提取单元将需要处理的报文提取出来,将每一条需要处理的报文,送入关键字提取单兀;S2、关键字提取单元对报文进行处理,提取该报文的源IP、目的IP、源端ロ、目的端口和协议类型关键字,并将所有关键字按照固定的顺序封装为关键字数据包存放到关键字存储队列中,关键字存储队列的位宽与数据包的位宽相等,每条报文的关键字数据包对应存储该条报文的报文队列;S3、控制单元选择优先级最高的一条报文进行处理,读取该条报文的源IP和目的IP进行判断,找出需要监控的IP类型;当源IP需要监控时,控制单元读取该条报文的源IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据Kl=源IP+协议类型+报文内容,生成Kl,并在Kl前面加上至少一位ニ进制位,生成ΚΓ并存储到Al队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
当目的IP需要监控时,控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据Kl=目的IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位ニ进制位,生成Kl’并存储到Al队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;S4控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S5 ;S5、处理单元读取Al队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将Al队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的源IP或目的IP,协议类型以及该条报文的第二段报文内容,根据Kl=源IP/目的IP+协议类型+ 报文内容,生成Kl,并在Kl前面加上至少一位ニ进制位,生成ΚΓ并存储到A2队列中,通过ニ进制位的加入对ΚΓ进行唯一标识;S6、控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S7 ;S7、处理单元读取A2队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将Al队列的第一个元素和A2队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不预先设定的最高优先级处理结果时,控制单元读取该条报文的第三段报文内容,根据Kl=源IP/目的IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位ニ进制位,生成ΚΓ并存储到A3队列中,通过ニ进制位的加入对ΚΓ进行唯一标识;S8、循环执行上述步骤,直到Al队列中的第一个元素被取出吋,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理;当需要对该条报文进行端ロ关键字处理时,执行步骤S9 ;S9、控制单元选择优先级最高的一条报文进行处理,当报文需要进行端ロ关键字处理时,读取该条报文的源端口和目的端ロ进行判断,找出需要监控的端ロ类型;当源端ロ需要监控吋,控制单元读取该条报文的源端ロ和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=源端ロ +协议类型+报文内容,生成K2,并在K2前面加上至少一位ニ进制位,生成K2’并存储到BI队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的端ロ需要监控吋,控制单元读取该条报文的目的端ロ和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=目的端ロ +协议类型+报文内容,生成K2,并在K2前面加上至少一位ニ进制位,生成K2’并存储到BI队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;S10、对生成的K2’作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将BI队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的第二段报文内容,根据Kl=源IP/目的IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位ニ进制位,生成ΚΓ并存储到B2队列中,通过ニ进制位的加入对ΚΓ进行唯一标识;S11、循环执行上述步骤,直到BI队列中的第一个元素被取出丢弃时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理。优选地,关键字处理仲裁単元,协调IP控制单元和端ロ控制单元分别对IP关键字和端ロ关键字进行处理,保证IP关键字和端ロ关键字的处理可以同时独立运行各自的时序。实施本发明所述的多协议网络报文传输保序系统的实现方法,具有以下有益效果能够在并行处理的情况下,保证同种和不同协议网络数据的先后顺序,保证报文保序的 操作速度,适应各种硬件处理逻辑的时序要求。


图I是本发明的格式名称表;图2是本发明的报文的处理结果表;图3是本发明的单条报文处理的一实施例的方法流程图;图4是本发明的关键字处理时的报文传输保序方法的一实施例的结构示意图。
具体实施例方式图I是本发明的格式名称表,如图所示。图中的格式名称分别为Kl和K2,Kl=关键字类型(IP) +协议类型+某一段报文的内容,即Kl=源IP/目的IP+协议类型+报文内容;当源IP为监控对象时,Kl=源IP+协议类型+报文内容,当目的IP为监控对象时,Kl=目的IP+协议类型+报文内容。K2=关键字类型(端ロ)+协议类型+某一段报文的内容,即Kl=源IP/目的端ロ +协议类型+报文内容;当源端ロ为监控对象时,Kl=源端ロ +协议类型+报文内容,当目的端ロ为监控对象时,Kl=目的端ロ +协议类型+报文内容。图2是本发明的报文的处理结果表,如图所示。表中的关键字类型包括IP和端ロ,此处的IP包括源IP和目的IP,端ロ包括源端口和目的端ロ。当源IP为监控对象时,表中的IP指代源IP,当目的IP为监控对象时,表中的IP指代目的IP。当源端ロ为监控对象吋,表中的端ロ指代源端ロ,当目的端ロ为监控对象时,表中的端ロ指代目的端ロ。表中的关键字为IP+负载,此处的负载为某一段报文的内容。不同的IP和不同的负载,对应不同的处理结果,处理结果的类型根据用户的需要设定,对于一条报文,IP—定,但报文分段负载内容不同,因此,IP+负载所对应的处理结果不同。在本实施例中,用户关注三种处理結果,即复制、丢弃和透传,即三种对报文进行处理的結果。IP+负载I对应的处理结果为复制,IP+负载2对应的处理结果为丢弃,IP+负载3对应的处理结果为透传,例如,当源IP为监控对象并且取一条报文的第一个报文分段时,关键字为源IP+第一段报文内容,将其与处理结果表进行对表查询,当对应的结果为复制时,得知当前获得的对该条报文的第一段报文内容的处理结果是复制,因为不知道第二段报文内容、第三段报文内容以及需要查询的其他报文段的报文内容,而且用户对处理结果设置了优先级,复制结果的优先级不是最高,所以此时需要继续对该条报文的第二段报文内容进行处理查询处理結果。当对应的结果为丢弃时,得知当前获得的对该条报文的第一段报文内容的处理结果是丢弃,因为用户设置的丢弃结果的优先级最高,所以,此时可以直接将整条报文进行丢弃处理。当目的IP为监控对象时,处理方式与前述方式相同。当源端ロ为监控对象并且取一条报文的第一个报文分段时,关键字为源端ロ +第一段报文内容。对于一条报文,端口一定,但报文分段负载内容不同,因此,端ロ +负载所对应的处理结果不同。在本实施例中,用户关注三种处理结果,即复制、丢弃和透传,即三种对报文进行处理的結果。端ロ +负载I对应的处理结果为复制,端ロ +负载2对应的处理结果为丢弃,端ロ +负载3对应的处理结果为透传。将端ロ +第一段报文内容与处理结果表进行对表查询,当对应的结果为复制时,得知当前获得的对该条报文的第一段报文内容的处理结果是复制,因为不知道第二段报文内容、第三段报文内容以及需要查询的其他报文段的报文内容,而且用户对处理结果设置了优先级,复制结果的优先级不是最高,所以此时需要继续对该条报文的第二段报文内容进行处理查询处理结 果。当对应的结果为丢弃时,得知当前获得的对该条报文的第一段报文内容的处理结果是丢弃,因为用户设置的丢弃结果的优先级最高,所以,此时可以直接将整条报文进行丢弃处理。当目的端ロ为监控对象时,处理方式与前述方式相同。图3是本发明的单条报文处理的一实施例的方法流程图,如图所示。当报文输入时,报文解析单元对报文是否需要处理进行解析,当报文不需要处理时,直接将报文输出;当报文需要处理时,针对该条报文提取用户需要的关键字,在本实施例中,提取源IP、目的IP、源端ロ、目的端口和协议类型关键字,首先对IP关键字进行处理,处理的方式按照本文上一段的描述进行。当不需要对该条报文的端ロ关键字进行处理时,报文的处理即结束;当端ロ关键字需要进行处理时,处理单元对端ロ关键字进行处理,端ロ关键字处理完成后,该条报文的处理即结束。图4是本发明的关键字处理时的报文传输保序方法的一实施例的结构示意图,如图所示。首先,报文提取单元将需要处理的报文提取出来并送入关键字提取单元,本实施例中,先后提取了三条需要处理的报文,分别为P1、P2、P3。然后,关键字提取单元提取每条报文的关键字,例如源IP、目的IP、源端ロ、目的端ロ、协议类型等,本实施例中,关键字提取单元分别提取报文P1、P2、P3的源IP、目的IP、源端ロ、目的端ロ、协议类型,并将报文Pl的所有关键字按照源IP、目的IP、源端ロ、目的端ロ、协议类型的固定顺序封装为关键字数据包存放到关键字存储队列中;将报文P2、P3的关键字也按照前述的固定顺序封装为关键字数据包存放到关键字存储队列中;其中,关键字存储队列的位宽与关键字数据包的位宽相等。处理报文时,报文内容的分段数量根据报文的长度以及报文队列的位宽确定。本实施例中,报文Pl分为4段,即分段I、分段2、分段
3、分段4,报文P2分为2段,报文P3分为2段。每条报文的关键字数据包对应着存储该条报文的报文队列,即报文Pl的关键字数据包对应着存储报文Pl的报文队列。接着,IP控制单元选择优先级最高的一条报文进行处理,读取该条报文的源IP和目的IP进行判断,找出需要监控的IP类型,源IP或目的IP,需要监控的IP类型预先设定;当源IP需要监控吋,IP控制单元读取该条报文的源IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据Kl=源IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位ニ进制位,生成ΚΓ并存储到Al队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的IP需要监控吋,IP控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据Kl=目的IP+协议类型+报文内容,生成Kl,并在Kl前面加上至少一位ニ进制位,生成ΚΓ并存储到Al队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识。本实施例中,预先设定需要处理的分段报文的数量为3,即当一条报文的分段数大于3段吋,仅监控每条报文的分段I、分段2和分段3。因为预先设定需要处理的分段报文的数量为3,仅需两位ニ进制位即可将3段报文分别唯一标识,因此,在处理的过程中,在Kl前面加上两位ニ进制位,其中,OO唯一标识分段1、01唯一标识分段
2、10唯一标识分段3。本实施例中报文Pl的优先级最高,且报文Pl的源IP需要监控。IP控制单元从关键字存储队列中读取报文Pl关键字数据包中的源IP和协议类型,从报文队列中读取报文Pi的分段1,根据公式Kl=源IP+协议类型+报文内容,生成Κ1,并在Kl前面加上00后,生成ΚΓ,即本实施例中的Kl I存储到Al队列中。接着,IP控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文Pl时,处理单元读取Al队列的第一个元素Κ11,并到处理结果表中作对表查询,当Kll在处理结果表中对应的结果为最高优先级处理结果时,处理单元将Al队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理。在本实施例中,按照图2的处理结果表进行查表处理,图2中的处理结果包括复制、丢弃、透传,三者的优先级分别为丢弃的优先级最高、透传的优先级其次,复制的优先级最低。如果此时查询的结果为丢弃报文吋,处理单元将Al队列中的Kll取出,以及将相对应的报文Pl的关键字数据包和Pl的报文队列取出,对整条报文做丢弃处理,此时对报文Pl的处理结束。当Kll在处理结果表中对应的结果为透传结果时,因为透传处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由IP控制单元从关键字存储队列中读取报文Pl关键字数据包中的源IP和协议类型,从报文队列中读取报文Pl的分段2,根据公式Kl =源IP+协议类型+报文内容,生成Kl,并在Kl前面加上01后,生成Κ1’,即本实施例中的Kl 12存储到Α2队列中。若IP控制单元选择的当前优先级最高的一条报文为Ρ2,且报文Ρ2的源IP需要监控时,IP控制单元从关键字存储队列中读取报文Ρ2关键字数据包中的源IP和协议类型,从报文队列中读取报文Ρ2的分段1,根据公式Kl=源IP+协议类型+报文内容,生成Κ1,并在Kl前面加上00后,生成Κ1’,即本实施例中的Κ12存储到Al队列中。 接着,IP控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为报文Pl时,处理单元读取Α2队列的第一个元素Κ112,并到处理结果表中作对表查询,当Κ112在处理结果表中对应的结果为最高优先级处理结果即丢弃报文时,处理单元将Al队列的第一个元素Kll和Α2队列的第一个元素Kl 12取出,以及将报文Pl的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文Pl的处理结束。当Κ112在处理结果表中对应的结果为复制结果时,因为复制处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由IP控制单元从关键字存储队列中读取报文Pl关键字数据包中的源IP和协议类型,从报文队列中读取报文Pl的分段3,根据公式Kl=源IP+协议类型+报文内容,生成K1,并在Kl前面加上10后,生成K1’,即本实施例中的K113存储到A3队列中。若IP控制单元选择的当前优先级最高的一条报文为P3,且报文P3的源IP需要监控时,IP控制单元从关键字存储队列中读取报文P3关键字数据包中的源IP和协议类型,从报文队列中读取报文P3的分段1,根据公式Kl=源IP+协议类型+报文内容,生成K1,并在Kl前面加上00后,生成K1’,即本实施例中的K13存储到Al队列中。IP控制单元选择的当前优先级最高的一条报文不可能为报文P2,因为报文P2所对应的K12为Al队列的第二个元素,当K12不为第一个元素吋,其不能被取出判断处理结果,所以对K12的处理一定在Kll之后。接着,IP控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为报文Pl时,处理单元读取A3队列的第一个元素K113,并到处理结果表中作对表查询,当K113在处理结果表中对应的结果为最高优先级处理结果即丢弃报文吋,处理单元将Al队列的第一个元素Kl I和A2队列的第一个元素Kl 12和A3队列的第一个元素Kl 13取出,以及将报文Pl的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文Pl的处理结束。当K113在处理结果表中对应的结果为复制报文结果时,因为复制处理结果并非最高优先级处理結果,所以不能直接根据复制处理结果对整条报文做出处理,但是预先设定需要处理的分段报文的数量为3,即仅需对报文Pl的分段I、分段2和分段3做出监控处理,所以,此时,判断K11、K112、K113处理结果的优先级,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理,在本实施例中,因为Kll的处理结果为透传,K112和K113的处理结果为复制,三者中,透传处理结果的优先级最高,因此,将报文Pl做出透传处理,即处理单元将Al队列的第一个元素Kll和A2队列的第一个元素Kl 12和A3队列的第一个元素Kl 13取出,以及将报文Pl的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做透传处理。当不需要对报文Pl的端ロ关键字进行监控时,对报文Pl的处理即结束;当需要对报文Pl的端ロ关键字进行监控时,对报文Pl的处理不结束。端ロ控制单元选择优先级最高的一条报文进行处理,当优先级最高的一条报文为报文Pl时,读取该条报文的源端口和目的端ロ进行判断,找出需要监控的端ロ类型,需要监控的端ロ类型预先设定;当源端ロ需要监控吋,端ロ控制单元读取该条报文的源端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=源端ロ +协议类型+报文内容,生成K2,并在K2前面加上至少一位ニ进制位,生成K2’并存储到BI队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的IP需要监控时,端ロ控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=目的IP+协议类型+报文内容,生成K2,并在K2前面加上至少一位ニ进制位,生成K2’并存储到BI队列中,其中,ニ进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识。本实施例中,预先设定需要处理的分段报文的数量为3,即当一条报文的分段数大于3段吋,仅监控每条报文的分段I、分段2和分段3。因为预先设定需要处理的分段报文的数量为3,仅需两位ニ进制位即可将3段报文分别唯一标识,因此,在处理的过程中,在K2前面加上两位ニ进制位,其中,00唯一标识分段1、01唯一标识分段2、10唯一标识分段3。
本实施例中,报文Pl的源端ロ需要监控。端ロ控制单元从关键字存储队列中读取报文Pl关键字数据包中的源端口和协议类型,从报文队列中读取报文Pi的分段1,根据公式K2=源端ロ +协议类型+报文内容,生成K2,并在K2前面加上00后,生成K2’,即本实施例中的K21存储到BI队列中。接着,端ロ控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文Pl时,处理单元读取BI队列的第一个元素K21,并到处理结果表中作对表查询,当K21在处理结果表中对应的结果为最高优先级处理结果时,处理单元将BI队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理。在本实施例中,按照图2的处理结果表进行查表处理,图2中的处理结果包括复制、丢弃、透传,三者的优先级分别为丢弃的优先级最高、透传的优先级其次,复制的优先级最低。如果此时查询的结果为丢弃报文时,处理单元将BI队列中的K21取出,以及将相对应的报文Pl的关键字数据包和Pl的报文队列取出,对整条报文做丢弃处理,此时对报文K2的处理结束。当K21在处理结果表中对应的结果为透传结果时,因为透传处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由端ロ控制单元从关键字存储队列中读取报文Pl关键字数据包中的源端ロ 和协议类型,从报文队列中读取报文Pl的分段2,根据公式K2=源端ロ +协议类型+报文内容,生成K2,并在K2前面加上01后,生成K2’,即本实施例中的K212存储到B2队列中。接着,端ロ控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文Pl时,处理单元读取B2队列的第一个元素K212,并到处理结果表中作对表查询,当K212在处理结果表中对应的结果为最高优先级处理结果即丢弃报文吋,处理单元将BI队列的第一个元素K21和B2队列的第一个元素K212取出,以及将报文Pl的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文Pl的处理结束。当K212在处理结果表中对应的结果为复制结果时,因为复制处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由端ロ控制单元从关键字存储队列中读取报文Pl关键字数据包中的源端口和协议类型,从报文队列中读取报文Pl的分段3,根据公式K2=源端ロ+协议类型+报文内容,生成K2,并在K2前面加上10后,生成K2’,即本实施例中的K213存储到B3队列中。接着,端ロ控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文Pl时,处理单元读取B3队列的第一个元素K213,并到处理结果表中作对表查询,当K213在处理结果表中对应的结果为最高优先级处理结果即丢弃报文吋,处理单元将BI队列的第一个元素K21和B2队列的第一个元素K212和B3队列的第一个元素K213取出,以及将报文Pl的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文Pl的处理结束。当K213在处理结果表中对应的结果为复制报文结果吋,因为复制处理结果并非最高优先级处理结果,所以不能直接根据复制处理结果对整条报文做出处理,但是预先设定需要处理的分段报文的数量为3,即仅需对报文Pl的分段I、分段2和分段3做出监控处理,所以,此时,判断K21、K212、K213处理结果的优先级,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理,在本实施例中,因为K21的处理结果为透传,K212和K213的处理结果为复制,三者中,透传处理结果的优先级最高,因此,将报文Pl做出透传处理,即处理单元将BI队列的第一个元素K21和B2队列的第一个元素K212和B3队列的第一个元素K213取出,以及将报文Pl的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做透传处理,对报文Pl的处理即结束。作为优选的实施方式,还存在关键字处理仲裁単元,该仲裁単元协调IP控制单元和端ロ控制单元分别对IP关键字和端ロ关键字进行处理,保证IP关键字和端ロ关键字的处理可以同时独立运行各自的时序。以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围 之内。
权利要求
1.一种多协议网络报文传输保序系统的实现方法,其特征在于,将报文的关键字按照固定顺序封装为关键字数据包存储,然后将该条报文的每段报文内容和关键字数据包中的至少一种关键字进行封装,并在前面加上至少一位二进制位,来唯一标识该条报文的分段序号,并控制该条报文仅在其第一段报文内容处理完成的情况下才能进行第二段报文内容的处理,直到需要处理的分段报文的处理结果中出现预先设定的最高优先级处理结果时, 将整条报文按照最高优先级处理结果进行处理;或者需要处理的分段报文已经全部处理完成但没有出现预先设定的最高优先级处理结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理。
2.根据权利要求I所述的多协议网络报文传输保序系统的实现方法,其特征在于,包括如下步骤.51、报文提取单元将需要处理的报文提取出来,将每一条需要处理的报文,送入关键字提取单元;.52、关键字提取单元对报文进行处理,提取该报文的源IP、目的IP、源端口、目的端口和协议类型关键字,并将所有关键字按照固定的顺序封装为关键字数据包存放到关键字存储队列中,关键字存储队列的位宽与数据包的位宽相等,每条报文的关键字数据包对应存储该条报文的报文队列;.53、控制单元选择优先级最高的一条报文进行处理,读取该条报文的源IP和目的IP进行判断,找出需要监控的IP类型;当源IP需要监控时,控制单元读取该条报文的源IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据Kl=源IP+协议类型+报文内容,生成Kl,并在Kl前面加上至少一位二进制位,生成ΚΓ并存储到Al队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的IP需要监控时,控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据Kl=目的IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位二进制位,生成ΚΓ并存储到Al队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;.S4控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S5;.55、处理单元读取Al队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将Al队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的源IP或目的IP,协议类型以及该条报文的第二段报文内容,根据Kl=源IP/目的IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位二进制位,生成ΚΓ并存储到A2队列中,通过二进制位的加入对ΚΓ进行唯一标识;.56、控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S7 ;.57、处理单元读取A2队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将Al队列的第一个元素和A2队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不预先设定的最高优先级处理结果时,控制单元读取该条报文的第三段报文内容,根据Kl=源IP/目的IP+协议类型+报文内容,生成K1,并在Kl前面加上至少一位二进制位,生成ΚΓ并存储到A3队列中,通过二进制位的加入对 ΚΓ进行唯一标识;S8、循环执行上述步骤,直到Al队列中的第一个元素被取出时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理;当需要对该条报文进行端口关键字处理时,执行步骤S9 ;S9、控制 单元选择优先级最高的一条报文进行处理,当报文需要进行端口关键字处理时,读取该条报文的源端口和目的端口进行判断,找出需要监控的端口类型;当源端口需要监控时,控制单元读取该条报文的源端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=源端口 +协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到BI队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的端口需要监控时,控制单元读取该条报文的目的端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=目的端口 +协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到BI队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;S10、对生成的K2’作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将BI队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的第二段报文内容,根据Kl=源IP/目的IP+协议类型 +报文内容,生成K1,并在Kl前面加上至少一位二进制位,生成ΚΓ并存储到B2队列中,通过二进制位的加入对ΚΓ进行唯一标识;S11、循环执行上述步骤,直到BI队列中的第一个元素被取出丢弃时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理。
3.根据权利要求I或2所述的多协议网络报文传输保序系统的实现方法,其特征在于, 关键字处理仲裁单元,协调IP控制单元和端口控制单元分别对IP关键字和端口关键字进行处理,保证IP关键字和端口关键字的处理可以同时独立运行各自的时序。
全文摘要
本发明公开了一种多协议网络报文传输保序系统的实现方法,其特征在于,将报文的关键字按照固定顺序封装为关键字数据包存储,对该条报文的每段内容和关键字数据包中的至少一种关键字进行封装,并在前面加上至少一位二进制位,来唯一标识该条报文的分段序号,并控制该条报文仅在其第一段报文内容处理完成的情况下才能进行第二段报文内容的处理,直到需要处理的分段报文的处理结果中出现预先设定的最高优先级处理结果时,将整条报文按照最高优先级处理结果进行处理。实施本发明具有以下有益效果能够在并行处理的情况下,保证同种协议网络数据的先后顺序,保证报文保序的操作速度,适应各种硬件处理逻辑的时序要求。
文档编号H04L29/06GK102710524SQ20121019932
公开日2012年10月3日 申请日期2012年6月15日 优先权日2012年6月15日
发明者兰巨龙, 姜鲲鹏, 张建辉, 彭博, 徐天赐, 董永吉, 魏长城 申请人:大连梯耐德网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1