System and method for a negative acknowledgement-based transmission control protocol
First Claim
1. A method of transmitting data in a data communications network, comprising the steps of:
- (i) establishing a connection-oriented communications link between a transmitter and a receiver through a Transmission Control Protocol (TCP) handshake, the communications link having a congestion window set to an initial length;
(ii) transmitting data packets in TCP from the transmitter to the receiver;
(iii) sending periodically a keep-alive request from the transmitter to the receiver, whereupon a re-transmission time-out timer is set,(iv) determining, at the transmitter, if an acknowledgment to the keep-alive request is not received before expiry of the re-transmission time-out timer, whereupon the transmitter backs off for a predetermined period;
(v) detecting a missing data packet at the receiver;
(vi) sending a negative acknowledgment from the receiver to the transmitter for the missing data packet, the receiver being unresponsive to any packets from the transmitter unless the receiver detects the missing data packet;
(vii) decreasing, at the transmitter, the length of the congestion window in response to receipt of the negative acknowledgment; and
(viii) re-transmitting the missing data packet.
17 Assignments
0 Petitions
Accused Products
Abstract
A system and method for transmitting data in a data communications network, using a transmission control protocol, to provide reduced acknowledgment control traffic, error recovery and congestion control. A communications link is established between a transmitter and a receiver. Setting the communications link includes setting a network congestion window to an initial length. A sequence, or stream, of data packets is sent from the transmitter to the receiver. The receiver detects any missing packets, by examining the sequence numbers of the incoming packets, and sends negative acknowledgments, generally no more than four, to the transmitter identifying the missing data packet. When the transmitter receives a negative acknowledgment, it decreases the length of the congestion window, and re-transmits the missing packet. Detection and use of round-trip time, re-transmission time-out are provided.
-
Citations
26 Claims
-
1. A method of transmitting data in a data communications network, comprising the steps of:
-
(i) establishing a connection-oriented communications link between a transmitter and a receiver through a Transmission Control Protocol (TCP) handshake, the communications link having a congestion window set to an initial length; (ii) transmitting data packets in TCP from the transmitter to the receiver; (iii) sending periodically a keep-alive request from the transmitter to the receiver, whereupon a re-transmission time-out timer is set, (iv) determining, at the transmitter, if an acknowledgment to the keep-alive request is not received before expiry of the re-transmission time-out timer, whereupon the transmitter backs off for a predetermined period; (v) detecting a missing data packet at the receiver; (vi) sending a negative acknowledgment from the receiver to the transmitter for the missing data packet, the receiver being unresponsive to any packets from the transmitter unless the receiver detects the missing data packet; (vii) decreasing, at the transmitter, the length of the congestion window in response to receipt of the negative acknowledgment; and (viii) re-transmitting the missing data packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for error recovery in a data communications network where data is transmitted in Transmission Control Protocol (TCP) as a sequence of data packets sent from a transmitter to a receiver, comprising the steps of:
-
establishing a connection-oriented communication link between the transmitter and the receiver being established through a TCP handshake; sending periodically a keep-alive request from the transmitter to the receiver, whereupon a re-transmission time-out timer is set, determining, at the transmitter, if an acknowledgment to the keep-alive request is not received before expiry of the re-transmission time-out timer, whereupon the transmitter backs off for a predetermined period; detecting a missing data packet at the receiver; sending a negative acknowledgment from the receiver to the transmitter for the missing data packet, the receiver being unresponsive to any packets from the transmitter unless the receiver detects the missing data packet; setting a missing-packet timer at the receiver upon sending the negative acknowledgment; and where the missing data packet is not received at the receiver in response to the negative acknowledgment before expiry of the missing-packet timer, sending a further negative acknowledgment. - View Dependent Claims (11, 12, 13)
-
-
14. A method for congestion control in a data communications network where data is transmitted as a sequence of data packets from a transmitter to a receiver, comprising the steps of:
-
establishing a connection-oriented communication link between the transmitter and the receiver being established through a Transmission Control Protocol (TCP) handshake; setting a congestion window to an initial size, the congestion window relating to a transmission rate over the network; transmitting a data packet in TCP from the transmitter to the receiver; setting a round-trip timer at the transmitter upon sending the packet; sending a negative acknowledgement for a missing data packet from the receiver to the transmitter, the receiver being unresponsive to any packets from the transmitter unless the receiver detects the missing data packet; increasing the congestion window if no negative acknowledgment for the missing data packet is received before expiry of the round-trip timer; and
decreasing the congestion window if the negative acknowledgment for the missing data packet is received at the transmitter, wherein the congestion window is doubled, and an interval between transmission of subsequent data packets is decreased, upon expiry of the round-trip timer. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A data communications system employing transmission control protocol for providing error recovery and congestion control on a data communications network, comprising:
-
a transmitter for sending a sequence of data packets in Transmission Control Protocol (TCP), the transmitter having a round-trip timer that is set upon sending each data packet; a receiver for receiving the sequence of data packets, a connection-oriented communication link between the transmitter and the receiver being established through a TCP handshake, the receiver detecting a missing data packet in the sequence of data packets, and returning a negative acknowledgment for the missing data packet to the transmitter to cause re-transmission of the missing data packet, the receiver being unresponsive to any packets from the transmitter unless the receiver detects the missing data packet; and means for increasing the congestion window if no negative acknowledgment for the missing data packet is received before expiry of the round-trip timer, and decreasing the congestion window if the negative acknowledgment for the missing data packet is received at the transmitter, wherein the congestion window is doubled, and an interval between transmission of subsequent data packets is decreased, upon expiry of the round-trip timer. - View Dependent Claims (21, 22, 23)
-
-
24. A method for congestion control in a data communications network where data is transmitted as a sequence of data packets from a transmitter to a receiver, comprising the steps of:
-
setting a congestion window to an initial size, the congestion window relating to a transmission rate over the network; transmitting a data packet in Transmission Control Protocol (TCP) from the transmitter to the receiver; setting a round-trip timer at the transmitter upon sending the packet; increasing the congestion window if no negative acknowledgment for the data packet is received before expiry of the round-trip timer; and decreasing the congestion window if a negative acknowledgment for the data packet is received at the transmitter wherein the congestion window is doubled, and an interval between transmission of subsequent data packets is decreased, upon expiry of the round-trip timer.
-
-
25. A system for transmitting data in a data communications network, comprising:
-
a receiver; and a transmitter, a communications link between the transmitter and the receiver being established through a Transmission Control Protocol (TCP) handshake, the communications link having a congestion window set to an initial length; the transmitter including means for transmitting data packets in TCP to the receiver; the receiver including means for detecting a missing data packet, means for sending a negative acknowledgment to the transmitter for the missing data packet, the receiver being unresponsive to any packets from the transmitter unless the receiver detects the missing data packet, the transmitter further including means for decreasing the congestion window in response to receipt of the negative acknowledgment, and means for re-transmitting the missing data packet, the transmitter further including means for increasing the congestion window if no negative acknowledgment for the missing data packet is received before expiry of the round-trip timer; and
means for decreasing the congestion window if the negative acknowledgment for the missing data packet is received at the transmitter, wherein the congestion window is doubled, and an interval between transmission of subsequent data packets is decreased, upon expiry of the round-trip timer. - View Dependent Claims (26)
-
Specification