Guaranteed delivery of application layer messages by a network element
First Claim
1. A method of providing reliable delivery of an application layer message, the method comprising the computer-implemented steps of:
- receiving one or more data packets at a first network element;
determining a first application layer message that is collectively contained in one or more payload portions of the one or more data packets, wherein the first application layer message originated at a source application;
extracting, from the first application layer message, a message identifier that is contained in the first application layer message;
determining whether a message identifier queue contains the message identifier; and
in response to determining that the message identifier queue does not contain the message identifier, storing the first application layer message in an application layer message queue as well as storing the message identifier into the message identifier queue atomically, and sending towards the source application, an acknowledgment (ACK) message that indicates the message identifier;
wherein the method is performed by one or more computing devices of the first network element located between the source application and a destination of the first application layer message.
1 Assignment
0 Petitions
Accused Products
Abstract
A method is disclosed by which network elements such as packet routers and packet switches guarantee the delivery of application layer messages within a network. According to one aspect, a first network element retrieves an application layer message from a source message queue, adds a message identifier to the application layer message, encapsulates the application layer message into data packets, and sends the data packets toward a destination application. A second network element intercepts the data packets, determines the application layer message from payload portions of the data packets, determines the message identifier from the application layer message, stores the application layer message in a destination message queue, generates an acknowledgement message that contains the message identifier, and sends the acknowledgement message toward a source application. The first network element intercepts the acknowledgement message and concludes that the application layer message within the matching message identifier was successfully delivered.
-
Citations
18 Claims
-
1. A method of providing reliable delivery of an application layer message, the method comprising the computer-implemented steps of:
-
receiving one or more data packets at a first network element; determining a first application layer message that is collectively contained in one or more payload portions of the one or more data packets, wherein the first application layer message originated at a source application; extracting, from the first application layer message, a message identifier that is contained in the first application layer message; determining whether a message identifier queue contains the message identifier; and in response to determining that the message identifier queue does not contain the message identifier, storing the first application layer message in an application layer message queue as well as storing the message identifier into the message identifier queue atomically, and sending towards the source application, an acknowledgment (ACK) message that indicates the message identifier; wherein the method is performed by one or more computing devices of the first network element located between the source application and a destination of the first application layer message. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer-readable volatile or non-volatile storage medium carrying one or more sequences of instructions for providing reliable delivery of an application layer message, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
receiving one or more data packets at a first network element; determining a first application layer message that is collectively contained in one or more payload portions of the one or more data packets, wherein the first application layer message originated at a source application; extracting, from the first application layer message, a message identifier that is contained in the first application layer message; determining whether a message identifier queue contains the message identifier; and in response to determining that the message identifier queue does not contain the message identifier, storing the first application layer message in an application layer message queue as well as storing the message identifier into the message identifier queue atomically, and sending, towards the source application, an acknowledgment (ACK) message that indicates the message identifier; wherein the first network element is located between the source application and a destination of the first application layer message. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An apparatus for providing reliable delivery of an application layer message, comprising:
-
a network interface for receiving one or more packet flows; a processor; a computer-readable volatile or non-volatile storage medium storing one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of; receiving one or more data packets; determining a first application layer message that is collectively contained in one or more payload portions of the one or more data packets, wherein the first application layer message originated at a source application; extracting, from the first application layer message, a message identifier that is contained in the first application layer message; determining whether a message identifier queue contains the message identifier; and in response to determining that the message identifier queue does not contain the message identifier, storing the first application layer message in an application layer message queue from which a destination application can retrieve the first application layer message, and sending, toward the source application, an acknowledgment (ACK) message that indicates the message identifiers; wherein the apparatus is located between the source application and a destination of the first application layer message. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification