Wavefront detection and disambiguation of acknowledgments
First Claim
Patent Images
1. A method for communicating with a remote system using Internet Protocol (IP) via a computer network, the method comprising:
- transmitting, by a flow control module configured on a device, a first data packet from a sender to a remote system, the transmitted first data packet including a first transport layer sequence number;
transmitting, by the flow control module, a second data packet from the sender to the remote system, the second data packet including a second transport layer sequence number;
transmitting, by the flow control module, a third data packet from the sender to the remote system, the third data packet including a third transport layer sequence number;
retransmitting, by the flow control module, the first data packet from the sender to the remote system, the retransmitted first data packet including the first sequence number;
maintaining, by the flow control module, an ordered list of sequence numbers in order of transmission, the list comprising an entry for each of the transmission of the first, second, and third data packets and the retransmission of the first data packet;
receiving, by the flow control module from the remote system, a first acknowledgement packet, the first acknowledgement packet including one of;
(i) the second sequence number to indicate receipt by the remote system of the second data packet, or (ii) the third sequence number to indicate receipt by the remote system of the third data packet;
receiving, by the flow control module from the remote system, a second acknowledgement packet, the second acknowledgement packet including the first sequence number; and
determining, by the flow control module, whether the received second acknowledgement packet acknowledges receipt by the remote system of one of;
(i) the transmission of the first data packet, responsive to the entry for the sequence number included in the first acknowledgement packet being closer in the ordered list to the entry for the transmission of the first data packet, or (ii) the retransmission of the first data packet, responsive to the entry for the sequence number included in the first acknowledgement packet being closer in the ordered list to the entry for the retransmission of the first data packet.
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.
476 Citations
20 Claims
-
1. A method for communicating with a remote system using Internet Protocol (IP) via a computer network, the method comprising:
-
transmitting, by a flow control module configured on a device, a first data packet from a sender to a remote system, the transmitted first data packet including a first transport layer sequence number; transmitting, by the flow control module, a second data packet from the sender to the remote system, the second data packet including a second transport layer sequence number; transmitting, by the flow control module, a third data packet from the sender to the remote system, the third data packet including a third transport layer sequence number; retransmitting, by the flow control module, the first data packet from the sender to the remote system, the retransmitted first data packet including the first sequence number; maintaining, by the flow control module, an ordered list of sequence numbers in order of transmission, the list comprising an entry for each of the transmission of the first, second, and third data packets and the retransmission of the first data packet; receiving, by the flow control module from the remote system, a first acknowledgement packet, the first acknowledgement packet including one of;
(i) the second sequence number to indicate receipt by the remote system of the second data packet, or (ii) the third sequence number to indicate receipt by the remote system of the third data packet;receiving, by the flow control module from the remote system, a second acknowledgement packet, the second acknowledgement packet including the first sequence number; and determining, by the flow control module, whether the received second acknowledgement packet acknowledges receipt by the remote system of one of;
(i) the transmission of the first data packet, responsive to the entry for the sequence number included in the first acknowledgement packet being closer in the ordered list to the entry for the transmission of the first data packet, or (ii) the retransmission of the first data packet, responsive to the entry for the sequence number included in the first acknowledgement packet being closer in the ordered list to the entry for the retransmission of the first data packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for communicating with a remote system using Internet Protocol (IP) via a computer network, the system comprising:
a device deployed between a sender and a remote system, the device comprising a flow control module, the flow control module configured to; transmit a first data packet from a sender to a remote system, the transmitted first data packet including a first transport layer sequence number; transmit a second data packet from the sender to the remote system, the second data packet including a second transport layer sequence number; transmit a third data packet from the sender to the remote system, the third data packet including a third transport layer sequence number; retransmit, the first data packet from the sender to the remote system, the retransmitted first data packet including the first sequence number; maintain an ordered list of sequence numbers in order of transmission, the list comprising an entry for each of the transmission of the first, second, and third data packets and the retransmission of the first data packet; receive from the remote system, a first acknowledgement packet, the first acknowledgement packet including one of;
(i) the second sequence number to indicate receipt by the remote system of the second data packet, or (ii) the third sequence number to indicate receipt by the remote system of the third data packet;receive from the remote system, a second acknowledgement packet, the second acknowledgement packet including the first sequence number; and determine whether the received second acknowledgement packet acknowledges receipt by the remote system of one of;
(i) the transmission of the first data packet, responsive to the entry for the sequence number included in the first acknowledgement packet being closer in the ordered list to the entry for the transmission of the first data packet, or (ii) the retransmission of the first data packet, responsive to the entry for the sequence number included in the first acknowledgement packet being closer in the ordered list to the entry for the retransmission of the first data packet.- View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
Specification