IP Library Granted Patent US 9,432,274
Granted Patent B1
US 9,432,274 · App. 14/070,389 · Granted Aug 30, 2016

Intermediary facilitated packet loss recovery

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,432,274
App. No.
14/070,389
Granted
Aug 30, 2016
Kind
B1
Abstract

A system and method for facilitating packet loss recovery using an intermediary are provided. The system includes a first node configured to transmit a plurality of data packets, a second node configured to receive the plurality of data packets and a third node configured to act as an intermediary between the first node and the second node and is configured to receive one or more packets of the plurality of data packets transmitted from the first node to the second node before the one or more packets are transmitted to the second node, and determine if a packet loss event has occurred, wherein a packet loss event occurs if a first packet of the plurality of packets is lost during transmission from the first node to the second node and take an action with respect to the first packet if it determined that a packet loss event has occurred.

Claims (54)

1. A system comprising:

a first node configured to transmit a dataset comprising a plurality of packets;

a second node configured to receive the plurality of packets; and

a third node configured to:

act as an intermediary between the first node and the second node, wherein the third node is configured to receive one or more packets of the plurality of packets transmitted from the first node to the second node before the one or more packets are transmitted to the second node;

determine if a packet loss event has occurred, wherein the packet loss event occurs when a first packet of the plurality of packets is lost during transmission from the first node to the second node;

determine if the first packet was received from the first node at the third node if it is determined that the packet loss event has occurred;

send the first packet to the second node when the first packet was received from the first node at the third node; and

transmit a notification to the first node indicating that the packet loss event occurred and was remedied when the packet loss event occurs and the first packet is sent to the second node by the third node.

2. The system of claim 1 , wherein determining if the packet loss event occurred comprises:

determining that the first packet from the first node has not arrived at the third node.

3. The system of claim 2 , wherein the determining that the first packet has not arrived at the third node comprises:

determining an order indication for the one or more packets received at the third node; and

determining the first packet has not arrived at the third node based at least in part on the order indication for the one or more packets.

4. The system of claim 3 , wherein the order indication comprises a byte range for each of the one or more packets.

5. The system of claim 3 , wherein the order indication comprises a sequence number associated with each of the one or more packets.

6. The system of claim 1 , wherein the third node is further configured to:

generate another notification indicating that the first packet was lost during transmission from the first node to the second node when it is determined that the first packet was lost during transmission from the first node to the second node; and

send the another notification to the first node.

7. The system of claim 6 , wherein the third node is further configured to:

receive the first packet at the third node in response to the another notification; and

send the first packet to the second node.

8. The system of claim 6 , wherein the first packet is sent to the third node from the first node in response to the another notification when the first node and the third node have an established trust relationship.

9. The system of claim 6 , wherein the another notification is sent through a same transmission connection that the first node uses to send the plurality of packets to the second node.

10. The system of claim 6 , wherein the another notification is sent through a second connection established between the third node and the first node, wherein the second connection is different than a first connection that the first node uses to send the plurality of packets to the second node.

11. The system of claim 1 , wherein determining if the packet loss event occurred comprises receiving, at the third node, another notification being sent from the second node to the first node indicating that the first packet was not received at the second node.

12. The system of claim 11 , wherein the first packet is sent through a same transmission connection that the second node uses to send the another notification.

13. The system of claim 11 , wherein the first packet is sent through a second connection established between the third node and the second node, wherein the second connection is different than a first connection that the second node uses to send the another notification to the first node.

14. The system of claim 1 , wherein the third node is further configured to:

receive one or more of the plurality of packets being sent from the first node to the second node;

store the received one or more of the plurality of packets at the third node; and

forward the received one or more packets to the second node.

15. A computer-implemented method comprising:

receiving, using one or more computing devices, one or more packets of a plurality of packets transmitted from a first node at an intermediary node, wherein the plurality of packets are transmitted from the first node to a second node and wherein the one or more packets are received at the intermediary node before the one or more packets are transmitted to the second node;

determining, at the intermediary node, using the one or more computing devices, if a packet loss event has occurred, wherein the packet loss event occurs when a first packet of the plurality of packets is lost during transmission from the first node to the second node;

determining, at the intermediary node, using the one or more computing devices, if the first packet was received from the first node at the intermediary node when it is determined that the packet loss event has occurred;

sending the first packet from the intermediary node to the second node, using the one or more computing devices, when the first packet was received from the first node at the intermediary node; and

transmit a notification to the first node indicating that the packet loss event occurred and was remedied when the packet loss event occurs and the first packet is sent to the second node using the one or more computing devices.

16. The method of claim 15 , wherein the determining that the packet loss event occurred comprises:

determining that the first packet from the first node has not arrived at the intermediary node, comprising:

determining an order indication for one or more of the plurality of packets received at the intermediary node; and

determining that one of the plurality of packets is missing according to the order indication for the one or more of the plurality of packets.

17. The method of claim 15 , wherein the determining that the packet loss event occurred comprises receiving, at the intermediary node, another notification being sent from the second node to the first node indicating that the first packet was not received at the second node.

18. The method of claim 15 , further comprising:

storing the received one or more data packets at the intermediary node; and

forwarding the received one or more packets from the intermediary node to the second node.

19. A non-transitory machine-readable medium comprising instructions stored therein, which when executed by a machine, cause the machine to perform operations comprising:

determining, at an intermediary node, if a packet loss event has occurred, wherein the intermediary node is configured to receive a plurality of packets transmitted from a first node to a second node from the first node before the packets are transmitted to the second node, and wherein the packet loss event occurs when a first packet of the plurality of packets is lost during transmission from the first node to the second node; and

taking an action, at the intermediary node, using the one or more computing devices, with respect to the first packet when the packet loss event has occurred, the action comprising

determining if the first packet was received from the first node at the intermediary node and stored at the intermediary node when it is determined that the packet loss event has occurred;

sending the first packet to the second node when it is determined that the first packet was received from the first node at the intermediary node; and

sending a notification to the first node indicating that the packet loss event occurred and was remedied when the packet loss event occurs and the first packet is sent to the second node by the intermediary node.

20. The machine-readable medium of claim 19 , wherein the operations further comprise:

sending another notification to the first node notifying the first node that the first packet has not arrived at the intermediary node when it is determined that the first packet was not received from the first node at the intermediary node, the notification being generated by the intermediary node.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044566/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 23, 2013
From: PEON, ROBERTO JAVIER; ROSKIND, JAMES ANTHONY
To: GOOGLE INC.
Reel/Frame 031844/0148 →