IP Library › Granted Patent US 8,787,169
Granted Patent B2
US 8,787,169 · App. 13/621,079 · Granted Jul 22, 2014

System and method for adjusting transport layer processing during flow control and suspension states

Inventors: Cahya Masputra (San Jose, CA); Padmavathy Bhooma (San Jose, CA)
Assignee: Apple Inc.
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 8,787,169
App. No.
13/621,079
Granted
Jul 22, 2014
Kind
B2
Abstract

A method for efficiently transmitting packets from a client device comprising: receiving a packet at a network transport layer of a client device; calculating a flow hash value for the packet, the flow hash value associating the packet with a particular network flow, the flow hash value usable to track the packet and other packets associated with the particular network flow; receiving feedback for the flow from a layer below the network transport layer of the client device, the flow being identified using the flow hash value, the feedback indicating queuing conditions associated with the flow; and adjusting built in backoff mechanisms normally provided by the network socket layer based on the current queuing conditions.

Claims (28)

1. A method for efficiently transmitting packets from a client device comprising:

receiving a packet at a network transport layer of a client device;

calculating a flow hash value for the packet, the flow hash value associating the packet with a particular network flow, the flow hash value usable to track the packet and other packets associated with the particular network flow;

receiving feedback for the flow from a layer below the network transport layer of the client device, the flow being identified using the flow hash value, the feedback indicating queuing conditions associated with the flow; and

adjusting built in backoff mechanisms normally provided by the network transport layer based on the current queuing conditions;

wherein the current queuing conditions include an indication as to whether a socket associated with the flow is flow controlled as the result of a number of packets accumulating in a transmit queue reaching a specified threshold and wherein the built in backoff mechanisms provided by the transport layer are responsively disabled.

2. The method as in claim 1 wherein adjusting the built in backoff mechanisms comprises disabling a retransmit function provided by the transport layer.

3. The method as in claim 2 wherein the transport layer is a TCP transport layer and the flow contains TCP packets.

4. The method as in claim 2 wherein the transport layer is a UDP transport layer and the flow contains UDP packets.

5. The method as in claim 1 wherein adjusting the built in backoff mechanisms comprises adjusting a retransmit timer provided by the transport layer, the retransmit timer indicating a duration at which the transport layer waits before attempting to retransmit after failing to receive an acknowledgement (ACK).

6. The method as in claim 5 wherein a socket associated with the flow is marked as flow controlled at a network layer, the flow control mark indicating that new packets for the socket should be delayed.

7. The method as in claim 6 wherein if an application associated with the flow continues to send data, packets for the flow are dropped if the socket is a user datagram protocol (UDP) socket.

8. The method as in claim 1 wherein adjusting built in backoff mechanisms provided by the transport layer comprises disabling explicit congestion notification (ECN) provided by the transport layer.

9. The method as in claim 8 further comprising enabling ECN when current queuing conditions improve.

10. A non-transitory machine-readable medium having a program code stored thereon which, when executed by a processor, causes the processor to perform a plurality of operations comprising:

receiving a packet at a network transport layer of a client device;

calculating a flow hash value for the packet, the flow hash value associating the packet with a particular network flow, the flow hash value usable to track the packet and other packets associated with the particular network flow;

receiving feedback for the flow from a layer below the network transport layer of the client device, the flow being identified using the flow hash value, the feedback indicating queuing conditions associated with the flow; and

adjusting built in backoff mechanisms normally provided by the network transport layer based on the current queuing conditions;

wherein the current queuing conditions include an indication as to whether a socket associated with the flow is flow controlled as the result of a number of packets accumulating in a transmit queue reaching a specified threshold and wherein the built in backoff mechanisms provided by the transport layer are responsively disabled.

11. The machine-readable medium as in claim 10 wherein adjusting the built in backoff mechanisms comprises disabling a retransmit function provided by the transport layer.

12. The machine-readable medium as in claim 11 wherein the transport layer is a TCP transport layer and the flow contains TCP packets.

13. The machine-readable medium as in claim 11 wherein the transport layer is a UDP transport layer and the flow contains UDP packets.

14. The machine-readable medium as in claim 10 wherein adjusting the built in backoff mechanisms comprises adjusting a retransmit timer provided by the transport layer, the retransmit timer indicating a duration at which the transport layer waits before attempting to retransmit after failing to receive an acknowledgement (ACK).

15. The machine-readable medium as in claim 14 wherein a socket associated with the flow is marked as flow controlled at a network layer, the flow control mark indicating that new packets for the socket should be delayed.

16. The machine-readable medium as in claim 15 wherein if an application associated with the flow continues to send data, packets for the flow are dropped if the socket is a user datagram protocol (UDP) socket.

17. The machine-readable medium as in claim 10 wherein adjusting built in backoff mechanisms provided by the transport layer comprises disabling explicit congestion notification (ECN) provided by the transport layer.

18. The machine-readable medium as in claim 17 further comprising enabling ECN when current queuing conditions improve.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2012
From: MASPUTRA, CAHYA; BHOOMA, PADMAVATHY
To: APPLE INC.
Reel/Frame 028966/0092 →
Continuity (2)
Provisional Application 61595003 · Feb 3, 2012
Related Publication 20130201825A1 · Aug 8, 2013