Transaction boundary detection for reduction in timeout penalties
First Claim
Patent Images
1. A method for communicating a plurality of data packets associated with a transaction from a sender to a receiver over a network connection, the method comprising:
- observing, by an intermediary, application data packets of a transaction of an application communicated via an application protocol over an established transport layer connection between a sender and a receiver, the transaction comprising a plurality of application data packets;
determining, by the intermediary, when a last application data packet of the plurality of application data packets of the transaction has been transmitted by the sender via the application protocol over the established transport layer connection by observing when the sender ceases transmitting application data packets for a predetermined period of time;
after the last application data packet of the transaction has been transmitted by the sender, transmitting, by the intermediary, via the application protocol over the established transport layer connection one or more additional application data packets to the receiver, wherein the one or more additional application data packets cause the generation of one or more acknowledgements if received by the receiver;
receiving, by the intermediary, one or more acknowledgments from the receiver generated responsive to receipt of the one or more additional application data packets, the intermediary having not received an acknowledgement for the last application data packet;
determining, by the intermediary, based on the received one or more acknowledgements generated responsive to receipt of the one or more additional application data packets, that the last application data packet was received by the receiver; and
transmitting, by the intermediary to the sender, responsive to the determination that the last application data packet was received by the receiver, an acknowledgement of receipt of the last application data packet by the receiver and not the one or more additional data packets, prior to expiration of a timeout associated with the transmission of the last application data packet by the sender.
9 Assignments
0 Petitions
Accused Products
Abstract
One or more flow control modules, implemented on various types of network topologies, provide a number of functionalities for controlling the flow of IP packets (such as TCP/IP packets) over a network connection. The flow control modules may be implemented within a sender and/or receiver or may be deployed into a network as a separate device without requiring significant additional resources.
-
Citations
35 Claims
-
1. A method for communicating a plurality of data packets associated with a transaction from a sender to a receiver over a network connection, the method comprising:
-
observing, by an intermediary, application data packets of a transaction of an application communicated via an application protocol over an established transport layer connection between a sender and a receiver, the transaction comprising a plurality of application data packets; determining, by the intermediary, when a last application data packet of the plurality of application data packets of the transaction has been transmitted by the sender via the application protocol over the established transport layer connection by observing when the sender ceases transmitting application data packets for a predetermined period of time; after the last application data packet of the transaction has been transmitted by the sender, transmitting, by the intermediary, via the application protocol over the established transport layer connection one or more additional application data packets to the receiver, wherein the one or more additional application data packets cause the generation of one or more acknowledgements if received by the receiver; receiving, by the intermediary, one or more acknowledgments from the receiver generated responsive to receipt of the one or more additional application data packets, the intermediary having not received an acknowledgement for the last application data packet; determining, by the intermediary, based on the received one or more acknowledgements generated responsive to receipt of the one or more additional application data packets, that the last application data packet was received by the receiver; and transmitting, by the intermediary to the sender, responsive to the determination that the last application data packet was received by the receiver, an acknowledgement of receipt of the last application data packet by the receiver and not the one or more additional data packets, prior to expiration of a timeout associated with the transmission of the last application data packet by the sender. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 35)
-
-
11. A method for communicating data from a sender to a receiver over a network connection, the method comprising the steps of:
-
detecting, by an intermediary, a transaction boundary of a transaction of an application communicated via an application protocol over an established transport layer connection between a sender and receiver in which a last application data packet of a plurality of application data packets of the transaction of the application has been determined to have been transmitted by the sender by observing the value of a PSH bit in a transport layer header of the last application data packet, the transaction comprising the plurality of application data packets; transmitting, by the intermediary, via the application protocol over the established transport layer connection at least one additional application data packet after the transaction boundary, the at least one additional application data packet configured to cause an acknowledgement from the receiver; receiving, by the intermediary, an acknowledgment from the receiver generated responsive to receipt of the at least one additional application data packets, the intermediary having not received an acknowledgement for the last application data packet of the plurality of application data packets; determining, by the intermediary, based on the received acknowledgement generated responsive to receipt of the at least one additional application data packets, that the last application data packet of the plurality of application data packets was received by the receiver; and transmitting, by the intermediary to the sender, responsive to the determination that the last application data packet of the plurality of application data packets was received by the receiver, an acknowledgement of receipt of the last application data packet of the plurality of application data packets and not the at least one additional data packets by the receiver, prior to expiration of a timeout associated with the transmission of the last application data packet of the plurality of application data packets by the sender. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. An article of manufacture comprising a non-transitory computer usable medium having computer readable program code means embodied therein for communicating a plurality of data packets associated with a transaction from a sender to a receiver over a network connection, the computer readable program code in said article of manufacture comprising:
-
computer readable program code means for observing, by an intermediary, application data packets of a transaction of an application communicated via an application protocol over an established transport layer connection between a sender and a receiver, the transaction comprising a plurality of application data packets; computer readable program code means for determining, by the intermediary, when a last application data packet of the plurality of application data packets of the transaction has been transmitted by the sender via the application protocol over the established transport layer connection; computer readable program code means for transmitting by the intermediary, after the last data packet of the transaction has been transmitted by the sender and prior to expiration of a retransmission timeout associated with a transmission of the last data packet of the transaction to the receiver, one or more additional application data packets via the application protocol over the established transport layer connection to the receiver, wherein the one or more additional application data packets cause the generation of one or more acknowledgements if received by the receiver; computer readable program code means for receiving, by the intermediary, one or more acknowledgments from the receiver generated responsive to receipt of the one or more additional application data packets, the intermediary having not received an acknowledgement for the last application data packet; computer readable program code means for determining, by the intermediary, based on the received one or more acknowledgements generated responsive to receipt of the one or more additional application data packets, that the last application data packet was not received by the receiver; and computer readable program code means for transmitting, by the intermediary to the sender, responsive to the determination that the last application data packet was not received by the receiver, a packet to cause the sender to retransmit the last application data packet, prior to expiration of a timeout associated with the transmission of the last application data packet by the sender. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A device comprising
a flow control module coupled to a sender for communicating a plurality of data packets associated with a transaction from a sender to a receiver over a network connection, the flow control module configured to perform the operations: -
observing, by the flow control module, application data packets of a transaction of an application communicated via an application protocol over an established transport layer connection between a sender and a receiver, the transaction comprising a plurality of application data packets; determining, by the flow control module, when a last application data packet of the plurality of application data packets of the transaction has been transmitted by the sender via the application protocol over the established transport layer connection; after the last application data packet of the transaction has been transmitted by the sender and prior to expiration of a retransmission timeout associated with observation of the communicated last application data packet of the transaction, transmitting, by the flow control module, via the established transport layer connection one or more additional application data packets to the receiver, wherein the one or more additional application data packets cause the generation of one or more acknowledgements if received by the receiver; receiving, by the flow control module, one or more acknowledgments from the receiver generated responsive to receipt of the one or more additional application data packets, the device having not received an acknowledgement for the last application data packet; determining, by the flow control module, based on the received one or more acknowledgements generated responsive to receipt of the one or more additional application data packets, that the last application data packet was not received by the receiver; and transmitting, by the flow control module to the sender, responsive to the determination that the last application data packet was not received by the receiver, a packet to cause the sender to retransmit the last application data packet, prior to expiration of a timeout associated with the transmission of the last application data packet by the sender. - View Dependent Claims (30, 31, 32, 33, 34)
-
Specification