System and method for storing and/or transmitting emulated network flows
First Claim
1. A method of encoding a network packet, comprising:
- determining a protocol for the packet and validating the protocol as belonging to a list of recognized protocols;
responsive to validating the packet, parsing a protocol attribute value from the packet;
referencing a dictionary using the protocol attribute value to obtain a binary encoding; and
storing the binary encoding in storage as an encoded packet.
3 Assignments
0 Petitions
Accused Products
Abstract
A method of encoding network packets for storage and later transmitting emulated packets includes determining a protocol for the packet and validating the protocol as belonging to a list of recognized protocols. Upon validating the packet, a protocol attribute value from the packet is parsed and a dictionary is referenced using the protocol attribute value to obtain a binary encoding, which is stored as an encoded packet. The packet, for example, may be an HTTP protocol request packet and parsing may include parsing a TYPE attribute value where the TYPE attribute value indicates whether the packet is a GET, POST, PUT or OTHER type of HTTP request. The method may further include modifying environmental data in the packet when the packet is later generated for transmission on a network. The method may further include, for packets of unrecognized protocols, learning and creating an encoding for new protocols.
19 Citations
33 Claims
-
1. A method of encoding a network packet, comprising:
-
determining a protocol for the packet and validating the protocol as belonging to a list of recognized protocols;
responsive to validating the packet, parsing a protocol attribute value from the packet;
referencing a dictionary using the protocol attribute value to obtain a binary encoding; and
storing the binary encoding in storage as an encoded packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. The method of claim 6, wherein parsing a protocol value further comprises parsing a USER/AGENT attribute value from the packet and wherein referencing a dictionary comprises referencing a USER/AGENT dictionary indicative of a client application associated with the packet.
-
10. The method of claim 9, wherein the USER/AGENT dictionary includes a set of bits indicative of the client application.
-
11. The method of claim 9, wherein the encoding includes a set of bits indicative of the type of request packet, a set of bits indicative of the host URL, and a set of bits indicative of the client application.
-
12. The method of claim 1, further comprising associating a first binary encoding associated with a first packet with a second binary encoding associated with a second packet, the second packet being related to the first packet.
-
13. The method of claim 12, wherein the second packet and the first packet are associated with a common initial request packet.
-
14. The method of claim 13, further comprising merging the first binary encoding with the second binary encoding to generate a third binary encoding, wherein the third binary encoding represents a cumulative effect of the first and second binary encoding.
-
15. The method of claim 13, wherein the second binary encoding is a change encoding indicative only of attribute values in the second packet that differ from corresponding packet values in the first packet.
-
16. The method of claim 1, further comprising:
-
retrieving the encoded packet from storage and referencing the dictionary using the encoding to obtain a protocol attribute value; and
generating an emulated packet suitable for transmission from the encoded packet based at least in part on the protocol attribute value.
-
-
17. The method of claim 16, wherein generating the emulated packet includes replacing captured environmental data in the encoded packet with contemporary environmental data to reflect a time and a network environment in which the emulated packet is to be transmitted.
-
18. The method of claim 17, wherein the environmental data is selected from the group consisting of, network address translation (NAT) information, checksum information, and time to live (TTL) information.
-
19. The method of claim 16, further comprising, including in the encoded packet information indicative of a pacing of the packet relative to other packets.
-
20. The method of claim 19, wherein the pacing indicative information is selected from the group consisting of number of packets transmitted between two packets, the number of bytes transmitted between two packets, and the number of times a network interface card clock cycle counter increments.
-
21. The method of claim 19, further comprising retrieving and using the pacing indicative information to preserve the recorded pacing when transmitting the emulated packet.
-
22. The method of claim 1, further comprising responsive to not validating the packet, recording the packet as an unrecognized packet and determining whether a sufficient sample of unrecognized packets have been recorded.
-
23. The method of claim 19, further comprising, responsive to determining that a sufficient sample of unrecognized packets have been recorded, creating a new encoding for the unrecognized packets by identifying patterns in the bits of the unrecognized packets.
-
24. A computer instruction product comprising computer executable instructions, stored on a computer readable medium for encoding a network packet, the instructions comprising:
-
instructions for determining a protocol for the packet and validating the protocol as belonging to a list of recognized protocols;
responsive to validating the packet, instructions for parsing a protocol attribute value from the packet;
instructions for referencing a dictionary using the protocol attribute value to obtain a binary encoding; and
instructions for storing the binary encoding in storage as an encoded packet.
-
-
25. The computer program product of claim 1, further comprising:
-
instructions for retrieving the encoded packet from storage and referencing the dictionary using the encoding to obtain a protocol attribute value; and
instructions for generating an emulated packet suitable for transmission from the encoded packet based at least in part on the protocol attribute value.
-
-
26. The computer program product of claim 25, wherein the instructions for generating the emulated packet include instructions for replacing captured environmental data in the encoded packet with contemporary environmental data to reflect a time and a network environment in which the emulated packet is to be transmitted.
-
27. The computer program product of claim 26, wherein the environmental data is selected from the group consisting of, network address translation (NAT) information, checksum information, and time to live (TTL) information.
-
28. The computer program product of claim 25, further comprising, instructions for including in the encoded packet information indicative of a pacing of the packet relative to other packets.
-
29. The computer program product of claim 28, wherein the pacing indicative information is selected from the group consisting of number of packets transmitted between two packets, the number of bytes transmitted between two packets, and the number of times a network interface card clock cycle counter increments.
-
30. The computer program product of claim 28, further comprising instructions for retrieving and using the pacing indicative information to preserve the recorded pacing when transmitting the emulated packet.
-
31. The computer program product of claim 24, further comprising, responsive to not validating the packet, instructions for recording the packet as an unrecognized packet and determining whether a sufficient sample of unrecognized packets have been recorded.
-
32. The computer program product of claim 31, further comprising, responsive to determining that a sufficient sample of unrecognized packets have been recorded, instructions for creating a new encoding for the unrecognized packets by identifying patterns in the bits of the unrecognized packets.
-
33. A data processing system including a processor, a computer readable storage medium accessible to the processor, and software stored on the computer readable storage medium, the software comprising computer executable instructions including:
-
instructions for determining a protocol for the packet and validating the protocol as belonging to a list of recognized protocols;
responsive to validating the packet, instructions for parsing a protocol attribute value from the packet;
instructions for referencing a dictionary using the protocol attribute value to obtain a binary encoding; and
instructions for storing the binary encoding in storage as an encoded packet.
-
Specification