# US 11,444,882 B2 · Methods for dynamically controlling transmission control protocol push functionality and devices thereof

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

- Number: US 11,444,882 B2
- Document ID: US11444882B2
- Status: Granted
- Kind: B2
- Application number: 16/834,145
- Filed: 2020-03-30
- Published: 2020-10-22
- Granted: 2022-09-13
- Earliest claimed: 2019-04-18
- Assignees: F5, Inc.
- Applicants: F5 Networks, Inc.
- Inventors: Nasif Ekiz; Martin Duke; Akihiko Maruse; Aniket Dhobe
- Web page: https://patentgrep.com/patent/US11444882B2

## CPC

- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L 47/283: in response to processing delays, e.g. caused by jitter or round trip time [RTT]
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/55: Push-based network services
- H04L 69/161: {Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Methods, non-transitory computer readable media, network traffic management apparatuses, and network traffic management systems that monitor one or more messages generated by an application or one or more characteristics of one or more transmission control protocol (TCP) connections with a destination device or a source device. A determination is made when a first TCP push flag should be set for a first packet associated with data based on the monitoring. The data is provided by the application. The first TCP push flag for the first packet is set prior to the first packet being sent to the destination device via a first one of the TCP connections, based on the determination that the first TCP push flag should be set for the first packet. Accordingly, this technology more effectively manages TCP push functionality to reduce acknowledgement messages (ACKs) and thereby improve network bandwidth and device resource utilization.

## Claims

### Claim 1

A method for managing transmission control protocol (TCP) functionality implemented by a network traffic management system comprising one or more network traffic management apparatuses, server devices, or client devices, the method comprising:
monitoring a message generated by an application or characteristic data of a TCP connection with a destination device or a source device, wherein the message generated is a receive window;
determining when the receive window is less than a threshold to effectively manage network traffic in the TCP connection; and
setting the first TCP push flag for the first packet prior to the first packet being sent to the destination device via the TCP connection, when the determination indicates that the receive window is less than the threshold.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
determining when the monitored message indicates that a current data transmission is complete; and
setting the first TCP push flag for the first packet based on the determination that the monitored message indicates the current data transmission is complete.

### Claim 3 (depends on 1)

The method of claim 1, wherein the monitored characteristic data comprises a current round trip time (RTT) of the first TCP connection and the method further comprises:
determining when a second TCP push flag has not been set for a second packet prior to expiration of the current RTT; and
setting the first TCP push flag for the first packet based on the determination that the second TCP push flag has not been set for a second packet prior to expiration of the current RTT.

### Claim 4 (depends on 1)

The method of claim 1, wherein the monitored characteristic data comprises a first maximum segment size (MSS) of the TCP connection and a second MSS of another TCP connection with the source device, and the method further comprises:
determining when a size of the application data is less than the first MSS and the second MSS; and
setting the first TCP push flag for the first packet based on the determination that the size is less than the first MSS and the second MSS.

### Claim 5

A network traffic management apparatus, comprising memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:
monitor a message generated by an application or characteristic data of a TCP connection with a destination device or a source device, wherein the message generated is a receive window;
determine when the receive window is less than a threshold to effectively manage network traffic in the TCP connection; and
set the first TCP push flag for the first packet prior to the first packet being sent to the destination device via the TCP connection, when the determination indicates that the receive window is less than the threshold.

### Claim 6 (depends on 5)

The network traffic management apparatus of claim 5, wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:
determine when the monitored message indicates that a current data transmission is complete; and
set the first TCP push flag for the first packet based on the determination that the monitored message indicates the current data transmission is complete.

### Claim 7 (depends on 5)

The network traffic management apparatus of claim 5, wherein the monitored characteristic data comprises a current round trip time (RTT) of the first TCP connection and the one or more processors are further configured to be capable of executing the stored programmed instructions to:
determine when a second TCP push flag has not been set for a second packet prior to expiration of the current RTT; and
set the first TCP push flag for the first packet based on the determination that the second TCP push flag has not been set for a second packet prior to expiration of the current RTT.

### Claim 8 (depends on 5)

The network traffic management apparatus of claim 5, wherein the monitored characteristic data comprises a first maximum segment size (MSS) of the TCP connection and a second MSS of another TCP connection with the source device, and the one or more processors are further configured to be capable of executing the stored programmed instructions to:
determine when a size of the application data is less than the first MSS and the second MSS; and
set the first TCP push flag for the first packet based on the determination that the size is less than the first MSS and the second MSS.

### Claim 9

A non-transitory computer readable medium having stored thereon instructions for managing transmission control protocol (TCP) functionality comprising executable code that, when executed by one or more processors, causes the one or more processors to:
monitor a message generated by an application or characteristic data of a TCP connection with a destination device or a source device, wherein the message generated is a receive window;
determine when the receive window is less than a threshold to effectively manage network traffic in the TCP connection; and
set the first TCP push flag for the first packet prior to the first packet being sent to the destination device via the TCP connection, when the determination indicates that the receive window is less than the threshold.

### Claim 10 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the executable code, when executed by the one or more processors, further causes the one or more processors to:
determine when the monitored message indicates that a current data transmission is complete; and
set the first TCP push flag for the first packet based on the determination that the monitored message indicates the current data transmission is complete.

### Claim 11 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the monitored characteristic data comprises a current round trip time (RTT) of the first TCP connection and the executable code, when executed by the one or more processors, further causes the one or more processors to:
determine when a second TCP push flag has not been set for a second packet prior to expiration of the current RTT; and
set the first TCP push flag for the first packet based on the determination that the second TCP push flag has not been set for a second packet prior to expiration of the current RTT.

### Claim 12 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the monitored characteristic data comprises a first maximum segment size (MSS) of the TCP connection and a second MSS of another TCP connection with the source device, and the executable code, when executed by the one or more processors, further causes the one or more processors to:
determine when a size of the application data is less than the first MSS and the second MSS; and
set the first TCP push flag for the first packet based on the determination that the size is less than the first MSS and the second MSS.

### Claim 13

A network traffic management system, comprising one or more network traffic management apparatuses, server devices, or client devices with memory comprising programmed instructions stored thereon and one or more processors configured to be capable of executing the stored programmed instructions to:
monitor a message generated by an application or characteristic data of a TCP connection with a destination device or a source device, wherein the message generated is a receive window;
determine when the receive window is less than a threshold to effectively manage network traffic in the TCP connection; and
set the first TCP push flag for the first packet prior to the first packet being sent to the destination device via the TCP connection, when the determination indicates that the receive window is less than the threshold.

### Claim 14 (depends on 13)

The network traffic management system of claim 13, wherein the one or more processors are further configured to be capable of executing the stored programmed instructions to:
determine when the monitored message indicates that a current data transmission is complete; and
set the first TCP push flag for the first packet based on the determination that the monitored message indicates the current data transmission is complete.

### Claim 15 (depends on 13)

The network traffic management system of claim 13, wherein the monitored characteristic data comprises a current round trip time (RTT) of the first TCP connection and the one or more processors are further configured to be capable of executing the stored programmed instructions to:
extract the receive window from a header of an acknowledgement message received from the destination device;
determine when the receive window is less than a threshold; and
set the first TCP push flag for the first packet based on the determination that the second TCP push flag has not been set for a second packet prior to expiration of the current RTT.

### Claim 16 (depends on 13)

The network traffic management system of claim 13, wherein the monitored characteristic data comprises a first maximum segment size (MSS) of the TCP connection and a second MSS of another TCP connection with the source device, and the one or more processors are further configured to be capable of executing the stored programmed instructions to:
determine when a size of the application data is less than the first MSS and the second MSS; and
set the first TCP push flag for the first packet based on the determination that the size is less than the first MSS and the second MSS.
