CN102710524B - 一种多协议网络报文传输保序系统的实现方法 - Google Patents
一种多协议网络报文传输保序系统的实现方法 Download PDFInfo
- Publication number
- CN102710524B CN102710524B CN201210199323.9A CN201210199323A CN102710524B CN 102710524 B CN102710524 B CN 102710524B CN 201210199323 A CN201210199323 A CN 201210199323A CN 102710524 B CN102710524 B CN 102710524B
- Authority
- CN
- China
- Prior art keywords
- message
- result
- queue
- keyword
- generate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多协议网络报文传输保序系统的实现方法,其特征在于,将报文的关键字按照固定顺序封装为关键字数据包存储,对该条报文的每段内容和关键字数据包中的至少一种关键字进行封装,并在前面加上至少一位二进制位,来唯一标识该条报文的分段序号,并控制该条报文仅在其第一段报文内容处理完成的情况下才能进行第二段报文内容的处理,直到需要处理的分段报文的处理结果中出现预先设定的最高优先级处理结果时,将整条报文按照最高优先级处理结果进行处理。实施本发明具有以下有益效果:能够在并行处理的情况下,保证同种协议网络数据的先后顺序,保证报文保序的操作速度,适应各种硬件处理逻辑的时序要求。
Description
技术领域
本发明涉及一种保序系统的实现方法,更具体地说,涉及一种多协议网络报文传输保序系统的实现方法。
背景技术
随着网络速度的日益发展,要求网络产品对网络数据的处理速度越来越高,网络中数据的并行处理也越来越多,在并行处理的情况下,需要保证同种协议网络数据的先后顺序,也就是保序。要实现高速的报文处理和保序软件的处理速度远不能满足要求,则需要在硬件上进行实现。
本发明主要是使用一种新的方式,保证报文保序操作速度,适应各种硬件处理逻辑的时序要求。
发明内容
本发明针对以上问题的提出,而研制一种多协议网络报文传输保序系统的实现方法。
本发明提供一种多协议网络报文传输保序系统的实现方法,其特征在于,将报文的关键字按照固定顺序封装为关键字数据包存储,然后将该条报文的每段报文内容和关键字数据包中的至少一种关键字进行封装,并在前面加上至少一位二进制位,来唯一标识该条报文的分段序号,并控制该条报文仅在其第一段报文内容处理完成的情况下才能进行第二段报文内容的处理,直到需要处理的分段报文的处理结果中出现预先设定的最高优先级处理结果时,将整条报文按照最高优先级处理结果进行处理;或者需要处理的分段报文已经全部处理完成但没有出现预先设定的最高优先级处理结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理;方法包括如下步骤:
S1、报文提取单元将需要处理的报文提取出来,将每一条需要处理的报文,送入关键字提取单元;
S2、关键字提取单元对报文进行处理,提取该报文的源IP、目的IP、源端口、目的端口和协议类型关键字,并将所有关键字按照固定的顺序封装为关键字数据包存放到关键字存储队列中,关键字存储队列的位宽与数据包的位宽相等,每条报文的关键字数据包对应存储该条报文的报文队列;
S3、控制单元选择优先级最高的一条报文进行处理,读取该条报文的源IP和目的IP进行判断,找出需要监控的IP类型;
当源IP需要监控时,控制单元读取该条报文的源IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
当目的IP需要监控时,控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K1=目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
S4控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S5;
S5、处理单元读取A1队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将A1队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的源IP或目的IP,协议类型以及该条报文的第二段报文内容,根据K1=源IP/目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A2队列中,通过二进制位的加入对K1’进行唯一标识;
S6、控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S7;
S7、处理单元读取A2队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将A1队列的第一个元素和A2队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不预先设定的最高优先级处理结果时,控制单元读取该条报文的第三段报文内容,根据K1=源IP/目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A3队列中,通过二进制位的加入对K1’进行唯一标识;
S8、循环执行上述步骤,直到A1队列中的第一个元素被取出时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理;当需要对该条报文进行端口关键字处理时,执行步骤S9;
S9、控制单元选择优先级最高的一条报文进行处理,当报文需要进行端口关键字处理时,读取该条报文的源端口和目的端口进行判断,找出需要监控的端口类型;
当源端口需要监控时,控制单元读取该条报文的源端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=源端口+协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到B1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
当目的端口需要监控时,控制单元读取该条报文的目的端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=目的端口+协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到B1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
S10、对生成的K2’作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将B1队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的第二段报文内容,根据K1=源IP/目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到B2队列中,通过二进制位的加入对K1’进行唯一标识;
S11、循环执行上述步骤,直到B1队列中的第一个元素被取出丢弃时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理。
优选地,关键字处理仲裁单元,协调IP控制单元和端口控制单元分别对IP关键字和端口关键字进行处理,保证IP关键字和端口关键字的处理可以同时独立运行各自的时序。
实施本发明所述的多协议网络报文传输保序系统的实现方法,具有以下有益效果:能够在并行处理的情况下,保证同种和不同协议网络数据的先后顺序,保证报文保序的操作速度,适应各种硬件处理逻辑的时序要求。
附图说明
图1是本发明的格式名称表;
图2是本发明的报文的处理结果表;
图3是本发明的单条报文处理的一实施例的方法流程图;
图4是本发明的关键字处理时的报文传输保序方法的一实施例的结构示意图。
具体实施方式
图1是本发明的格式名称表,如图所示。图中的格式名称分别为K1和K2,K1=关键字类型(IP)+协议类型+某一段报文的内容,即K1=源IP/目的IP+协议类型+报文内容;当源IP为监控对象时,K1=源IP+协议类型+报文内容,当目的IP为监控对象时,K1=目的IP+协议类型+报文内容。K2=关键字类型(端口)+协议类型+某一段报文的内容,即K2=源端口/目的端口+协议类型+报文内容;当源端口为监控对象时,K2=源端口+协议类型+报文内容,当目的端口为监控对象时,K2=目的端口+协议类型+报文内容。
图2是本发明的报文的处理结果表,如图所示。表中的关键字类型包括IP和端口,此处的IP包括源IP和目的IP,端口包括源端口和目的端口。当源IP为监控对象时,表中的IP指代源IP,当目的IP为监控对象时,表中的IP指代目的IP。当源端口为监控对象时,表中的端口指代源端口,当目的端口为监控对象时,表中的端口指代目的端口。表中的关键字为IP+负载,此处的负载为某一段报文的内容。不同的IP和不同的负载,对应不同的处理结果,处理结果的类型根据用户的需要设定,对于一条报文,IP一定,但报文分段负载内容不同,因此,IP+负载所对应的处理结果不同。在本实施例中,用户关注三种处理结果,即复制、丢弃和透传,即三种对报文进行处理的结果。IP+负载1对应的处理结果为复制,IP+负载2对应的处理结果为丢弃,IP+负载3对应的处理结果为透传,例如,当源IP为监控对象并且取一条报文的第一个报文分段时,关键字为源IP+第一段报文内容,将其与处理结果表进行对表查询,当对应的结果为复制时,得知当前获得的对该条报文的第一段报文内容的处理结果是复制,因为不知道第二段报文内容、第三段报文内容以及需要查询的其他报文段的报文内容,而且用户对处理结果设置了优先级,复制结果的优先级不是最高,所以此时需要继续对该条报文的第二段报文内容进行处理查询处理结果。当对应的结果为丢弃时,得知当前获得的对该条报文的第一段报文内容的处理结果是丢弃,因为用户设置的丢弃结果的优先级最高,所以,此时可以直接将整条报文进行丢弃处理。当目的IP为监控对象时,处理方式与前述方式相同。当源端口为监控对象并且取一条报文的第一个报文分段时,关键字为源端口+第一段报文内容。对于一条报文,端口一定,但报文分段负载内容不同,因此,端口+负载所对应的处理结果不同。在本实施例中,用户关注三种处理结果,即复制、丢弃和透传,即三种对报文进行处理的结果。端口+负载1对应的处理结果为复制,端口+负载2对应的处理结果为丢弃,端口+负载3对应的处理结果为透传。将端口+第一段报文内容与处理结果表进行对表查询,当对应的结果为复制时,得知当前获得的对该条报文的第一段报文内容的处理结果是复制,因为不知道第二段报文内容、第三段报文内容以及需要查询的其他报文段的报文内容,而且用户对处理结果设置了优先级,复制结果的优先级不是最高,所以此时需要继续对该条报文的第二段报文内容进行处理查询处理结果。当对应的结果为丢弃时,得知当前获得的对该条报文的第一段报文内容的处理结果是丢弃,因为用户设置的丢弃结果的优先级最高,所以,此时可以直接将整条报文进行丢弃处理。当目的端口为监控对象时,处理方式与前述方式相同。
图3是本发明的单条报文处理的一实施例的方法流程图,如图所示。当报文输入时,报文解析单元对报文是否需要处理进行解析,当报文不需要处理时,直接将报文输出;当报文需要处理时,针对该条报文提取用户需要的关键字,在本实施例中,提取源IP、目的IP、源端口、目的端口和协议类型关键字,首先对IP关键字进行处理,处理的方式按照本文上一段的描述进行。当不需要对该条报文的端口关键字进行处理时,报文的处理即结束;当端口关键字需要进行处理时,处理单元对端口关键字进行处理,端口关键字处理完成后,该条报文的处理即结束。
图4是本发明的关键字处理时的报文传输保序方法的一实施例的结构示意图,如图所示。
首先,报文提取单元将需要处理的报文提取出来并送入关键字提取单元,本实施例中,先后提取了三条需要处理的报文,分别为P1、P2、P3。
然后,关键字提取单元提取每条报文的关键字,例如源IP、目的IP、源端口、目的端口、协议类型等,本实施例中,关键字提取单元分别提取报文P1、P2、P3的源IP、目的IP、源端口、目的端口、协议类型,并将报文P1的所有关键字按照源IP、目的IP、源端口、目的端口、协议类型的固定顺序封装为关键字数据包存放到关键字存储队列中;将报文P2、P3的关键字也按照前述的固定顺序封装为关键字数据包存放到关键字存储队列中;其中,关键字存储队列的位宽与关键字数据包的位宽相等。处理报文时,报文内容的分段数量根据报文的长度以及报文队列的位宽确定。本实施例中,报文P1分为4段,即分段1、分段2、分段3、分段4,报文P2分为2段,报文P3分为2段。每条报文的关键字数据包对应着存储该条报文的报文队列,即报文P1的关键字数据包对应着存储报文P1的报文队列。
接着,IP控制单元选择优先级最高的一条报文进行处理,读取该条报文的源IP和目的IP进行判断,找出需要监控的IP类型,源IP或目的IP,需要监控的IP类型预先设定;当源IP需要监控时,IP控制单元读取该条报文的源IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的IP需要监控时,IP控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K1=目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识。本实施例中,预先设定需要处理的分段报文的数量为3,即当一条报文的分段数大于3段时,仅监控每条报文的分段1、分段2和分段3。因为预先设定需要处理的分段报文的数量为3,仅需两位二进制位即可将3段报文分别唯一标识,因此,在处理的过程中,在K1前面加上两位二进制位,其中,00唯一标识分段1、01唯一标识分段2、10唯一标识分段3。
本实施例中报文P1的优先级最高,且报文P1的源IP需要监控。IP控制单元从关键字存储队列中读取报文P1关键字数据包中的源IP和协议类型,从报文队列中读取报文P1的分段1,根据公式K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上00后,生成K1’,即本实施例中的K11存储到A1队列中。
接着,IP控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文P1时,处理单元读取A1队列的第一个元素K11,并到处理结果表中作对表查询,当K11在处理结果表中对应的结果为最高优先级处理结果时,处理单元将A1队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理。在本实施例中,按照图2的处理结果表进行查表处理,图2中的处理结果包括复制、丢弃、透传,三者的优先级分别为丢弃的优先级最高、透传的优先级其次,复制的优先级最低。如果此时查询的结果为丢弃报文时,处理单元将A1队列中的K11取出,以及将相对应的报文P1的关键字数据包和P1的报文队列取出,对整条报文做丢弃处理,此时对报文P1的处理结束。当K11在处理结果表中对应的结果为透传结果时,因为透传处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由IP控制单元从关键字存储队列中读取报文P1关键字数据包中的源IP和协议类型,从报文队列中读取报文P1的分段2,根据公式K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上01后,生成K1’,即本实施例中的K112存储到A2队列中。
若IP控制单元选择的当前优先级最高的一条报文为P2,且报文P2的源IP需要监控时,IP控制单元从关键字存储队列中读取报文P2关键字数据包中的源IP和协议类型,从报文队列中读取报文P2的分段1,根据公式K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上00后,生成K1’,即本实施例中的K12存储到A1队列中。
接着,IP控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为报文P1时,处理单元读取A2队列的第一个元素K112,并到处理结果表中作对表查询,当K112在处理结果表中对应的结果为最高优先级处理结果即丢弃报文时,处理单元将A1队列的第一个元素K11和A2队列的第一个元素K112取出,以及将报文P1的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文P1的处理结束。当K112在处理结果表中对应的结果为复制结果时,因为复制处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由IP控制单元从关键字存储队列中读取报文P1关键字数据包中的源IP和协议类型,从报文队列中读取报文P1的分段3,根据公式K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上10后,生成K1’,即本实施例中的K113存储到A3队列中。
若IP控制单元选择的当前优先级最高的一条报文为P3,且报文P3的源IP需要监控时,IP控制单元从关键字存储队列中读取报文P3关键字数据包中的源IP和协议类型,从报文队列中读取报文P3的分段1,根据公式K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上00后,生成K1’,即本实施例中的K13存储到A1队列中。
IP控制单元选择的当前优先级最高的一条报文不可能为报文P2,因为报文P2所对应的K12为A1队列的第二个元素,当K12不为第一个元素时,其不能被取出判断处理结果,所以对K12的处理一定在K11之后。
接着,IP控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为报文P1时,处理单元读取A3队列的第一个元素K113,并到处理结果表中作对表查询,当K113在处理结果表中对应的结果为最高优先级处理结果即丢弃报文时,处理单元将A1队列的第一个元素K11和A2队列的第一个元素K112和A3队列的第一个元素K113取出,以及将报文P1的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文P1的处理结束。当K113在处理结果表中对应的结果为复制报文结果时,因为复制处理结果并非最高优先级处理结果,所以不能直接根据复制处理结果对整条报文做出处理,但是预先设定需要处理的分段报文的数量为3,即仅需对报文P1的分段1、分段2和分段3做出监控处理,所以,此时,判断K11、K112、K113处理结果的优先级,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理,在本实施例中,因为K11的处理结果为透传,K112和K113的处理结果为复制,三者中,透传处理结果的优先级最高,因此,将报文P1做出透传处理,即处理单元将A1队列的第一个元素K11和A2队列的第一个元素K112和A3队列的第一个元素K113取出,以及将报文P1的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做透传处理。当不需要对报文P1的端口关键字进行监控时,对报文P1的处理即结束;当需要对报文P1的端口关键字进行监控时,对报文P1的处理不结束。
端口控制单元选择优先级最高的一条报文进行处理,当优先级最高的一条报文为报文P1时,读取该条报文的源端口和目的端口进行判断,找出需要监控的端口类型,需要监控的端口类型预先设定;当源端口需要监控时,端口控制单元读取该条报文的源端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=源端口+协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到B1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;当目的IP需要监控时,端口控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=目的IP+协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到B1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识。本实施例中,预先设定需要处理的分段报文的数量为3,即当一条报文的分段数大于3段时,仅监控每条报文的分段1、分段2和分段3。因为预先设定需要处理的分段报文的数量为3,仅需两位二进制位即可将3段报文分别唯一标识,因此,在处理的过程中,在K2前面加上两位二进制位,其中,00唯一标识分段1、01唯一标识分段2、10唯一标识分段3。
本实施例中,报文P1的源端口需要监控。端口控制单元从关键字存储队列中读取报文P1关键字数据包中的源端口和协议类型,从报文队列中读取报文P1的分段1,根据公式K2=源端口+协议类型+报文内容,生成K2,并在K2前面加上00后,生成K2’,即本实施例中的K21存储到B1队列中。
接着,端口控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文P1时,处理单元读取B1队列的第一个元素K21,并到处理结果表中作对表查询,当K21在处理结果表中对应的结果为最高优先级处理结果时,处理单元将B1队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理。在本实施例中,按照图2的处理结果表进行查表处理,图2中的处理结果包括复制、丢弃、透传,三者的优先级分别为丢弃的优先级最高、透传的优先级其次,复制的优先级最低。如果此时查询的结果为丢弃报文时,处理单元将B1队列中的K21取出,以及将相对应的报文P1的关键字数据包和P1的报文队列取出,对整条报文做丢弃处理,此时对报文K2的处理结束。当K21在处理结果表中对应的结果为透传结果时,因为透传处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由端口控制单元从关键字存储队列中读取报文P1关键字数据包中的源端口和协议类型,从报文队列中读取报文P1的分段2,根据公式K2=源端口+协议类型+报文内容,生成K2,并在K2前面加上01后,生成K2’,即本实施例中的K212存储到B2队列中。
接着,端口控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文P1时,处理单元读取B2队列的第一个元素K212,并到处理结果表中作对表查询,当K212在处理结果表中对应的结果为最高优先级处理结果即丢弃报文时,处理单元将B1队列的第一个元素K21和B2队列的第一个元素K212取出,以及将报文P1的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文P1的处理结束。当K212在处理结果表中对应的结果为复制结果时,因为复制处理结果并非最高优先级处理结果,所以,此时不对整条报文做出处理,而是由端口控制单元从关键字存储队列中读取报文P1关键字数据包中的源端口和协议类型,从报文队列中读取报文P1的分段3,根据公式K2=源端口+协议类型+报文内容,生成K2,并在K2前面加上10后,生成K2’,即本实施例中的K213存储到B3队列中。
接着,端口控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文,即报文P1时,处理单元读取B3队列的第一个元素K213,并到处理结果表中作对表查询,当K213在处理结果表中对应的结果为最高优先级处理结果即丢弃报文时,处理单元将B1队列的第一个元素K21和B2队列的第一个元素K212和B3队列的第一个元素K213取出,以及将报文P1的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做丢弃处理,此时对报文P1的处理结束。当K213在处理结果表中对应的结果为复制报文结果时,因为复制处理结果并非最高优先级处理结果,所以不能直接根据复制处理结果对整条报文做出处理,但是预先设定需要处理的分段报文的数量为3,即仅需对报文P1的分段1、分段2和分段3做出监控处理,所以,此时,判断K21、K212、K213处理结果的优先级,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理,在本实施例中,因为K21的处理结果为透传,K212和K213的处理结果为复制,三者中,透传处理结果的优先级最高,因此,将报文P1做出透传处理,即处理单元将B1队列的第一个元素K21和B2队列的第一个元素K212和B3队列的第一个元素K213取出,以及将报文P1的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理,即将所取出的所有元素全部做透传处理,对报文P1的处理即结束。
作为优选的实施方式,还存在关键字处理仲裁单元,该仲裁单元协调IP控制单元和端口控制单元分别对IP关键字和端口关键字进行处理,保证IP关键字和端口关键字的处理可以同时独立运行各自的时序。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (2)
1.一种多协议网络报文传输保序系统的实现方法,其特征在于,将报文的关键字按照固定顺序封装为关键字数据包存储,然后将该条报文的每段报文内容和关键字数据包中的至少一种关键字进行封装,并在前面加上至少一位二进制位,来唯一标识该条报文的分段序号,并控制该条报文仅在其第一段报文内容处理完成的情况下才能进行第二段报文内容的处理,直到需要处理的分段报文的处理结果中出现预先设定的最高优先级处理结果时,将整条报文按照最高优先级处理结果进行处理;或者需要处理的分段报文已经全部处理完成但没有出现预先设定的最高优先级处理结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理;包括如下步骤:
S1、报文提取单元将需要处理的报文提取出来,将每一条需要处理的报文,送入关键字提取单元;
S2、关键字提取单元对报文进行处理,提取该报文的源IP、目的IP、源端口、目的端口和协议类型关键字,并将所有关键字按照固定的顺序封装为关键字数据包存放到关键字存储队列中,关键字存储队列的位宽与数据包的位宽相等,每条报文的关键字数据包对应存储该条报文的报文队列;
S3、控制单元选择优先级最高的一条报文进行处理,读取该条报文的源IP和目的IP进行判断,找出需要监控的IP类型;
当源IP需要监控时,控制单元读取该条报文的源IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K1=源IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
当目的IP需要监控时,控制单元读取该条报文的目的IP和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K1=目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
S4控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S5;
S5、处理单元读取A1队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将A1队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的源IP或目的IP,协议类型以及该条报文的第二段报文内容,根据K1=源IP/目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A2队列中,通过二进制位的加入对K1’进行唯一标识;
S6、控制单元继续选择当前优先级最高的一条报文进行处理,当优先级最高的一条报文为当前报文时,执行步骤S7;
S7、处理单元读取A2队列的第一个元素,并到处理结果表中作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将A1队列的第一个元素和A2队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不预先设定的最高优先级处理结果时,控制单元读取该条报文的第三段报文内容,根据K1=源IP/目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到A3队列中,通过二进制位的加入对K1’进行唯一标识;
S8、循环执行上述步骤,直到A1队列中的第一个元素被取出时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理;当需要对该条报文进行端口关键字处理时,执行步骤S9;
S9、控制单元选择优先级最高的一条报文进行处理,当报文需要进行端口关键字处理时,读取该条报文的源端口和目的端口进行判断,找出需要监控的端口类型;
当源端口需要监控时,控制单元读取该条报文的源端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=源端口+协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到B1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
当目的端口需要监控时,控制单元读取该条报文的目的端口和协议类型,从报文队列中取出该条报文的第一段报文内容,根据K2=目的端口+协议类型+报文内容,生成K2,并在K2前面加上至少一位二进制位,生成K2’并存储到B1队列中,其中,二进制位的位数根据需要处理的分段报文的数量决定,保证每个分段报文可以唯一标识;
S10、对生成的K2’作对表查询,当查表结果为预先设定的最高优先级处理结果时,处理单元将B1队列的第一个元素取出,以及将相对应的该条报文的关键字数据包和报文队列取出,对整条报文按照当前的处理结果进行处理;当查表结果不为预先设定的最高优先级处理结果时,控制单元读取该条报文的第二段报文内容,根据K1=源IP/目的IP+协议类型+报文内容,生成K1,并在K1前面加上至少一位二进制位,生成K1’并存储到B2队列中,通过二进制位的加入对K1’进行唯一标识;
S11、循环执行上述步骤,直到B1队列中的第一个元素被取出丢弃时,结束对该条报文的操作;当在需要处理的分段报文数量范围内没有得到丢弃报文结果时,将整条报文按照已出现处理结果中的最高优先级处理结果进行处理。
2.根据权利要求1所述的多协议网络报文传输保序系统的实现方法,其特征在于,关键字处理仲裁单元,协调IP控制单元和端口控制单元分别对IP关键字和端口关键字进行处理,保证IP关键字和端口关键字的处理可以同时独立运行各自的时序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210199323.9A CN102710524B (zh) | 2012-06-15 | 2012-06-15 | 一种多协议网络报文传输保序系统的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210199323.9A CN102710524B (zh) | 2012-06-15 | 2012-06-15 | 一种多协议网络报文传输保序系统的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102710524A CN102710524A (zh) | 2012-10-03 |
CN102710524B true CN102710524B (zh) | 2015-01-21 |
Family
ID=46903093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210199323.9A Expired - Fee Related CN102710524B (zh) | 2012-06-15 | 2012-06-15 | 一种多协议网络报文传输保序系统的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102710524B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105591989B (zh) * | 2016-01-25 | 2019-12-20 | 盛科网络(苏州)有限公司 | 一种协议报文上送cpu的芯片实现方法 |
CN108924200B (zh) * | 2018-06-21 | 2021-11-23 | 国家电网有限公司 | 一种报文处理方法及装置 |
CN109918081B (zh) * | 2019-03-01 | 2022-06-03 | 中安智联未来有限公司 | 一种编译方法及编译器 |
CN114731334B (zh) * | 2020-02-14 | 2023-10-20 | 华为技术有限公司 | 报文保序方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996958A (zh) * | 2006-12-30 | 2007-07-11 | 华为技术有限公司 | 保证报文顺序的方法和装置 |
CN101291194A (zh) * | 2008-05-20 | 2008-10-22 | 华为技术有限公司 | 报文保序的方法和系统 |
CN102204183A (zh) * | 2011-05-09 | 2011-09-28 | 华为技术有限公司 | 报文保序处理方法、保序协处理器和网络设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214588B2 (en) * | 2003-11-05 | 2012-07-03 | International Business Machines Corporation | Parallel asynchronous order-preserving transaction processing |
-
2012
- 2012-06-15 CN CN201210199323.9A patent/CN102710524B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996958A (zh) * | 2006-12-30 | 2007-07-11 | 华为技术有限公司 | 保证报文顺序的方法和装置 |
CN101291194A (zh) * | 2008-05-20 | 2008-10-22 | 华为技术有限公司 | 报文保序的方法和系统 |
CN102204183A (zh) * | 2011-05-09 | 2011-09-28 | 华为技术有限公司 | 报文保序处理方法、保序协处理器和网络设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102710524A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754681B2 (en) | Announcing virtual machine migration | |
US10027601B2 (en) | Flow-based packet modification | |
EP3228060B1 (en) | Context-aware distributed firewall | |
CN102710524B (zh) | 一种多协议网络报文传输保序系统的实现方法 | |
KR101864813B1 (ko) | 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치 | |
US9875126B2 (en) | Hash-based load balancing for bonded network interfaces | |
CN107395565B (zh) | 一种定长单字节格式报文协议下串口接收预处理方法 | |
CN105553880A (zh) | 一种软件定义网络中的数据处理方法及装置 | |
CN108306835B (zh) | 一种以太网交换机的输入缓存及数据转发方法 | |
CN104394083B (zh) | 转发表项处理的方法、报文转发的方法及其装置和系统 | |
CN102104544A (zh) | 硬件加速的多核处理器ip隧道分片报文流保序方法 | |
CN104125128A (zh) | Linux软桥支持VLAN的方法 | |
US10129148B2 (en) | Table-based load balancing for bonded network interfaces | |
CN103685058B (zh) | 控制流数据的服务质量的方法和OpenFlow控制器 | |
US20150124808A1 (en) | Network System and Network Relay Device | |
CN104734953A (zh) | 基于vlan实现报文二层隔离的方法、装置及交换机 | |
CN100377550C (zh) | 一种路由表下一跳ip地址到mac地址解析方法 | |
US9218356B2 (en) | Systems and methods for accelerating networking functionality | |
US7428250B2 (en) | System and associated method for receiving data telegrams in communication systems having redundant network paths | |
CN115088239A (zh) | 用于网络设备的混合固定/可编程报头解析器 | |
CN105739464B (zh) | 智能家电设备中主控通信方法 | |
CN101883055A (zh) | 路由转发表容量扩展实现方法、装置及交换设备 | |
CN106453091A (zh) | 路由器转发平面的等价路由管理方法和装置 | |
CN103200084B (zh) | 基于网络处理器的报文预处理方法、装置及网络处理器 | |
CN111800338B (zh) | 跨as的evpn路由交互方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150121 Termination date: 20190615 |