×

Ordering traffic captured on a data connection

  • US 9,525,642 B2
  • Filed: 12/04/2014
  • Issued: 12/20/2016
  • Est. Priority Date: 01/31/2012
  • Status: Active Grant
First Claim
Patent Images

1. A system comprising:

  • at least one hardware processor; and

    one or more software modules that, when executed by the at least one hardware processor,receive a plurality of data packets from a network tap on a network connection between two network agents, wherein each of the plurality of data packets comprise a starting sequence number and an acknowledgement number,separate the plurality of data packets into two queues based on a direction of communication for each data packet, wherein each of the two queues represents a different direction of communication,for each of the two queues, maintain a push-sequence value for the queue, wherein each push-sequence value represents a starting sequence number of a packet that must be pushed off its respective queue next in order to maintain a consecutive sequence number order for packets pushed off its respective queue,when both of the push-sequence values are equal to the starting sequence number of a first data packet on their respective queues,if the acknowledgement number of the first data packet on one of the two queues is greater than the push-sequence value for the other of the two queues and the acknowledgement number of the first data packet on the other queue is less than or equal to the push-sequence value for the one queue, push, to an output, an amount of data off of the other queue that is equal to a minimum of a length of the first data packet on the other queue and a difference between the acknowledgement number of the first data packet on the one queue and the push-sequence value for the other queue, and,otherwise,identify a first one of the two queues whose first data packet has an earlier timestamp than the first data packet on a second one of the two queues,determine whether or not a next acknowledgement number in a data packet exists on the second queue that is greater than a preceding acknowledgement number in a preceding data packet on the second queue, wherein the preceding acknowledgement number is greater than the push-sequence value for the first queue,if the next acknowledgement number is determined to exist on the second queue, push, to the output, an amount of data off of the first queue that is equal to the difference between the next acknowledgement number and the push-sequence value for the first queue,if the next acknowledgement number is not determined to exist on the second queue, push, to the output, the first data packet on the first queue, andprovide the output to an application layer, andwhen at least one of the push-sequence values is not equal to the starting sequence number of the first data packet on its respective queue and a forcing condition is met, generate at least one gap packet for at least one of the two queues.

View all claims
  • 5 Assignments
Timeline View
Assignment View
    ×
    ×