Reducing network latency

US9258390B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9258390-B2
Application numberUS-201113283420-A
CountryUS
Kind codeB2
Filing dateOct 27, 2011
Priority dateJul 29, 2011
Publication dateFeb 9, 2016
Grant dateFeb 9, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method of transmitting data for use at a data processing system and network interface device, the data processing system being coupled to a network by the network interface device, the method comprising: forming a message template in accordance with a predetermined set of network protocols, the message template including at least in part one or more protocol headers; forming an application layer message in one or more parts; updating the message template with the parts of the application layer message; processing the message template in accordance with the predetermined set of network protocols so as to complete the protocol headers; and causing the network interface device to transmit the completed message over the network.

First claim

Opening claim text (preview).

We claim: 1. A method of transmitting data for use at a data processing system supporting an application, a software interface and a network protocol stack, the data processing system being coupled to a network by a network interface device, the method comprising: the application: forming one or more parts of a message for transmission; causing a message to be generated by means of a first request to the software interface; the software interface: on receiving the first request, causing the network protocol stack to include said one or more parts of the message for transmission in the message and, in accordance with a predetermined set of protocols, form at least in part one or more protocol headers for the message for transmission; and subsequently: forming one or more further parts of the message for transmission; causing the network protocol stack to include the one or more further parts of the message in the message and, on completion of the message for transmission, process the message in accordance with the predetermined set of protocols to complete the protocol headers; and causing the network interface device to transmit the completed message over the network. 2. A method of transmitting data as claimed in claim 1 , wherein the step of forming one or more further parts of the message for transmission is performed by the application and the step of causing the network protocol stack to include the one or more further parts of the message in the message is effected by means of a second request made by the application to the software interface. 3. A method of transmitting data as claimed in claim 2 , wherein the application makes a series of second requests to the software interface, each second request being made on one or more further parts of the message for transmission becoming available to the application. 4. A method of transmitting data as claimed in claim 3 , wherein the final request of the second request type in the series completes the message for transmission causing the network protocol stack to process the message in accordance with the predetermined set of protocols to complete the protocol headers and the network protocol stack to transmit the completed message. 5. A method of transmitting data as claimed in claim 1 , wherein the network protocol stack comprises at least two parts: a first part supported at the data processing system and a second part supported at the network interface device; the first part being configured to perform the step of forming at least in part one or more protocol headers of the message for transmission, and the second part being configured to perform the step of processing the message so as to complete the protocol headers. 6. A method of transmitting data as claimed in claim 5 , wherein the step of forming the one or more further parts of the message for transmission is performed at a data processing engine of the network interface device. 7. A method of transmitting data as claimed in claim 6 , wherein the step of causing the second part of the network protocol stack to process the message to complete the protocol headers is performed in response to completing formation of the one or more further parts of the message for transmission. 8. A method of transmitting data as claimed in claim 5 , wherein the first part of the network protocol stack is a user-level protocol stack. 9. A method of transmitting data as claimed in claim 1 , wherein at least part of the message is held at the network interface device. 10. A method of transmitting data as claimed in claim 1 , wherein the first request includes memory references to the one or more parts of a message for transmission. 11. A method of transmitting data as claimed in claim 1 , further comprising, subsequent to the network protocol stack including said one or more parts of the message for transmission in the message, the network protocol stack performing segmentation of the message in accordance with a predetermined transport protocol such that the one or more parts of the message are transmitted over the network in one or more message segments by the network interface device. 12. A method of transmitting data as claimed in claim 11 , further comprising, subsequent to the network protocol stack including said one or more further parts of the message for transmission in the message, the network protocol stack causing those segments of the message that correspond to the further parts of the message for transmission to be transmitted over the network by the network interface device. 13. A method of transmitting data as claimed in claim 12 , wherein the step of the network protocol stack causing those segments of the message that correspond to the further parts of the message for transmission to be transmitted over the network completes the step of the network interface device transmitting the message over the network. 14. A method of transmitting data as claimed in claim 11 , wherein the predetermined transport protocol is the transmission control protocol. 15. A method of transmitting data as claimed in claim 11 , wherein the transport protocol is configured such that a message segment can carry a plurality of parts of the message for transmission that are not contiguous in the message for transmission. 16. A method as claimed in claim 15 , wherein a message segment can include one or more header fields that determine the logical position within the message for transmission of the parts of the message in the message segment. 17. A method as claimed in claim 16 , wherein the one or more header fields are formed in a TCP header option. 18. A method of transmitting data as claimed in claim 15 , wherein all of the one or more parts of the message are transmitted over the network in a single message segment by the network interface device. 19. A method of transmitting data as claimed in claim 1 , wherein at least part of the message is stored at the network interface device, that part of the message stored at the network interface device including the one or more parts of a message for transmission. 20. A method of transmitting data as claimed in claim 19 , wherein the step of the network protocol stack including the one or more further parts of the message in the message comprises transferring the one or more further parts of the message into the message using one or more programmed I/O instructions. 21. A method of transmitting data as claimed in claim 19 , wherein the step of the network protocol stack including the one or more further parts of the message in the message comprises: for those further parts of the message that are below a predetermined length, transferring the one or more further parts of the message into the message using one or more programmed I/O instructions; and for those further parts of the message that are above the predetermined length, transferring the one or more further parts of the message into the message by means of direct memory access by the network interface device. 22. A method of transmitting data as claimed in claim 1 , wherein the software interface is configured to provide a dummy transmission function by means of which an application can cause the network protocol stack to process the message in accordance with the predetermined set of protocols as if for transmission by the network interface device, the method further comprising, prior to the step of the network interface device transmitting the message over the network, the application

Assignees

Inventors

Classifications

  • in the application layer [OSI layer 7] · CPC title

  • Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields · CPC title

  • H04L69/22Primary

    Parsing or analysis of headers · CPC title

  • IP fragmentation; TCP segmentation · CPC title

  • for supporting traffic characterised by the type of applications · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9258390B2 cover?
A method of transmitting data for use at a data processing system and network interface device, the data processing system being coupled to a network by the network interface device, the method comprising: forming a message template in accordance with a predetermined set of network protocols, the message template including at least in part one or more protocol headers; forming an application la…
Who is the assignee on this patent?
Pope Steven L, Riddoch David J, Mansley Kieran, and 1 more
What technology area does this patent fall under?
Primary CPC classification H04L69/22. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 09 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).