Method and system for transport protocol reconstruction and timer synchronization for non-intrusive capturing and analysis of packets on a high-speed distributed network
First Claim
1. A method for reconstructing a transport protocol data flow from data packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, a first part of the data packets captured by a first packet capturing device on the first channel and time stamped by a first timer and a second part of the data packets captured by a second packet capturing device on the second channel and time stamped by a second timer, the method comprising:
- selecting a data packet for evaluation captured by the first packet capturing device in the first direction;
determining whether there is a missing data packet in the second direction; and
responsive to determining that there is a missing data packet in the second direction, storing the data packet for evaluation in a first list; and
creating an acknowledgement timer associated with the data packet stored in the first list, the acknowledgment timer indicating a maximum time to wait until treating the missing data packet as lost.
5 Assignments
0 Petitions
Accused Products
Abstract
A transport protocol data flow reconstruction method delays determination that a missing packet is lost for a period of time. For an evaluated TCP packet in a first direction, the method determines if a TCP packet is missing in a second direction, in which case the method stores the evaluated TCP packet in a list and creates an acknowledgement timer indicating a maximum time to wait until treating the missing TCP packet as lost. Expiration of the acknowledgment timer indicates a missing packet in the second direction. The method determines if a TCP packet is missing in the first direction, in which case the method stores the evaluated TCP packet in the list and creates a retransmission timer indicating a maximum time to wait until treating the missing TCP packet as lost. Expiration of the retransmission timer indicates a missing packet in the first direction.
-
Citations
40 Claims
-
1. A method for reconstructing a transport protocol data flow from data packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, a first part of the data packets captured by a first packet capturing device on the first channel and time stamped by a first timer and a second part of the data packets captured by a second packet capturing device on the second channel and time stamped by a second timer, the method comprising:
-
selecting a data packet for evaluation captured by the first packet capturing device in the first direction;
determining whether there is a missing data packet in the second direction; and
responsive to determining that there is a missing data packet in the second direction, storing the data packet for evaluation in a first list; and
creating an acknowledgement timer associated with the data packet stored in the first list, the acknowledgment timer indicating a maximum time to wait until treating the missing data packet as lost. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for estimating the actual discrepancy (ddT) between a first timer and a second timer used in a TCP (Transmission Control Protocol) packet reconstruction system for capturing and analyzing TCP packets, the TCP packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, a first part of the TCP packets captured by a first packet capturing device on the first channel and time stamped by the first timer and a second part of the TCP packets captured by a second packet capturing device on the second channel and time stamped by the second timer, a minimum ddT (min_ddT) initialized as −
- dT and a maximum ddT (max_ddT) initialized as dT, dT being a maximum estimated time discrepancy between the first and second timers, the method comprising recursively performing;
selecting a TCP packet from the first part of the TCP packets;
extracting a timestamp (T), a sequential number (Seq), and an acknowledgement number (Ack) from the selected TCP packet, the timestamp (T) being the timestamp imposed by the first timer on the selected packet, the sequential number (Seq) indicating a sequential number of a first data in the selected packet, and Ack indicating a sequential number of a last successfully received continuous data in the selected packet;
setting ALastTime as T, ALastSeq as Seq, and ALastAck as Ack, ALastTime indicating a timestamp of a last seen packet in the first direction, ALastSeq being a sequential number of the last seen packet in the first direction, and ALastAck being an acknowledgement number of the last seen packet in the first direction;
determining whether Seq is not more than BLastAck, BLastAck being an acknowledgement number of a last seen packet in the second direction;
responsive to determining that Seq is not more than BLastAck, modifying max_ddT as;
max_ddT=min (max_ddT, BLastTime−
T+2d);
determining whether Ack is not less than BLastSeq, BLastSeq being a sequential number of a last seen packet in the second direction; and
responsive to determining that Ack is not less than BLastAck, modifying min_ddT as;
min_ddT=max (min_ddT, BLastTime−
T−
2d).
- dT and a maximum ddT (max_ddT) initialized as dT, dT being a maximum estimated time discrepancy between the first and second timers, the method comprising recursively performing;
-
16. The method of 15, further comprising:
generating a modified discrepancy d_ddT between the first timer and the second timer by setting d_ddT as;
d_ddT=(max_ddT−
min_ddT)/2.
-
17. The method of 15, further comprising:
generating a timer correction value c_ddT for the second timer by setting c_ddT as;
c_ddt=(max_ddT+min_ddt)/2.
-
18. A computer program product stored on a computer readable medium and adapted to perform a method for reconstructing a transport protocol data flow from data packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, a first part of the data packets captured by a first packet capturing device on the first channel and time stamped by a first timer and a second part of the data packets captured by a second packet capturing device on the second channel and time stamped by a second timer, the method comprising:
-
selecting a data packet for evaluation captured by the first packet capturing device in the first direction;
determining whether there is a missing data packet in the second direction; and
responsive to determining that there is a missing data packet in the second direction, storing the data packet for evaluation in a first list, and creating an acknowledgement timer associated with the data packet stored in the first list, the acknowledgment timer indicating a maximum time to wait until identifying the missing data packet as lost. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer program product recorded on a computer readable medium and adapted to perform a method for estimating the actual discrepancy ddT between a first timer and a second timer used in a TCP (Transmission Control Protocol) packet reconstruction system for capturing and analyzing TCP packets, the TCP packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in ad second direction on a second channel, a first part of the TCP packets captured by a first packet capturing device on the first channel and time stamped by the first timer and a second part of the TCP packets captured by a second packet capturing device on the second channel and time stamped by the second timer, a minimum ddT (min_ddT ) initialized as −
- dT and a maximum ddT (max_ddT) initialized as dT, dT being a maximum estimated time discrepancy between the first and second timers, the method comprising recursively performing;
selecting a TCP packet from the first part of the TCP packets;
extracting a timestamp (T), a sequential number (Seq), and an acknowledgement number (Ack) from the selected TCP packet, the timestamp (T) being a timestamp imposed by the first timer on the selected packet, the sequential number (Seq) indicating a sequential number of a first data in the selected packet, and Ack indicating a sequential number of a last successfully received continuous data in the selected packet;
setting ALastTime as T, ALastSeq as Seq, and ALastAck as Ack, ALastTime being a timestamp of a last seen packet in the first direction, ALastSeq being a sequential number of the last seen packet in the first direction, and ALastAck being an acknowledgement number of the last seen packet in the first direction;
determining whether Seq is not more than BLastAck, BLastAck being an acknowledgement number of a last seen packet in the second direction;
responsive to determining that Seq is not more than BLastAck, modifying max_ddT as;
max_ddT=min (max_ddT, BLastTime−
T+2d);
determining whether Ack is not less than BLastSeq, BLastSeq being a sequential number of a last seen packet in the second direction; and
responsive to determining that Ack is not less than BLastAck, modifying min_ddT as;
min_ddT=max (min_ddT, BLastTime−
T−
2d).
- dT and a maximum ddT (max_ddT) initialized as dT, dT being a maximum estimated time discrepancy between the first and second timers, the method comprising recursively performing;
-
28. The computer program product of 27, further comprising:
-
generating a modified discrepancy (d ddT) between the first timer and the second timer by setting d-ddT as;
d—
ddT=(max—
ddT−
min—
ddT)/2.
-
-
29. The computer program product of 27, further comprising:
generating a timer correction value (c~ddT) for the second timer by setting c_ddT as;
c_ddT=(max_ddT+min_ddT)/2.
-
30. A system for reconstructing a transport protocol data flow from data packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, the system coupled to a first packet capturing device for capturing a first part of the data packets on the first channel and to a second packet capturing device for capturing a second part of the data packets on the second channel, the first packet capturing device including a first timer for timestamping the first part of the data packets and the second packet capturing device including a second timer for timestamping the second part of the data packets, the system comprising:
-
a network interface card coupled to the first and second packet capturing devices for receiving the first and second parts of the data packets; and
a processor adapted to perform;
selecting a data packet for evaluation captured by the first packet capturing device in the first direction;
determining whether there is a missing data packet in the second direction; and
responsive to determining that there is a missing data packet in the second direction, storing the data packet for evaluation in a first list, and creating an acknowledgement timer associated with the data packet stored in the first list, the acknowledgment timer indicating a maximum time to wait until identifying the missing data packet as lost. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38)
-
-
39. A system for reconstructing data packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, a first part of the data packets captured by a first packet capturing device on the first channel and time stamped by a first timer and a second part of the data packets captured by a second packet capturing device on the second channel and time stamped by a second timer, the system comprising:
-
network interface module coupled to the first and second packet capturing devices for receiving the captured data packets;
data packet reordering module coupled to the network interface module and reordering the captured data packets according to their timestamps imposed by the first and second timers; and
an acknowledgment timer coupled to the data packet reordering module and indicating the maximum time that the data packet reordering module will wait for a missing packet in the second direction in the captured data packets until the data packet reordering module identifies the missing packet as lost.
-
-
40. A system for reconstructing data packets transmitted from a first device to a second device in a first direction on a first channel and from the second device to the first device in a second direction on a second channel, a first part of the data packets captured by a first packet capturing device on the first channel and time stamped by a first timer and a second part of the data packets captured by a second packet capturing device on the second channel and time stamped by a second timer, the system comprising:
-
a network interface module coupled to the first and second packet capturing devices for receiving the captured data packets;
a data packet reordering module coupled to the network interface module and reordering the captured data packets according to their timestamps imposed by the first and second timers; and
a retransmission timer coupled to the data packet reordering module and indicating the maximum time that the data packet reordering module will wait for a missing packet in the first direction in the captured data packets until the data packet reordering module identifies the missing packet as lost.
-
Specification