9350825

Optimizing Network Communications

PublishedMay 24, 2016
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
12 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A computer program product comprising a non-transitory computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on an originating computing device, causes the originating computing device to: receive a first data transfer request via a first application level socket connection in the originating computing device; prior to opening a kernel level socket connection to a destination computing device identified in the first data transfer request, determine whether a second data transfer request has been received via a second application level socket connection in the originating computing device, wherein the second data transfer request identifies a destination computing device that is the same as the destination computing device as the first data transfer request; responsive to identifying the second data transfer request, determine a size of each of the first data transfer request and the second data transfer request and determine whether an aggregation of the first data transfer request and the second data transfer request would exceed underlying communications systems limits; responsive to the aggregation of the first data transfer request and the second data transfer request failing to exceed the underlying communications systems limits, coalesce the first data transfer request and the second data transfer request into a third data transfer request stored in a single kernel level socket buffer of the originating computing device; generate an aggregated message header that identifies an order in which the first data transfer request and the second data transfer request originated; and send the third data transfer request stored in the single kernel level socket buffer of the originating computing device to the destination computing device via a single Transmission Control Protocol/Internet Protocol (TCP/IP) stack in the originating computing device to the destination computing device.

2

2. The computer program product of claim 1 , wherein, upon receiving the third data transfer request via a single TCP/IP stack in the destination computing device, the computer readable program, when executed on the destination computing device, causes the originating computing device to: store the third data transfer request in a single kernel level socket buffer of the destination computing device; separate the third data transfer request in the single kernel level socket buffer of the destination computing device into the first data transfer request and the second data transfer request utilizing an aggregated message header that identifies an order in which the first data transfer request and the second data transfer request originated from the originating computing device; open a first application level socket connection in the destination computing device for the first data transfer request; open a second application level socket connection in the destination computing device for the second data transfer request; send the first data transfer request to a destination application on the destination computing device via the first application level socket connection in the destination computing device; and send the second data transfer request to the destination application on the destination computing device via the second application level socket connection in the destination computing device.

3

3. The computer program product of claim 2 , wherein receiving the third data transfer request in the destination computing device from the originating computing device utilizes a large receive offload (LRO) feature for a network adapter in the destination computing device from the origination computing device.

4

4. The computer program product of claim 2 , wherein the separating of the third data transfer request into the first data transfer request and the second data transfer request is performed without modifying the destination application.

5

5. The computer program product of claim 1 , wherein sending the third data transfer request to the destination computing device via the single network connection to the destination computing device utilizes a stateless offload for a network adapter in the origination computing device to the destination computing device and wherein the stateless offload is a large send offload (LSO) feature.

6

6. The computer program product of claim 1 , wherein the coalescing of the first data transfer request and the second data transfer request into the third data transfer request is performed without modifying an application that initiated the first data transfer request and the second data transfer request.

7

7. An apparatus comprising: a first processor in an originating computing device; and a first memory coupled to the first processor, wherein the first memory comprises first instructions which, when executed by the first processor, cause the first processor to: receive a first data transfer request via a first application level socket connection in the originating computing device; prior to opening a kernel level socket connection to a destination computing device identified in the first data transfer request, determine whether a second data transfer request has been received via a second application level socket connection in the originating computing device, wherein the second data transfer request identifies a destination computing device that is the same as the destination computing device as the first data transfer request; responsive to identifying the second data transfer request, determine a size of each of the first data transfer request and the second data transfer request and determine whether an aggregation of the first data transfer request and the second data transfer request would exceed underlying communications systems limits; responsive to the aggregation of the first data transfer request and the second data transfer request failing to exceed the underlying communications systems limits, coalesce the first data transfer request and the second data transfer request into a third data transfer request stored in a single kernel level socket buffer of the originating computing device; generate an aggregated message header that identifies an order in which the first data transfer request and the second data transfer request originated; and send the third data transfer request stored in the single kernel level socket buffer of the originating computing device to the destination computing device via a single Transmission Control Protocol/Internet Protocol (TCP/IP) stack in the originating computing device to the destination computing device.

8

8. The apparatus of claim 7 , further comprising: a second processor in an destination computing device; and a second memory coupled to the second processor, wherein the second memory comprises second instructions which, when executed by the second processor, cause second processor to: store the third data transfer request in a single kernel level socket buffer of the destination computing device; separate the third data transfer request in the single kernel level socket buffer of the destination computing device into the first data transfer request and the second data transfer request utilizing an aggregated message header that identifies an order in which the first data transfer request and the second data transfer request originated from the originating computing device; open a first application level socket connection in the destination computing device for the first data transfer request; open a second application level socket connection in the destination computing device for the second data transfer request; send the first data transfer request to a destination application on the destination computing device via the first application level socket connection in the destination computing device; and send the second data transfer request to the destination application on the destination computing device via the second application level socket connection in the destination computing device.

9

9. The apparatus of claim 8 , wherein receiving the third data transfer request in the destination computing device from the originating computing device utilizes a large receive offload (LRO) feature for a network adapter in the destination computing device from the origination computing device.

10

10. The apparatus of claim 8 , wherein the separating of the third data transfer request into the first data transfer request and the second data transfer request is performed without modifying the destination application.

11

11. The apparatus of claim 7 , wherein sending the third data transfer request to the destination computing device via the single network connection to the destination computing device utilizes a stateless offload for a network adapter in the origination computing device to the destination computing device and wherein the stateless offload is a large send offload (LSO) feature.

12

12. The apparatus of claim 7 , wherein the coalescing of the first data transfer request and the second data transfer request into the third data transfer request is performed without modifying an application that initiated the first data transfer request and the second data transfer request.

Patent Metadata

Filing Date

Unknown

Publication Date

May 24, 2016

Inventors

Omar Cardona
Matt R. Hogstrom
Rakesh Sharma

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Optimizing Network Communications” (9350825). https://patentable.app/patents/9350825

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

Optimizing Network Communications — Omar Cardona | Patentable