IP Library Granted Patent US 7,554,917
Granted Patent B1
US 7,554,917 · App. 11/018,088 · Granted Jun 30, 2009

TCP retransmission and exception processing in high speed, low memory hardware devices

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 7,554,917
App. No.
11/018,088
Granted
Jun 30, 2009
Kind
B1
Abstract

A method and system for the retransmission of TCP segments in a high speed, low memory TOE device or processor system uses one or more selective context duplication (SCD) TCP/IP connections to provide retransmission assistance to an original TCP/IP connection. SCD connections are used only to retransmit TCP segments on behalf of the system. The original connection and SCD connections are linked together and managed using a TCP state engine in such a way that the original connection receives and processes acknowledgements (ACKs) and selective acknowledgements (SACKs) transmitted back to the system. In many applications, the original connection is able to continue transmitting even while the SCD connection is retransmitting.

Claims (61)

1. In a processor system for managing TCP communications, the processor system managing an original TCP connection with a TCP receiving system, the original TCP connection having transmission, and reception characteristics, a method of retransmission of a TCP segment to the TCP receiving system, comprising:

determining that the TCP segment previously transmitted on the original TCP connection to the TCP receiving system needs to be retransmitted;

establishing a selective context duplicated connection with the TCP receiving system, the selective context duplicated connection distinct from but having similar transmission characteristics as the original TCP connection;

retransmitting the TCP segment to the TCP receiving system using the selective context duplicated connection rather than the original TCP connection; and

maintaining the original TCP connection for on-going transmission of additional TCP segments to the TCP receiving system and for receipt of communications back from the TCP receiving system responsive to the TCP segment retransmitted on the selective context duplicated connection.

2. The method of claim 1 wherein the step of determining is responsive to a timeout condition without receipt of an acknowledgement (ACK) from the TCP receiving system for the TCP segment previously transmitted by the processor system.

3. The method of claim 2 wherein no further TCP segments are transmitted by the processor system until an acknowledgment of the retransmitted TCP segment is received back from the TCP receiving system.

4. The method of claim 2 wherein the selective context duplicated connection is closed as soon as the TCP segment is retransmitted to the TCP receiving system.

5. The method of claim 1 wherein the retransmission is a fast retransmission.

6. The method of claim 1 wherein the original TCP connection is maintained for receipt of an acknowledgement (ACK) back from the TCP receiving system responsive to the TCP segments retransmitted on the original TCP connection.

7. The method of claim 1 wherein the step of determining is responsive to receipt by the processor system of three duplicate acknowledgements (ACKs) from the TCP receiving system.

8. The method of claim 7 wherein the TCP segment that needs to be retransmitted comprises the segment having a left edge sequence number corresponding to the sequence number of the three duplicate ACKs.

9. The method of claim 1 wherein the reception characteristics of the selective context duplicated connection are disabled.

10. The method of claim 1 wherein the reception characteristics of the original TCP connection are not used to define the selective context duplicated connection.

11. The method of claim 1 wherein the selective context duplicated connection does not receive any communications back from the TCP receiving system.

12. The method of claim 1 wherein the original TCP connection and the selective context duplicated connection are linked together by means of a TCP micro engine.

13. The method of claim 1 wherein the step of determining comprises identifying a time out condition associated with the original TCP connection.

14. The method of claim 13 wherein the TCP segment that needs to be retransmitted comprises the segment having a left edge sequence number corresponding to the sequence number of ACK last received from the TCP receiving system.

15. The method of claim 1 further comprising the step of calculating a new RTO timer for the TCP segment that is retransmitted using the selective context duplicated connection and loading the value of the RTO timer to the original TCP connection.

16. The method of claim 1 wherein the on-going transmission of additional TCP segments to the TCP receiving system using the original TCP connection occurs contemporaneously with the step of retransmitting the TCP segment to the TCP receiving system using the selective context duplicated connection.

17. The method of claim 1 wherein the processor system includes a TCP state machine and a TCP micro engine.

18. The method of claim 17 wherein the step of establishing the selective context duplicated connection with the TCP receiving system is performed by the TCP micro engine after receipt of a retransmission assistance request from the TCP state engine.

19. The method of claim 17 wherein the selective context duplicated connection is closed by the TCP micro engine as soon as the TCP segment is retransmitted to the TCP receiving system by the TCP state machine.

20. The method of claim 1 wherein the selective context duplicated connection is closed as soon as the TCP segment is retransmitted to the TCP receiving system.

21. The method of claim 20 wherein, when the selective context duplicated connection is closed, the transmission characteristics of the selective context duplicated connection are reset and the selective context duplicated connection is made available to the processor system for retransmission use with another original TCP connection.

22. The method of claim 1 wherein the sequence number of the last received ACK of the original TCP connection is used to define the left edge sequence number of the TCP segment to be retransmitted.

23. The method of claim 1 further comprising the step of creating a data link list for the selective context duplicated connection with pointers pointing to data that needs to be retransmitted.

24. The method of claim 23 wherein the data that needs to be retransmitted is included in the TCP segment that is retransmitted.

25. The method of claim 1 further comprising, after determining that the TCP segment needs to be retransmitted, calculating a congestion window size for the original TCP connection.

26. The method of claim 25 wherein the selective context duplicated connection is unaffected by the congestion window size of the original TCP connection.

27. In a processor system for managing TCP communications, the processor system in electronic communication with a plurality of TCP receiving systems, a method of retransmission of a TCP segment to a designated one of the TCP receiving systems, comprising the steps of:

managing a plurality of original TCP connections with the plurality of TCP receiving systems, each original TCP connection having respective socket, transmission, and reception characteristics;

determining that the TCP segment previously transmitted to the designated one TCP receiving system on the original TCP connection with the designated one TCP receiving system needs to be retransmitted;

establishing a selective context duplicated connection with the designated one TCP receiving system, the selective context duplicated connection distinct from but having similar transmission characteristics as the original TCP connection with the designated one TCP receiving system;

retransmitting the TCP segment to the receiving TCP system using the selective context duplicated connection rather than the original TCP connection with the designated one TCP receiving system; and

maintaining the original TCP connection with the designated one TCP receiving system for on-going transmission of additional TCP segments to the designated one receiving TCP system and for receipt of communications back from the designated one receiving TCP system responsive to the TCP segment retransmitted on the selective context duplicated connection.

28. The method of claim 27 wherein the step of determining is responsive to a timeout condition without receipt of an acknowledgement (ACK) from the designated one of the TCP receiving systems for the TCP segment previously transmitted by the processor system.

29. The method of claim 28 wherein no further TCP segments are transmitted to the designated one of the TCP receiving systems by the processor system until an acknowledgment of the retransmitted TCP segment is received back from the designated one of the TCP receiving systems.

30. The method of claim 28 wherein the selective context duplicated connection is closed as soon as the TCP segment is retransmitted to the designated one of the TCP receiving systems.

31. The method of claim 27 wherein the retransmission is a fast retransmission.

32. The method of claim 27 wherein the original TCP connection with the designated one TCP receiving system is maintained for receipt of an acknowledgment (ACK) back from the designated one TCP receiving system responsive to the TCP segment retransmitted on the original TCP connection.

33. The method of claim 27 wherein the step of determining is responsive to receipt by the processor system of three duplicate acknowledgements (ACKs) from the designated one TCP receiving system.

34. The method of claim 33 wherein the TCP segment that needs to be retransmitted comprises the segment having a left edge sequence number corresponding to the sequence number of the three duplicate ACKs.

35. The method of claim 27 wherein the reception characteristics of the selective context duplicated connection are disabled.

36. The method of claim 27 wherein the reception characteristics of the selective context duplicated connection are not used to define the selective context duplicated connection.

37. The method of claim 27 wherein the selective context duplicated connection does not receive any communications back from the designated one TCP receiving system.

38. The method of claim 27 wherein the original TCP connection with the designated one TCP receiving system and the selective context duplicated connection are linked together by means of a TCP micro engine.

39. The method of claim 27 wherein the step of determining comprises identifying a time out condition associated with the original TCP connection with the designated one TCP receiving system.

40. The method of claim 39 wherein the TCP segment that needs to be retransmitted comprises the segment having a left edge sequence number corresponding to the sequence number of ACK last received from the designated one TCP receiving system.

41. The method of claim 27 further comprising the step of calculating a new RTO timer for the TCP segment that is retransmitted by the selective context duplicated connection and loading the value of the RTO timer to the original TCP connection with the designated one TCP receiving system.

42. The method of claim 27 wherein the on-going transmission of additional TCP segments to the designated one TCP receiving system using the original TCP connection with the designated one TCP receiving system occurs contemporaneously with the step of retransmitting the TCP segment to the designed one TCP receiving system using the selective context duplicated connection.

43. The method of claim 27 wherein the processor system includes a TCP state machine and a TCP micro engine.

44. The method of claim 43 wherein the step of establishing the selective context duplicated connection with the designed one TCP receiving system is performed by the TCP micro engine after receipt of a retransmission assistance request from the TCP state engine.

45. The method of claim 43 wherein the selective context duplicated connection is closed by the TCP micro engine as soon as the TCP segment is retransmitted to the designated one TCP receiving system by the TCP state machine.

46. The method of claim 27 wherein the selective context duplicated connection is closed as soon as the TCP segment is retransmitted to the designated one TCP receiving system.

47. The method of claim 46 wherein, when the selective context duplicated connection is closed, the socket and transmission characteristics of the selective context duplicated connection are reset and the selective context duplicated connection is made available to the processor system for retransmission use with another original TCP connection.

48. The method of claim 27 wherein the sequence number of the last received ACK of the original TCP connection with the designated one TCP receiving system is used to define the left edge sequence number of the TCP segment to be retransmitted.

49. The method of claim 27 further comprising the step of creating a data link list for the selective context duplicated connection with pointers pointing to data that needs to be retransmitted.

50. The method of claim 49 wherein the data that needs to be retransmitted is included in the TCP segment that is retransmitted.

51. The method of claim 27 further comprising, after determining that the TCP segment needs to be retransmitted, calculating a congestion window size for the original TCP connection with the designated one TCP receiving system.

52. The method of claim 51 wherein the selective context duplicated connection is unaffected by the congestion window size of the original TCP connection with the designated one TCP receiving system.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 9, 2025
From: INTELLECTUAL VENTURES ASSETS 198 LLC
To: DATASPHERE, LLC
Reel/Frame 071248/0632 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2025
From: XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY
To: INTELLECTUAL VENTURES ASSETS 198 LLC
Reel/Frame 070664/0990 →
MERGER Recorded Nov 8, 2015
From: PARSED CAPITAL CO., L.L.C.
To: XENOGENIC DEVELOPMENT LIMITED LIABILITY COMPANY
Reel/Frame 036985/0026 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2012
From: NTH IP CORPORATION
To: NTHIP INC.
Reel/Frame 028553/0059 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 9, 2012
From: NTHIP INC.
To: PARSED CAPITAL CO., L.L.C.
Reel/Frame 028515/0461 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2008
From: IVIVITY, INC.
To: NTH IP CORPORATION
Reel/Frame 021202/0065 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2005
From: TIEU, FRANCIS
To: IVIVITY, INC.
Reel/Frame 015554/0953 →