Lightweight transport protocol

US10455061B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10455061-B2
Application numberUS-201715849609-A
CountryUS
Kind codeB2
Filing dateDec 20, 2017
Priority dateJun 26, 2015
Publication dateOct 22, 2019
Grant dateOct 22, 2019

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 smart NIC (Network Interface Card) is provided with features to enable the smart NIC to operate as an in-line NIC between a host's NIC and a network. The smart NIC provides pass-through transmission of network flows for the host. Packets sent to and from the host pass through the smart NIC. As a pass-through point, the smart NIC is able to accelerate the performance of the pass-through network flows by analyzing packets, inserting packets, dropping packets, inserting or recognizing congestion information, and so forth. In addition, the smart NIC provides a lightweight transport protocol (LTP) module that enables it to establish connections with other smart NICs. The LTP connections allow the smart NICs to exchange data without passing network traffic through their respective hosts.

First claim

Opening claim text (preview).

The invention claimed is: 1. A first network interface card (NIC) to handle network flows for a host, the first NIC comprising: a media access controller (MAC) configured to connect to a network; processing hardware configured to transmit packets of the network flows by transmitting to the network, from the MAC, packets received from the host, and by passing to the host, packets received from the network by the MAC; a first module configured to implement a lightweight transport protocol (LTP); and a second module configured to communicate with an arbitrary second NIC via the first module by (i) specifying a network address corresponding to the second NIC to enable the first module to establish an LTP connection with endpoints at the first NIC and at the second NIC and (ii) exchanging packets with the second NIC through the LTP connection; and the processing hardware further configured to differentiate between the packets of the network flows and the packets of the LTP connection, wherein packets determined to be packets of the network flows, according to their destinations, are handled by being passed to the host and by being passed to the network, and wherein packets determined to be packets of the LTP connection are handled by the first module instead of being passed to the host or the network. 2. A first NIC according to claim 1 , wherein the second module is further configured to provide data to the first module, and the first module is further configured to cause the first NIC to transmit an LTP packet containing the data as a payload. 3. A first NIC according to claim 2 , wherein the packets of the network flows are received and transmitted by the MAC as payloads of respective media frames, wherein the LTP packet is transmitted by the MAC as a payload of a media frame, the packets of the network flows and the LTP packet comprise Internet Protocol (IP) packets. 4. A first NIC according to claim 1 , wherein the packets of the network flows comprise Transmission Control Protocol (TCP)/IP packets, wherein the LTP packet is formatted as a User Datagram Protocol (UDP)/IP packet, wherein the TCP/IP packets and the LTP packet comprise an IP address of the host computer connected to the first NIC, and wherein the LTP packet comprises the IP address of the host computer and an IP address of a remote host computer. 5. A first NIC according to claim 4 , wherein the second NIC is connected to the remote host computer, wherein the remote host computer corresponds to a remote IP address, wherein one of the network flows has endpoints comprising the host IP address and the remote IP address, respectively, wherein the second NIC receives the LTP packet and, based on an indication of the LTP connection, passes the payload data to an endpoint module in the second NIC and does not pass the payload data to the remote host, and wherein TCP/IP packets of the one of the network flows are passed through to the remote host by the second NIC. 6. A first NIC according to claim 1 , wherein the network address, and a second network address, are both associated with the first NIC, wherein the second network address corresponds to the host, wherein the network address corresponds to the LTP connection endpoints, wherein the packets of the LTP connection are addressed to the network address, and wherein the packets of the network flows are addressed to the second network address. 7. A first NIC according to claim 6 , wherein the reconfigurable hardware circuitry comprises either a field programmable gate array (FPGA), an application specific integrated circuit, an application-specific standard part, or a system on a chip (SoC). 8. A first NIC according to claim 1 , wherein the first module is configured to implement the LTP by maintaining sequence numbers for respective LTP connections, wherein a sequence number is incremented for each LTP packet sent on a corresponding LTP connection, and wherein the first module incorporates a value of a sequence number of the LTP connection into the LTP packet. 9. A first NIC according to claim 1 , wherein the first module is configured to implement the LTP by (i) buffering LTP packets until corresponding acknowledgment LTP packets are received, and (ii) retransmitting buffered LTP packets for which acknowledgement LTP packets are not received within a timeout period. 10. A network interface card (NIC) to handle Internet Protocol (IP) flows, the NIC configured to connect to a host and comprising: a media access controller (MAC) configured to connect to a network; a control circuit configured to pass flow IP packets of the IP flows by: (i) transmitting, from the MAC, flow IP packets received from the host, and by (ii) passing, to the host, flow IP packets received from the network via the MAC; the control circuit further configured to implement a lightweight transport protocol (LTP) by establishing and maintaining connections for the LTP and by providing retransmission of LTP packets originated and sent by the NIC that have been determined by the control circuit to require retransmission, the LTP connections having endpoints in the NIC and another NIC, the LTP packets being exchanged between the NIC and the other NIC and not being passed to or from the host; wherein the NIC is configured to receive inbound IP packets, some of which are IP packets of the IP flows, and some of which are IP packets containing LTP packets, wherein the control circuit is configured to determine which inbound IP packets contain LTP packets; and wherein the control circuit is further configured to: by default, for any given inbound packet received via the MAC that is determined to not contain an LTP packet, based thereon, cause the given inbound IP packet to be passed to the host, and pass to an LTP module LTP packets from IP packets determined to contain LTP packets, wherein the LTP module is configured to implement the LTP. 11. A NIC according to claim 10 , wherein the control circuit is further configured to implement the LTP by providing ordered delivery of LTP packets transmitted by the NIC. 12. A NIC according to claim 10 , wherein the control circuit determines which LTP packets to retransmit based on LTP acknowledgement packets and based on timeouts of transmitted LTP packets. 13. A NIC according to claim 10 , wherein the control circuit is further configured to never pass flow IP packets to an LTP module on the NIC, the LTP module comprising a portion of the control circuit that is configured to manage LTP connections. 14. A network interface card (NIC) to handle Internet Protocol (IP) flows, the NIC comprising: a media access controller (MAC), wherein the MAC is configured to receive from a network inbound IP packets, wherein some of the inbound IP packets are flow IP packets of IP flows, and wherein some of the inbound IP packets are IP packets containing lightweight transport protocol (LTP) packets of an LTP; a control circuit configured to instruct the NIC to pass the inbound flow IP packets of the IP flows to a host; the control circuit comprising an LTP module configured to implement the LTP by establishing and maintaining connections for the LTP that terminate at the NIC, wherein inbound IP packets that are LTP packets are not passed to the host; and the control circuit configured to determine which inbound IP packets contain LTP packets, and: for any given inbound IP packet determined to not contain an LTP packet, based thereon, cause the given inbound IP packet to be passed to the host, and pass, to the LTP module, LTP packets extracted from inbound IP packets that are determined to contain LTP packets.

Assignees

Inventors

Classifications

  • H04L49/30Primary

    Peripheral units, e.g. input or output ports · CPC title

  • H04L69/165Primary

    Combined use of TCP and UDP protocols; selection criteria therefor · CPC title

  • Routing or path finding in a switch fabric · CPC title

  • Interconnection of networks using encapsulation techniques, e.g. tunneling · 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 US10455061B2 cover?
A smart NIC (Network Interface Card) is provided with features to enable the smart NIC to operate as an in-line NIC between a host's NIC and a network. The smart NIC provides pass-through transmission of network flows for the host. Packets sent to and from the host pass through the smart NIC. As a pass-through point, the smart NIC is able to accelerate the performance of the pass-through networ…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification H04L49/30. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Oct 22 2019 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 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).