CA2642844C

Systems and methods for determining a flow of data

Abstract

A method for determining a flow of data is described. The method includes determining whether a packet including a first number of at least one bit within a first set is assigned a classification value based on the at least one bit within the first set and determining a result to be applied to the packet upon determining that the packet is assigned the classification value. The method further includes analyzing, by a processor, at least one bit of a second number within a second set of the packet upon determining that the packet cannot be assigned the classification value based on the first number of at least one bit of the packet.

CA2642844C, drawing sheet 1
Sheet 1 of 9

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

30 claims: 30 independent, 0 dependent

  1. 1
    CA 02642844 2015-03-12 64725-1190 CLAIMS:1. A method for determining a flow of data, said method comprising: receiving a data packet;accessing one or more tables, each of the one or more tables being populated 5 with finite number of listed bit sets, each listed bit set having an equal number of bits as a set of bits previously designated for extraction from the packet and each listed bit set in the one or more tables being associated with either a predetermined classification value assignable to a packet or a designation that the packet cannot be classified;analyzing by a processor the packet including a previously identified first set of 10 at least one bit to determine whether the packet is assigned a classification value based on extracting the previously identified first set of at least one bit and comparing the first set of at least one bit with the finite number of listed bit sets in the one or more tables to determine whether the first set of at least one bit matches a listed bit set in the one or more tables;determining a result to be applied to the packet upon determining that the 15 packet is assigned the classification value based on the first set;upon determining that the packet cannot be assigned a classification value based on the first set continuing to sequentially analyze one or more other previously identified sets of at least one bit of the packet to determine whether the packet is assigned a classification value based upon an analyzed set of bits, the sequential analysis continuing until 20 such time that the packet is assigned a classification value or all of the one more other previously identified sets of bits have been analyzed;and determining a result to be applied to the packet upon determining that the packet is assigned the classification value based upon an analyzed set of the one or more other previously identified sets of bits. CA 02642844 2015-03-12 64725-1190
  2. 2
    A method in accordance with claim 1, wherein each sequentially analyzed set of at least one bit does not include any bit found in a previously analyzed set of at least one bit.
  3. 3
    A method in accordance with claim 1, wherein the each sequentially analyzed set of at least one bit sequentially follows the last analyzed set of at least one bit within the packet.
  4. 4
    A method in accordance with claim 1, wherein each sequentially analyzed set of at least one bit sequentially precedes the last analyzed set of at least one bit within the packet.
  5. 5
    A method in accordance with claim 1, wherein said determining whether the packet is assigned the classification value comprises determining whether an analyzed set of at least one bit matches a set of at least one bit listed in a look-up table.
  6. 6
    A method in accordance with claim 1, wherein said determining the result to be applied to the packet comprises determining that the packet is one to be accepted, denied, and assigned a priority upon determining that the packet is assigned the classification value.
  7. 7
    A method in accordance with claim 1, wherein the classification value comprises one of a code identifying a country, a code identifying a subregion, a code identifying a computer hacker, a code identifying a computer spammer, a code identifying a computer virus, a code identifying a Trojan, a code identifying a computer worm, a code identifying a phisher, a code identifying an intruder, a code identifying a North Atlantic treaty organization country, a code identifying a corporation, a code identifying a government agency, a code identifying an Internet service provider, a code identifying an industrial sector, and a code identifying a Department of Defense.
  8. 8
    A method in accordance with claim 1, wherein said determining whether the packet is assigned the classification value comprises determining whether the first analyzed CA 02642844 2015-03-12 64725-1190 set of at least one bit matches a set of at least one bit listed in a look-up table, and wherein said sequential analyzing the one or more other previously identified sets of at least one bit comprises determining whether the an analyzed set of at least one bit matches a set of at least one bit listed in a look-up table. 5
  9. 9
    A method in accordance with claim 1, wherein said determining whether the packet is assigned the classification value comprises determining whether the first set of at least one bit matches a set of at least one bit listed in a look-up table, and wherein said sequential analyzing of one of the one or more other previously identified sets of at least one bit comprises determining whether the sequentially analyzed set of at least one bit matches a 10 set of at least one bit listed in a look-up table, said method further comprising determining a result to be applied to the packet upon determining that the sequentially analyzed set of at least one bit matches the set of at least one bit listed in the look-up table.
  10. 10
    A method in accordance with claim 1, wherein said determining whether the packet is assigned the classification value comprises determining whether the first set of at 15 least one bit matches a set of at least one bit listed in a look-up table, said method further comprising determining a result to be applied to the packet upon determining that the packet is assigned a classification value based on the comparison of a sequentially analyzed set of at least one bit with a set of at least one bit listed in a look-up table.
  11. 11
    A method in accordance with claim 1, wherein the first set of at least one bit 20 includes at least one bit of an Internet protocol address of the packet.
  12. 12
    A method in accordance with claim 1, wherein the processor comprises a firewall.
  13. 13
    A method in accordance with claim 1, wherein the classification value is included within a finite range of classification values. CA 02642844 2015-03-12 64725-1190
  14. 14
    A method in accordance with claim 1, wherein said determining whether the packet is assigned the classification value comprises determining whether the first set of at least one bit matches a set of at least one bit listed in a look-up table, wherein the set of at least one bit listed in the look-up table represents a set of at least one bit found within a finite 5 range of one of a set of port addresses, a set of authorization data, a set of Internet protocol (IP) network addresses, and a set of a combination of the IP network addresses and the port addresses.
  15. 15
    A processor configured to:receive a data packet;10 access one or more tables, each of the one or more tables being populated with finite number of listed bit sets, each listed bit set having an equal number of bits as a set of bits previously designated for extraction from the packet and each listed bit set in the one or more tables being associated with either a predetermined classification value assignable to a packet or a designation that the packet cannot be classified;15 determine whether the packet including a first set of at least one bit is assigned a classification value based on extracting the previously identified first set of at least one bit and comparing the first set of at least one bit with the finite number of listed bit sets in the one or more tables to determine whether the first set of at least one bit matches a listed bit set in the one or more tables, the first set of at least one bit being previously identified;20 determine a result to be applied to the packet upon determining that the packet is assigned the classification value;and sequentially analyze one or more other previously identified sets of at least one bit of the packet upon determining that the packet cannot be assigned the classification value based on the first set of at least one bit of the packet. CA 02642844 2015-03-12 64725-1190
  16. 16
    A processor in accordance with claim 15, wherein the each sequentially analyzed set of at least one bit does not include any bit found in a previously analyzed set of at least one bit.
  17. 17
    A processor in accordance with claim 15, wherein each sequentially analyzed 5 set of at least one bit sequentially follows the last analyzed set of at least one bit within packet.
  18. 18
    A computer-readable medium having recorded thereon computer-executable instructions that when executed by a computer perform steps to:receive a data packet;10 access one or more tables, each of the one or more tables being populated with finite number of listed bit sets, each listed bit set having an equal number of bits as a set of bits previously designated for extraction from the packet and each listed bit set in the one or more tables being associated with either a predetermined classification value assignable to a packet or a designation that the packet cannot be classified;15 determine whether the packet including a first set of at least one bit is assigned a classification value based on extracting the previously identified first set of at least one bit and comparing the first set of at least one bit with the finite number of listed bit sets in the one or more tables to determine whether the first set of at least one bit matches a listed bit set in the one or more tables, the first set of at least one bit being previously identified;20 determine a result to be applied to the packet upon determining that the packet is assigned the classification value;apply the determined result to the packet;and sequentially analyze one or more other previously identified sets of at least one bit within the packet upon determining that the packet cannot be assigned the classification CA 02642844 2015-03-12 64725-1190 value based on the first set of at least one bit of the packet until such point that a previously identified set of at least one bit matches a bit set listed in the one or more tables that has an assigned classification value or all previously identified sets of bits in the packet have been compared to at least one of the one or more tables. 5
  19. 19
    A computer-readable medium in accordance with claim 18, wherein each sequentially analyzed set of at least one bit does not include any bit found in a previously analyzed set of at least one bit.
  20. 20
    A computer-readable medium in accordance with claim 18, wherein each sequentially analyzed set of at least one bit sequentially follows the last analyzed set of at 10 least one bit within the packet.
  21. 21
    A method for determining a flow of data, the method comprising:a. receiving a data packet;b. providing a memory device containing one or more tables, each one or more table being populated with a finite number of listed bit sets, each listed bit set having an equal 15 number of bits as a set of bits previously designated for extraction from the packet and each listed bit set in the one or more tables being associated with either a predetermined classification value assignable to the packet or a designation that the packet cannot be classified;the set of bits previously designated for extraction from the packet being: 20 (1) one set among a plurality of sets of bits designated for extraction from the packet;and (2) comprising one or more bits, none of which bits are included in any other set of bits designated for extraction from the packet;c. extracting from the packet a first set of bits designated for extraction;CA 02642844 2015-03-12 64725-1190 d. inputting the extracted first set of bits designated for extraction into the memory device and comparing the extracted first set of bits with the finite number of listed bit sets in a table to determine whether the extracted first set of bits matches a listed bit set in the table;5 e. determining whether the packet receives a predetermined classification value or a designation that the packet cannot be classified based upon which listed bit set in the table the extracted first set of bits matches;and f. applying a predetermined result or procedure to the packet upon determining that the packet can be assigned a classification value from the table or continuing to 10 sequentially process the remaining sets of bits designated for extraction by repeating procedures c-e until such point that an extracted set of bits matches a bit set listed in a table that has an assigned classification value or all sets of bits in the packet designated for extraction have been extracted and compared to the entries of at least one table.
  22. 22
    A method in accordance with claim 21 wherein the first set of bits includes less 15 than 32 bits of the IP network address of an IPv4 packet.
  23. 23
    A method in accordance with claim 21 wherein the first set of bits includes less than 128 bits of the IP network address of an IPv6 packet.
  24. 24
    A method in accordance with claim 21 wherein the first set of bits includes one or more bits other than those previously determined to be the most significant bits of the IP 20 network address.
  25. 25
    A method in accordance with claim 21 wherein the first set of bits includes one or more bits other than those previously determined to be among the least significant bits of the IP network address. CA 02642844 2015-03-12 64725-1190
  26. 26
    A method in accordance with claim 21 wherein the first set of bits includes one or more bits previously determined to be among the most significant bits of the IP network address.
  27. 27
    A method in accordance with claim 21 wherein the first set of bits is extracted 5 from the IP network address, the port address or the data of the packet.
  28. 28
    A method in accordance with claim 21 wherein a portion of the first set of bits is extracted in part from the IP network address and the remainder of the first set of bits is extracted from the port address.
  29. 29
    A method in accordance with claim 21 wherein each bit set listed in a table 10 against which a set of bits is compared constitutes an IP network address sub-range.
  30. 30
    A method in accordance with claim 21 wherein one or more of the classification values assigned to a bit set listed in a table against which a set of bits is compared constitute country codes.
Independent claims30