IP Library Granted Patent US 6,981,014
Granted Patent B2
US 6,981,014 · App. 10/233,302 · Granted Dec 27, 2005

Systems and methods for high speed data transmission using TCP/IP

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 6,981,014
App. No.
10/233,302
Granted
Dec 27, 2005
Kind
B2
Abstract

A method for exchanging data in a first host computer coupled to a network. The network is also coupled to a second host computer. The method includes employing a first Transmit Control Block (Tx TCB) to facilitate transmitting first data associated with a bi-directional data flow from the first host computer to the second host computer. The first data is transmitted using the TCP protocol. The first Tx TCB is associated with the first host computer and is configured for storing transmit-facilitating parameters associated with the transmitting the first data using the TCP protocol. The method also includes employing a first Receive Control Block (Rx TCB) to facilitate receiving second data associated with the bi-directional data flow. The second data is transmitted from the second host computer to the first host computer using the TCP protocol. The first Rx TCB is associated with the first host computer and is configured for storing receive-facilitating parameters associated with the receiving the second data using the TCP protocol. In accordance with this embodiment of the invention, the first Tx TCB and the first Rx TCB are employed to simultaneously service a transmit request pertaining the first data and a receive request pertaining the second data.

Claims (31)

1. Circuitries for facilitating data exchange via a network, said circuitries being associated with a first host computer coupled to said network, said network also being coupled to a second host computer, said circuitries comprising:

means for facilitating transmitting first data associated with a bi-directional data flow from said first host computer to said second host computer, said first data being transmitted using the TCP protocol, said means for facilitating transmitting being associated with said first host computer and is configured for storing transmit-facilitating parameters associated with transmitting said first data using said TCP protocol; and

means for facilitating receiving second data associated with said bi-directional data flow, said second data being transmitted from said second host computer to said first host computer using said TCP protocol, said means for facilitating receiving being associated with said first host computer and is configured for storing receive-facilitating parameters associated with receiving said second data using said TCP protocol, wherein said means for facilitating transmitting and said means for facilitating receiving are employed simultaneously to facilitate simultaneous transmitting said first data and receiving said second data by said circuitries.

2. The circuitries of claim 1 wherein said means for facilitating transmitting and said means for facilitating receiving are implemented on a network interface card (NIC card) that is configured to be detachably coupled to a bus of said first host computer.

3. The circuitries of claim 1 further comprising means for ordering out-of-order packets received at said first host computer before a packet having a correct packet number arrive at said first host computer.

4. The circuitries of claim 3 wherein said means for ordering said out-of-order packets employs buffer parameters stored in said means for facilitating receiving.

5. On a network interface card (NIC card) coupled to a first host computer, a method for exchanging data via a network coupled to said first host computer and a second host computer, said method comprising:

transmitting, using transmit-facilitating parameters stored in a first Transmit Control Block (Tx TcB) associated with said NIC card, first data associated with a bi-directional data flow, said first data being transmitted from said first host computer to said second host computer, said first data being transmitted using the TCP protocol; and

receiving, using receive-facilitating parameters stored in a first Receive Control Block (Rx TcB) associated with said NIC card, second data associated with said bi-directional data flow, said second data being transmitted from said second host computer to said first host computer, said second data being transmitted using the TCP protocol, wherein said Tx TcB and said Rx TcB are employed to facilitate simultaneous transmitting said first data and receiving said second data by said NIC card.

6. The method of claim 5 further comprising transmitting, using said first Tx TCB, third data from said first host computer to said second host computer, at least a portion of said third data being obtained from a portion of said second data by circuitries of said NIC card after said second data is received at said NIC card.

7. The method of claim 6 wherein said portion of said third data is obtained from said portion of said second data without requiring said portion of said second data to be processed outside of said NIC card.

8. The method of claim 7 wherein said third data pertains to an acknowledgement acknowledging that said second data has been received at said integrated circuit associated with said first host computer.

9. The method of claim 5 wherein said first data is received at said second host computer using a second Rx TCB, said second Rx TCB being associated with said second host computer and is configured for storing receive-facilitating parameters associated with receiving said first data at said second host computer using said TCP protocol.

10. The method of claim 9 wherein said second data is transmitted from said second host computer using a second Tx TCB, said second Tx TCB being associated with said second host computer and is configured for storing transmit-facilitating parameters associated with transmitting said second data from said second host computer using said TCP protocol.

11. The method of claim 5 wherein said receiving said second data further includes ordering out-of-order packets received at said NIC card before a packet having a correct packet number arrive at said NIC card.

12. The method of claim 11 wherein said ordering said out-of-order packets employs buffer parameters stored in said first Rx TcB.

13. In a first host computer coupled to a network, a method for exchanging data with a second host computer also coupled to said network, said method comprising:

employing a first Transmit Control Block (Tx TCB) to facilitate transmitting first data associated with a bi-directional data flow from said first host computer to said second host computer, said first data being transmitted using the TCP protocol, said first Tx TCB being associated with said first host computer and is configured for storing transmit-facilitating parameters associated with said transmitting said first data using said TCP protocol; and

employing a first Receive Control Block (Rx TCB) to facilitate receiving second data associated with said bi-directional data flow, said second data being transmitted from said second host computer to said first host computer using said TCP protocol, said first Rx TCB being associated with said first host computer and is configured for storing receive-facilitating parameters associated with said receiving said second data using said TCP protocol, wherein said first Tx TCB and said first Rx TCB are employed to simultaneously service a transmit request pertaining said first data and a receive request pertaining said second data.

14. The method of claim 13 wherein said first Tx TCB and said first Rx TCB are implemented in an integrated circuit other than a host processor of said first host computer.

15. The method of claim 13 wherein said first Tx TCB and said first Rx TCB are implemented on a network interface card (NIC card) that is configured to be detachably coupled to a bus of said first host computer.

16. The method of claim 15 wherein said employing said first Tx TCB and said employing said first Rx TCB represent processes offloaded from a host processor of said first host computer.

17. The method of claim 16 further comprising employing said first Tx TCB to transmit third data from said first host computer to said second host computer, a first portion of said third data being obtained from a portion of said second data by circuitries of said integrated circuit after said second data is received, a second portion of said third data being obtained from said transmit-facilitating parameters in said Tx TCB.

18. The method of claim 17 wherein said first portion of said third data is obtained from said portion of said second data without requiring said portion of said second data to be processed outside of said NIC card.

19. The method of claim 18 wherein said third data pertains to an acknowledgement acknowledging that said second data has been received at said first host computer.

20. The method of claim 13 wherein said first data is received at said second host computer using a second Rx TCB, said second Rx TCB being associated with said second host computer and is configured for storing receive-facilitating parameters associated with receiving said first data at said second host computer using said TCP protocol.

21. The method of claim 20 wherein said second data is transmitted from said second host computer using a second Tx TCB, said second Tx TCB being associated with said second host computer and is configured for storing transmit-facilitating parameters associated with transmitting said second data from said second host computer using said TCP protocol.

22. The method of claim 13 further comprising employing a set of Tx TCBs to facilitate transmitting data associated with a set of bi-directional data flows between said first host computer and a set of other host computers, said set of Tx TCBs being associated with said first host computer, each of said set of Tx TCBs being configured to store transmit-facilitating parameters to facilitate transmitting data with a respective one of said set of other host computers, said set of other host computers being coupled to said network.

23. The method of claim 22 further comprising employing a set of Rx TCBs to facilitate receiving data associated with said set of bi-directional data flows, said set of Rx TCBs being associated with said first host computer, each of said set of Rx TCBs being configured to store receive-facilitating parameters to facilitate receiving data from said respective one of said set of other host computers, wherein a process for servicing a transmit request associated with one of said set of bi-directional data flows and occurs simultaneously with a process for servicing a receive request associated with said one of said set of bi-directional data flows.

24. The method of claim 13 wherein said employing a first Rx Transmit Control Block (Rx TCB) to facilitate receiving said second data includes ordering out-of-order packets received at said first host computer before a packet having a correct packet number arrive at said first host computer.

25. The method of claim 24 wherein said ordering said out-of-order packets employs buffer parameters stored in said first Rx TCB.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →