IP Library Granted Patent US 11,463,547
Granted Patent B2
US 11,463,547 · App. 16/819,327 · Granted Oct 4, 2022

Reliable transport protocol and hardware architecture for datacenter networking

Inventors: Weihuang Wang (Los Gatos, CA); Prashant Chandra (San Jose, CA); Srinivas Vaduvatha (San Jose, CA)
Assignee: Google LLC
H04L67/55H04L1/1832
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 11,463,547
App. No.
16/819,327
Granted
Oct 4, 2022
Kind
B2
Abstract

A communication protocol system is provided for reliable transport of packets. In this regard, an initiator entity may determine that outgoing data is to be transmitted to a target entity. The initiator entity may transmit, to the target entity, a solicited push request requesting the outgoing data to be placed at the target entity. In response to the solicited push request, the initiator entity may receive a push grant from the target entity. In response to the push grant, the initiator entity may transmit to the target entity the outgoing data to be placed at the target entity.

Claims (54)

1. A method, comprising:

determining, by an initiator entity, that outgoing data is to be transmitted to a target entity;

transmitting, by the initiator entity to the target entity, a solicited push request requesting the outgoing data to be placed at the target entity via a reliable transport protocol layer;

receiving, by the initiator entity from the target entity, a push grant in response to the solicited push request; and

transmitting, by the initiator entity to the target entity, the outgoing data to be placed at the target entity in response to the push grant; and

wherein the reliable transport protocol layer consists of a solicitation sublayer and a sliding window sublayer.

2. The method of claim 1 , further comprising:

determining, by the initiator entity, that a size of the outgoing data meets a predetermined threshold, wherein transmitting the solicited push request is based on the determination that the size of the outgoing data meeting the predetermined threshold.

3. The method of claim 2 , wherein the solicited push request is the initial push request between the initiator entity and the target entity, and is generated responsive to the target entity soliciting the outgoing data.

4. The method of claim 1 , further comprising:

determining, by the initiator entity, that a size of the outgoing data does not meet a predetermined threshold; and

transmitting, by the initiator entity, the outgoing data to be placed at the target entity without receiving the push grant when the size of the outgoing data does not meet a predetermined threshold.

5. The method of claim 4 , wherein the solicited push request is the initial push request between the initiator entity and the target entity, and is generated responsive to the target entity soliciting the outgoing data.

6. The method of claim 1 , further comprising:

receiving, by the initiator entity from the target entity, an acknowledgment indicating that the outgoing data is received and placed at the target entity.

7. The method of claim 1 , further comprising:

determining, by the initiator entity, that incoming data is needed from the target entity;

transmitting, by the initiator entity to the target entity, a pull request requesting the incoming data to be transmitted to the initiator entity; and

receiving, by the initiator entity from the target entity, the incoming data in response to the pull request.

8. The method of claim 7 , further comprising: scheduling, by the initiator entity based on one or more congestion parameters, the pull request for incoming data.

9. The method of claim 1 , comprising assigning by the initiator entity a solicited sequence number of the solicited push request.

10. The method of claim 1 , wherein the solicitation sublayer manages end-point admission control and ordered delivery of packets.

11. The method of claim 1 , wherein the sliding window sublayer manages end-to-end reliable delivery and congestion control of packets.

12. The method of claim 1 , wherein a push request originates from an upper layer protocol of the initiator entity, based on which a reliable transport protocol layer of the initiator entity transmits the solicited push request as a packet over a connection between the initiator entity and the target entity.

13. A system comprising one or more processors of an initiator entity, the one or more processors configured to:

determine that outgoing data is to be transmitted to a target entity;

transmit, to the target entity, a solicited push request requesting the outgoing data to be placed at the target entity via a reliable transport protocol layer;

receive, from the target entity, a push grant in response to the solicited push request; and

transmit to the target entity, the outgoing data to be placed at the target entity in response to the push grant; and

wherein the reliable transport protocol layer consists of a solicitation sublayer and a sliding window sublayer.

14. The system of claim 13 , further comprising:

determining, by the initiator entity, that a size of the outgoing data meets a predetermined threshold, wherein transmitting the solicited push request is based on the determination that the size of the outgoing data meeting the predetermined threshold.

15. The system of claim 14 , wherein the solicited push request is the initial push request between the initiator entity and the target entity, and is generated responsive to the target entity soliciting the outgoing data.

16. The system of claim 13 , wherein the one or more processors are further configured to:

determine that a size of the outgoing data does not meet a predetermined threshold; and

transmit the outgoing data to be placed at the target entity without receiving the push grant when the size of the outgoing data does not meet a predetermined threshold.

17. The system of claim 16 , wherein the solicited push request is the initial push request between the initiator entity and the target entity, and is generated responsive to the target entity soliciting the outgoing data.

18. The system of claim 13 , wherein the one or more processors are further configured to:

receive, from the target entity, an acknowledgment indicating that the outgoing data is received and placed at the target entity.

19. The system of claim 13 , wherein the one or more processors are further configured to:

determine that incoming data is needed from the target entity;

transmit, to the target entity, a pull request requesting the incoming data to be transmitted to the initiator entity; and

receive, from the target entity, the incoming data in response to the pull request.

20. The system of claim 19 , wherein the one or more processors are further configured to:

schedule, based on one or more congestion parameters, the pull request for incoming data.

21. The system of claim 13 , wherein the one or more processors are further configured to assign a solicited sequence number of the solicited push request.

22. The system of claim 13 , wherein the solicitation sublayer manages end-point admission control and ordered delivery of packets.

23. The system of claim 13 , wherein the sliding window sublayer manages end-to-end reliable delivery and congestion control of packets.

24. One or more non-transitory computer-readable storage media storing instructions encoded with instructions that are operable, when executed by one or more processors of an initiator entity, to cause the one or more processors to perform operations comprising:

determining that outgoing data is to be transmitted to a target entity;

transmitting to the target entity, a solicited push request requesting the outgoing data to be placed at the target entity via a reliable transport protocol layer;

receiving from the target entity, a push grant in response to the solicited push request; and

transmitting to the target entity, the outgoing data to be placed at the target entity in response to the push grant; and

wherein the reliable transport protocol layer consists of a solicitation sublayer and a sliding window sublayer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: WANG, WEIHUANG; CHANDRA, PRASHANT; VADUVATHA, SRINIVAS
To: GOOGLE LLC
Reel/Frame 052125/0541 →
Continuity (2)
Provisional Application 62947036 · Dec 12, 2019
Related Publication 20210185139A1 · Jun 17, 2021