IP Library Granted Patent US 9,288,287
Granted Patent B2
US 9,288,287 · App. 14/483,633 · Granted Mar 15, 2016

Accelerated sockets

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,288,287
App. No.
14/483,633
Granted
Mar 15, 2016
Kind
B2
Abstract

Disclosed herein is an improved method of using sockets in connection with TCP over certain local networks, such as the enhanced Ethernet. In particular, an accelerated socket protocol is provided to enhance data communications between different host computer systems connected to an enhanced Ethernet network. Under the accelerated socket protocol, a host computer, while sending a number of data packets, is able to indicate a particular data packet is a last ready data packet out of all packets ready to be sent by setting a PUSH bit in that particular data packet, which triggers an automatic acknowledgement message that confirms receipt of data from the receiver. In addition, while receiving data packets, the host computer can advertise an effective window that corresponds to the actually available receiving space in the host computer.

Claims (45)

1. A method for data communications between computers connected to a computer network, the method comprising:

transmitting a plurality of data packets from a first computer to a second computer over the computer network;

setting a bit in one data packet amongst the plurality of data packets to indicate the one data packet is a last packet before a break;

receiving an acknowledgement message from the second computer that confirms receipt of the one data packet with the bit set therein at the second computer; and

receiving an advertisement from the second computer concurrently with the acknowledgement message, the advertisement being in response to the one data packet and the advertisement indicating available storage space in the second computer.

2. The method of claim 1 , wherein the available storage space does include one or more unused buffers.

3. The method of claim 1 , wherein the bit set in the one data packet is a PUSH bit.

4. The method of claim 1 , wherein the first computer comprises a network interface controller (NIC) capable of establishing a network connection with the second computer and posting transmit buffers on the network connection, wherein the NIC is configured for sending data from the transmit buffers to the second computer and returning the transmit buffers to the first computer upon completion of sending all data therein.

5. The method of claim 1 , wherein the second computer comprises a network interface controller (NIC) capable of establishing a network connection with the first computer and posting receive buffers on the network connection, wherein the NIC is configured for receiving data from the first computer into the receive buffers and returning filled receive buffers to the second computer.

6. The method of claim 5 , wherein the NIC of the second computer is further configured for returning a partially-filled receive buffer upon receiving the last data packet with the bit set therein.

7. The method of claim 1 , wherein the computer network is an Enhanced Ethernet.

8. The method of claim 1 , wherein the computer network is a Storage Area Network (SAN).

9. A method for data communications between computers connected to a computer network, the method comprising:

receiving a plurality of data packets that were sent by a first computer to a second computer over the computer network;

detecting a bit in one data packet amongst the plurality of data packets that indicates the one data packet is a last packet before a break;

sending an acknowledgement message from the second computer that confirms receipt of the one data packet with the bit set therein at the second computer; and

sending an advertisement from the second computer concurrently with the acknowledgement message, the advertisement being in response to the one data packet and the advertisement indicating available storage space in the second computer.

10. The method of claim 9 , wherein the available storage space includes unused buffers.

11. The method of claim 9 , wherein the bit set in the one data packet is a PUSH bit.

12. The method of claim 9 , wherein the first computer comprises a network interface controller (NIC) capable of establishing a network connection with the second computer and posting transmit buffers on the network connection, wherein the NIC is configured for sending data from the transmit buffers to the second computer and returning the transmit buffers to the first computer upon completion of sending all data therein.

13. The method of claim 9 , wherein the second computer comprises a network interface controller (NIC) capable of establishing a network connection with the first computer and posting receive buffers on the network connection, wherein the NIC is configured for receiving data from the first computer into the receive buffers and returning filled receive buffers to the second computer.

14. The method of claim 9 , wherein the NIC of the second computer is further configured for returning a partially-filled receive buffer upon receiving the last data packet with the bit set therein.

15. The method of claim 9 , wherein the computer network is an Enhanced Ethernet.

16. The method of claim 9 , wherein the computer network is a Storage Area Network (SAN).

17. A network interface controller (NIC) operable to establish a network connection between computers connected to a computer network, the NIC comprising:

a transmitter circuit configured to transmit a plurality of data packets from a first computer to a second computer over the computer network; and

a processor configured to set a bit in one data packet amongst the plurality of data packets to indicate the one data packet is a last packet before a break;

the processor configured to detect an acknowledgement message that confirms receipt of the one data packet with the bit set therein; and

the processor configured to detect an advertisement that was sent concurrently with the acknowledgement message, the advertisement being in response to the one data packet and the advertisement indicating available storage at the second computer.

18. The NIC of claim 17 , wherein the available storage space does not includes unused buffers.

19. The NIC of claim 17 , wherein the bit set in the one data packet is a PUSH bit.

20. The NIC of claim 17 , wherein the NIC is coupled to the first computer.

21. The NIC of claim 17 , wherein the processor is configured to post transmit buffers on the network connection.

22. The NIC of claim 17 , wherein the computer network is an Enhanced Ethernet.

23. The NIC of claim 17 , wherein the computer network is a Storage Area Network (SAN).

24. A network interface controller (NIC) operable to establish a network connection between computers connected to a computer network, the NIC comprising:

a receiver circuit configured to receive a plurality of data packets that were sent by a first computer to a second computer over the computer network; and

a processor configured to detect a bit in one data packet amongst the plurality of data packets that indicates the one data packet is a last packet before a break;

the processor configured to send an acknowledgement message that confirms receipt of the one data packet with the bit set therein; and

the processor configured to send an advertisement concurrently with the acknowledgement message, the advertisement being in response to the one data packet and the advertisement indicating available storage.

25. The NIC of claim 24 , wherein the available storage space does not includes unused buffers.

26. The NIC of claim 24 , wherein the bit detected in the one data packet is a PUSH bit.

27. The NIC of claim 24 , wherein the NIC is coupled to the second computer.

28. The NIC of claim 24 , wherein the computer network is an Enhanced Ethernet.

29. The NIC of claim 24 , wherein the computer network is a Storage Area Network (SAN).

Assignments (5)
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 →