P
US8064459B2ExpiredUtilityPatentIndex 50

Method and system for transparent TCP offload with transmit and receive coupling

Assignee: ALONI ELIEZERPriority: Jul 18, 2005Filed: Jul 18, 2006Granted: Nov 22, 2011
Est. expiryJul 18, 2025(expired)· nominal 20-yr term from priority
Inventors:ALONI ELIEZERSHALOM RAFIMIZRACHI SHAYHIRSHFELD DOVGREENBERG AVIVGRUNFELD ASSAFTAMIR ELIEZERCOREM GUYHANEGBI ORI
H04L 49/90H04L 69/166H04L 49/9063H04L 47/27H04L 47/41H04L 47/2441H04L 69/161H04L 69/16Y02D30/50H04L 47/193H04L 49/9094Y02D10/00G06F 13/128H04L 69/12H04L 69/163H04L 47/36
50
PatentIndex Score
0
Cited by
14
References
22
Claims

Abstract

Certain aspects of a method and system for transparent transmission control protocol (TCP) offload with transmit and receive coupling are disclosed. Aspects of a method may include collecting at least one received TCP segment for a determined network flow via a network interface card (NIC) processor. The state information for the received TCP segment and state information for transmitted TCP segments for the determined network flow may be stored at the NIC without transferring state information for the received TCP segment and the state information for the transmitted TCP segments to a host system communicatively coupled to the NIC. A new TCP segment comprising the collected TCP segments may be generated after a termination event occurs. The generated new TCP segment, new state information for the generated new TCP segment, and the state information for the transmitted TCP segments may be communicated to the host system for TCP offload.

Claims

exact text as granted — not AI-modified
1. A method for processing network information, the method comprising:
 collecting at least one received Transport Control Protocol (TCP) segment for a determined network flow by a network interface card (NIC); 
 storing at said NIC, state information for said received TCP segment and state information for transmitted TCP segments for said determined network flow without transferring state information for said received TCP segment and said state information for said transmitted TCP segments to a host system communicatively coupled to said NIC; 
 generating a new TCP segment comprising said collected at least one received TCP segment after a termination event occurs; and 
 communicating said generated new TCP segment, new state information for said new TCP segment, and said state information for said transmitted TCP segments to said host system for TCP offload. 
 
     
     
       2. The method according to  claim 1 , comprising generating said new TCP segment by aggregating a plurality of said at least one received TCP segment for said determined network flow. 
     
     
       3. The method according to  claim 1 , comprising detecting at least one new received network flow based on detecting a set synchronous (SYN) flag in said at least one received TCP segment. 
     
     
       4. The method according to  claim 1 , wherein said generated new TCP segment comprises a same timestamp option as a first of said at least one received TCP segment. 
     
     
       5. The method according to  claim 4 , wherein a length of a generated TCP header for said generated new TCP segment is a sum of lengths of said collected at least one TCP segment. 
     
     
       6. The method according to  claim 5 , wherein a sequence number of said generated TCP header for said generated new TCP segment is same as a sequence number of first of said at least one received TCP segment. 
     
     
       7. The method according to  claim 1 , wherein said termination event occurs when at least one of the following occurs:
 a TCP/Internet Protocol (TCP/IP) frame associated with said determined network flow comprises a TCP flag with one or more of: a push (PSH) bit, a finish (FIN) bit, and/or a reset (RST) bit; 
 a TCP/IP frame associated with said determined network flow comprises a TCP payload length that is equal to or greater than a maximum IP datagram size; 
 a timer associated with said collecting of said at least one TCP segment expires; 
 a new entry in a flow lookup table (FLT) is generated when said FLT is full; 
 a first IP fragment associated with said determined network flow is received; 
 a transmit window is modified; 
 a change in a number of TCP acknowledgments (ACKS) is greater than or equal to an ACK threshold; 
 a TCP/IP frame associated with said determined network flow comprises a selective TCP acknowledgment (SACK); and/or 
 a TCP/IP frame associated with said determined network flow comprises a number of duplicated TCP acknowledgments that is equal to or greater than a duplicated ACK threshold. 
 
     
     
       8. The method according to  claim 1 , comprising classifying a state of said determined network flow as one of: an in order state, an out of order state, or an unknown state. 
     
     
       9. The method according to  claim 8 , comprising if a sequence number of at least one acknowledgement (ACK) packet is greater than an isle length of said collected at least one TCP segment, modifying said classified state of said determined network flow from said out of order state to said in order state. 
     
     
       10. The method according to  claim 1 , comprising initializing a state of said determined network flow to be an unknown state. 
     
     
       11. The method according to  claim 10 , comprising updating said initialized state based on said collected at least one TCP segment. 
     
     
       12. A system for processing network information, the system comprising:
 one or more circuits in a network interface card (NIC) that is operable to collect at least one received Transport Control Protocol (TCP) segment for a determined network flow; 
 said one or more circuits are operable to store state information for said received TCP segment and state information for transmitted TCP segments for said determined network flow without transferring state information for said received TCP segment and said state information for said transmitted TCP segments to a host system communicatively coupled to said NIC; 
 said one or more circuits are operable to generate a new TCP segment comprising said collected at least one received TCP segment after a termination event occurs; and 
 said one or more circuits are operable to communicate said generated new TCP segment, new state information for said new TCP segment, and said state information for said transmitted TCP segments to said host system for TCP offload. 
 
     
     
       13. The system according to  claim 12 , wherein said one or more circuits are operable to generate said new TCP segment by aggregating a plurality of said at least one received TCP segment for said determined network flow. 
     
     
       14. The system according to  claim 12 , wherein said one or more circuits are operable to detect at least one new received network flow based on detecting a set synchronous (SYN) flag in said at least one received TCP segment. 
     
     
       15. The system according to  claim 12 , wherein said generated new TCP segment comprises a same timestamp option as a first of said at least one received TCP segment. 
     
     
       16. The system according to  claim 15 , wherein a length of said generated TCP header for said generated new TCP segment is a sum of lengths of said collected at least one TCP segment. 
     
     
       17. The system according to  claim 16 , wherein a sequence number of said generated TCP header for said generated new TCP segment is same as a sequence number of first of said at least one received TCP segment. 
     
     
       18. The system according to  claim 12 , wherein said termination event occurs when at least one of the following occurs:
 a TCP/Internet Protocol (TCP/IP) frame associated with said determined network flow comprises a TCP flag with one or more of: a push (PSH) bit, a finish (FIN) bit, and a reset (RST) bit; 
 a TCP/IP frame associated with said determined network flow comprises a TCP payload length that is equal to or greater than a maximum IP datagram size; 
 a timer associated with said collecting of said at least one TCP segment expires; 
 a new entry in a flow lookup table (FLT) is generated when said FLT is full; 
 a first IP fragment associated with said determined network flow is received; 
 a transmit window is modified; 
 a change in a number of TCP acknowledgments (ACKS) is greater than or equal to an ACK threshold; 
 a TCP/IP frame associated with said determined network flow comprises a selective TCP acknowledgment (SACK); and/or 
 a TCP/IP frame associated with said determined network flow comprises a number of duplicated TCP acknowledgments that is equal to or greater than a duplicated ACK threshold. 
 
     
     
       19. The system according to  claim 12 , wherein said one or more circuits are operable to classify a state of said determined network flow as one of: an in order state, an out of order state, or an unknown state. 
     
     
       20. The system according to  claim 19 , wherein said one or more circuits are operable to modify said classified state of said determined network flow from said out of order state to said in order state, if a sequence number of at least one acknowledgement (ACK) packet is greater than an isle length of said collected at least one TCP segment. 
     
     
       21. The system according to  claim 12 , wherein said one or more circuits are operable to initialize a state of said determined network flow to be an unknown state. 
     
     
       22. The system according to  claim 21 , wherein said one or more circuits are operable to update said initialized state based on said collected at least one TCP segment.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.