发明名称 CALCULATING CONSECUTIVE MATCHES USING PARALLEL COMPUTING
摘要 Methods and systems for determining consecutive matches are provided. According to one embodiment, a class definition and a data stream are received by a network security device. The data stream is partitioned into multiple data blocks each containing N data segments. Each data block is processed in parallel to compute: (i) a value (F) indicating whether every data segment value meets the class definition; (ii) a value (L) indicating a number of consecutive data segment values meeting the class definition starting from the left; (iii) a value (M) indicating a maximum number of consecutive data segment values meeting the class definition; and (iv) a value (R) indicating a number of consecutive data segment values meeting the class definition starting from the right. Corresponding values for each data block are then aggregated to determine a maximum number of consecutive data segment values meeting the class definition for the entire data stream.
申请公布号 US2016299742(A1) 申请公布日期 2016.10.13
申请号 US201615186442 申请日期 2016.06.18
申请人 Fortinet, Inc. 发明人 Zheng Juneng
分类号 G06F7/02;H04L29/06 主分类号 G06F7/02
代理机构 代理人
主权项 1. A network security device comprising: a non-transitory storage device having embodied therein one or more routines; and one or more processors coupled to the non-transitory storage device and operable to execute the one or more routines, wherein the one or more routines include: a data stream and class definition receive module, which when executed by the one or more processors, receives a data stream having a defined number of data segments and a class definition for the data stream;a data stream partition module, which when executed by the one or more processors, partitions the received data stream into a set of data blocks, wherein each data block comprises N data segments;a data block processing module, which when executed by the one or more processors, processes each data block in parallel, and for each data block, computes the following in parallel: a first integer value based on whether each segment value of the data block forms part of the class definition;a second integer value based on a number of consecutive data segment values that form part of the class definition starting from a left-hand side of the data block;a third integer value based on a maximum number of consecutive data segment values in the data block that form part of the class definition; anda fourth integer value based on a number of consecutive data segment values that form part of the class definition starting from a right-hand side of the data block; anda data block integration module, which when executed by the one or more processors, aggregates the first integer value, the second integer value, the third integer value, and the fourth integer value for each data block in a sequential and associative manner to determine, for the received data stream, a maximum number of consecutive data segment values in the received data stream that form part of the class definition.
地址 Sunnyvale CA US