发明名称 Ordering traffic captured on a data connection
摘要 Ordering partial network traffic. In an embodiment, data packets are received from a network tap and separated into two queues. For each queue, a push-sequence is maintained to represent a sequence number that must be pushed in order to maintain a consecutive order. When both push-sequences are equal to the sequence number of their first packets, if the acknowledgement number of the first packet on one queue is greater than the push-sequence for the other queue and less than or equal to the push-sequence of the one queue, data is pushed off the other queue. Otherwise, a queue having the earlier timestamp is identified as a first queue, the existence of a next acknowledgement number is determined for the second (other) queue, and data is pushed off the first queue according to the existence of the next acknowledgement number. Gap packets may be generated to force progress.
申请公布号 US9525642(B2) 申请公布日期 2016.12.20
申请号 US201414560295 申请日期 2014.12.04
申请人 DB NETWORKS, INC. 发明人 Varsanyi Eric
分类号 H04L12/56;H04L12/823 主分类号 H04L12/56
代理机构 Procopio, Cory, Hargreaves & Savitch LLP 代理人 Procopio, Cory, Hargreaves & Savitch LLP ;Cheng Jonathan D.
主权项 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.
地址 Carlsbad CA US