# US 8,787,169 B2 · System and method for adjusting transport layer processing during flow control and suspension states

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,787,169 B2
- Document ID: US8787169B2
- Status: Granted
- Kind: B2
- Application number: 13/621,079
- Filed: 2012-09-15
- Published: 2013-08-08
- Granted: 2014-07-22
- Earliest claimed: 2012-02-03
- Assignees: Apple Inc.
- Applicants: Cahya Masputra; Padmavathy Bhooma
- Inventors: Cahya Masputra; Padmavathy Bhooma
- Web page: https://patentgrep.com/patent/US8787169B2

## CPC

- H04L 47/60: implementing hierarchical scheduling
- H04L 47/2441: relying on flow classification, e.g. using integrated services [IntServ]
- H04L 47/6215: {Individual queue per QOS, rate or priority}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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

### Claim 3 (depends on 2)

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

### Claim 4 (depends on 2)

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

### Claim 5 (depends on 1)

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).

### Claim 6 (depends on 5)

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.

### Claim 7 (depends on 6)

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.

### Claim 8 (depends on 1)

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.

### Claim 9 (depends on 8)

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

### Claim 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.

### Claim 11 (depends on 10)

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.

### Claim 12 (depends on 11)

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

### Claim 13 (depends on 11)

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

### Claim 14 (depends on 10)

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).

### Claim 15 (depends on 14)

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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 10)

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.

### Claim 18 (depends on 17)

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