IP Library Granted Patent US 9,203,728
Granted Patent B2
US 9,203,728 · App. 13/044,329 · Granted Dec 1, 2015

Metadata capture for testing TCP connections

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,203,728
App. No.
13/044,329
Granted
Dec 1, 2015
Kind
B2
Abstract

Methods, port units, and computer readable storage media for testing network connections are disclosed. A plurality of Transmission Control Protocol (TCP) connections with one or remote devices may be established via a network. Metadata may be extracted from TCP packets transmitted via the plurality of TCP connections and TCP packets received via the plurality of TCP connections. The extracted metadata may be stored in a memory.

Claims (85)

1. A method performed by a test system to test network connections, comprising:

establishing a plurality of Transmission Control Protocol (TCP) connections with one or more remote devices via a network

storing TCP connection data indicating the state of each of the plurality of TCP connections in a TCP connection memory

extracting metadata from TCP packets generated and transmitted by the test system via the plurality of TCP connections and TCP packets received by the test system via the plurality of TCP connections

storing the metadata extracted from every one of the N most recent packets transmitted by the test system or received by the test system via every one of the plurality of TCP connections in a capture memory separate from the TCP connection memory, where N is an integer greater than two.

2. The method of claim 1 , wherein

the metadata includes a sequence number and an acknowledgement number extracted from a TCP header of each transmitted packet and each received packet.

3. The method of claim 2 , wherein

the metadata further includes at least one of TCP flags, a window size, and a length extracted from the TCP header of each transmitted packet and each received packet.

4. The method of claim 2 , wherein

the metadata further includes a timestamp extracted from a payload of each transmitted packet and each received packet.

5. The method of claim 1 , wherein each TCP connection is defined by a unique combination of an Internet Protocol (IP) source address, an IP destination address, a TCP source port number, and a TCP destination port number, the method further comprising:

determining a connection identifier associated with each transmitted TCP packet and each received TCP packet, the connection identifier equal to a hash of an IP source address, an IP destination address, a TCP source port number, and a TCP destination port number contained within the header of each packet.

6. The method of claim 5 , wherein

the capture memory includes a plurality of revolving buffers, each revolving buffer associated with a corresponding one of the plurality of TCP connections, and

storing the extracted metadata comprises storing the extracted metadata for each TCP connection in the corresponding revolving buffer.

7. The method of claim 6 , wherein N is a power of two equal to or greater than sixteen.

8. The method of claim 6 , wherein storing the extracted metadata further comprises:

using the connection identifier associated with each received TCP packet and each transmitted TCP packet as a pointer to the corresponding revolving buffer within the capture memory.

9. The method of claim 6 , wherein storing the extracted metadata further comprises:

using the connection identifier associated with each received TCP packet and each transmitted TCP packet to retrieve a pointer to the corresponding revolving buffer within the capture memory.

10. The method of claim 5 , wherein

storing the extracted metadata comprises storing the extracted metadata in a single continuous list, and

the metadata stored for each received TCP packet and each transmitted TCP packet includes the associated connection identifier.

11. The method of claim 9 , wherein the selected TCP connection is selected based on one of: a request received from the test administrator computing device, a time-out of the selected TCP connection, and a number of retransmissions on the selected TCP connection exceeding a predetermined threshold.

12. The method of claim 1 , further comprising:

transmitting the stored metadata for a selected TCP connection from the plurality of TCP connections to a test administrator computing device.

13. A port unit to test network connections, comprising:

a network interface unit to transmit TCP packets and receive TCP packets via a network

a processor coupled to the network interface unit

a TCP connection memory coupled to the processor

a capture memory coupled to the processor

a program memory coupled to the processor and the network interface unit, the program memory storing data and program instructions including instructions that, when executed by the processor, cause the port unit to perform actions comprising:

establishing a plurality of Transmission Control Protocol (TCP) connections with one or remote devices via the network

storing TCP connection data indicating the state of each of the TCP connections in the TCP connection memory

extracting metadata from TCP packets generated and transmitted by the port unit via the plurality of TCP connections and TCP packets received by the port unit via the plurality of TCP connections

storing the metadata extracted from every one of the N most recent packets transmitted by the port unit or received by the port unit via every one of the plurality of TCP connections in the capture memory, where N is an integer greater than two.

14. The port unit of claim 13 , wherein

the metadata includes a sequence number and an acknowledgement number extracted from a TCP header of each transmitted packet and each received packet.

15. The port unit of claim 14 , wherein

the metadata further includes at least one of TCP flags, a window size, and a length extracted from the TCP header of each transmitted packet and each received packet.

16. The port unit of claim 14 , wherein

the metadata further includes a timestamp extracted from a payload of each transmitted packet and each received packet.

17. The port unit of claim 13 , wherein each TCP connection is defined by a unique combination of an Internet Protocol (IP) source address, an IP destination address, a TCP source port number, and a TCP destination port number, the actions performed further comprising:

determining a connection identifier with each transmitted TCP packet and each received TCP packet, the connection identifier equal to a hash function of an IP source address, an IP destination address, a TCP source port number, and a TCP destination port number contained within the header of each packet.

18. The port unit of claim 17 , wherein

the capture memory includes a plurality of revolving buffers, each revolving buffer associated with a corresponding one of the plurality of TCP connections, and

storing the extracted metadata comprises storing the extracted metadata for each TCP connection in the corresponding revolving buffer.

19. The port unit of claim 18 , wherein N is a power of two equal to or greater than sixteen.

20. The port unit of claim 18 , wherein storing the extracted metadata further comprises:

using the connection identifier associated with each received TCP packet and each transmitted TCP packet as pointer to the corresponding revolving buffer within the capture memory.

21. The port unit of claim 18 , wherein storing the extracted metadata further comprises:

using the connection identifier associated with each received TCP packet and each transmitted TCP packet to retrieve a pointer to the corresponding revolving buffer within the capture memory.

22. The port unit of claim 17 , wherein

storing the extracted metadata comprises storing the extracted metadata in a single continuous list, and

the metadata stored for each received TCP packet and each transmitted TCP packet includes the associated connection identifier.

23. The port unit of claim 13 , the actions performed further comprising:

transmitting the stored metadata for a selected TCP connection from the plurality of TCP connections to a test administrator computing device.

24. The port unit of claim 23 , wherein the selected TCP connection is selected based on one of: a request received from the test administrator computing device, a time-out of the selected TCP connection, and a number of retransmissions on the selected TCP connection exceeding a predetermined threshold.

25. A non-transitory computer-readable storage medium storing instructions that, when executed by the processor of a port unit coupled to a network, cause the port unit to perform actions comprising:

establishing a plurality of Transmission Control Protocol (TCP) connections with one or remote devices via the network

extracting metadata from TCP packets generated and transmitted by the port unit via the plurality of TCP connections and TCP packets received by the port unit via the plurality of TCP connections

storing the metadata extracted from every one of the N most recent packets transmitted by the port unit or received by the port unit via every one of the plurality of TCP connections in a memory, where N is an integer greater than two.

26. The non-transitory computer-readable storage medium of claim 25 , wherein

the metadata includes a sequence number and an acknowledgement number extracted from a TCP header of each transmitted packet and each received packet.

27. The non-transitory computer-readable storage medium of claim 26 , wherein

the metadata further includes at least one of TCP flags, a window size, and a length extracted from the TCP header of each transmitted packet and each received packet.

28. The non-transitory computer-readable storage medium of claim 26 , wherein

the metadata further includes a timestamp extracted from a payload of each transmitted packet and each received packet.

29. The non-transitory computer-readable storage medium of claim 25 , wherein each TCP connection is defined by a unique combination of an Internet Protocol (IP) source address, an IP destination address, a TCP source port number, and a TCP destination port number, the actions performed further comprising:

determining a connection identifier associated with each transmitted TCP packet and each received TCP packet, the connection identifier equal to a hash of an IP source address, an IP destination address, a TCP source port number, and a TCP destination port number contained within the header of each packet.

30. The non-transitory computer-readable storage medium of claim 29 , wherein

the capture memory includes a plurality of revolving buffers, each revolving buffer associated with a corresponding one of the plurality of TCP connections, and

storing the extracted metadata comprises storing the extracted metadata for each TCP connection in the corresponding revolving buffer.

31. The non-transitory computer-readable storage medium of claim 30 , wherein N is a power of two equal to or greater than sixteen.

32. The non-transitory computer-readable storage medium of claim 29 , wherein storing the extracted metadata further comprises:

using the connection identifier associated with each received TCP packet and each transmitted TCP packet as a pointer to the corresponding revolving buffer within the capture memory.

33. The non-transitory computer-readable storage medium of claim 29 , wherein storing the extracted metadata further comprises:

using the connection identifier associated with each received TCP packet and each transmitted TCP packet to retrieve a pointer to the corresponding revolving buffer within the capture memory.

34. The non-transitory computer-readable storage medium of claim 25 , the actions performed further comprising:

transmitting the stored metadata for a selected TCP connection from the plurality of TCP connections to a test administrator computing device.

35. The non-transitory computer-readable storage medium of claim 34 , wherein the selected TCP connection is selected based on one of: a request received from the test administrator computing device, a time-out of the selected TCP connection, and a number of retransmissions on the selected TCP connection exceeding a predetermined threshold.

36. The non-transitory computer-readable storage medium of claim 29 , wherein

storing the extracted metadata comprises storing the extracted metadata in a single continuous list, and

the metadata stored for each received TCP packet and each transmitted TCP packet includes the associated connection identifier.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
To: KEYSIGHT TECHNOLOGIES SINGAPORE (SALES) PTE. LTD.
Reel/Frame 048225/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2017
From: IXIA
To: KEYSIGHT TECHNOLOGIES SINGAPORE (HOLDINGS) PTE. LTD.
Reel/Frame 044222/0695 →
RELEASE OF SECURITY INTEREST Recorded Apr 26, 2017
From: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
To: IXIA
Reel/Frame 042335/0465 →
NOTICE OF SUBSTITUTION OF ADMINISTRATIVE AGENT Recorded Feb 2, 2015
From: BANK OF AMERICA, N.A., RESIGNING ADMINISTRATIVE AGENT
To: SILICON VALLEY BANK, AS SUCCESSOR ADMINISTRATIVE AGENT
Reel/Frame 034870/0598 →
SECURITY AGREEMENT Recorded Jan 25, 2013
From: IXIA
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 029698/0060 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2011
From: PYATKOVSKIY, MAKSIM
To: IXIA
Reel/Frame 025955/0684 →