IP Library Granted Patent US 7,609,640
Granted Patent B2
US 7,609,640 · App. 10/741,965 · Granted Oct 27, 2009

Methods and applications for avoiding slow-start restart in transmission control protocol network communications

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,609,640
App. No.
10/741,965
Granted
Oct 27, 2009
Kind
B2
Abstract

A novel approach is provided for avoiding the “slow-start restart” in TCP communications when network conditions dictate such. The disclosed approach serves to overcome the latency related to the “slow-start restart” by assessing network conditions and avoiding the “slow-start restart” when network conditions justify the avoidance. The disclosed methods, applications and devices implement the periodic communication of a probe packet that is generated and transmitted from a TCP sender to a TCP receiver during the period that the TCP network connection remains idle. Receipt of the probe packet by the TCP receiver will trigger transmission of an acknowledgment message by the TCP receiver. Upon receipt of the acknowledgement message the TCP sender will restart measurement of the idleness period and, as such the “slow-start restart” is avoided.

Claims (38)

1. A method for avoiding slow-start restart in network communications, the method comprising:

establishing a connection between a sender and a receiver;

establishing a congestion window at the sender upon establishing the connection, wherein the congestion window defines a maximum amount of data that is transmittable by the sender prior to receipt of an acknowledgement to previously transmitted data from the receiver;

setting an idle counter at the sender that measures an interval between a current time and a time of a last communication with the receiver;

transmitting, from the sender to the receiver, a probe packet;

receiving, from the receiver at the sender, upon receipt of the probe packet, an acknowledgement;

expanding the congestion window upon receipt of the acknowledgement to the probe packet and prior to receipt of an acknowledgement to previously transmitted data from the receiver to allow for a greater amount of data to be transmitted; and

resetting the idle counter to avoid occurrence of the slow-start restart in the communication upon receipt of the acknowledgement.

2. The method of claim 1 , wherein transmitting, from the sender to the receiver, a probe packet further comprises transmitting, from the sender to the receiver, a probe packet having a sequence number that is one less than a receiver anticipated sequence number.

3. The method of claim 1 , wherein transmitting, from the sender to the receiver, a probe packet further comprises transmitting the probe packet at a predefined time.

4. The method of claim 1 , wherein transmitting, from the sender to the receiver, a probe packet further comprises transmitting, from the sender to the receiver, a probe packet at a predetermined time that is a median value of a round-trip time (RTT) and a retransmit timeout (RTO).

5. The method of claim 1 , wherein transmitting, from the sender to the receiver, a probe packet further comprises transmitting, from the sender to the receiver, a probe packet at a predetermined time that is defined as one-half of a retransmit timeout (RTO).

6. The method of claim 1 , wherein transmitting, from the sender to the receiver, a probe packet further comprises transmitting periodically, from the sender to the receiver, a probe packet at a predetermined time interval.

7. An application for avoiding “slow-start restart” at a sender, the application comprising a computer readable storage medium having computer-readable program instructions embodied in the medium, the computer-readable program instructions including:

first instructions for establishing a connection between the sender and a receiver;

second instructions for establishing a congestion window upon establishing the connection, wherein the congestion window defines a maximum amount of data that is transmittable to the receiver prior to receipt of an acknowledgement to previously transmitted data from the receiver;

third instructions for setting an idle counter that measures an interval between a current time and a time of a last communication with the receiver, wherein the interval comprises an idle period;

fourth instructions for transmitting a probe packet to the receiver;

fifth instructions for receiving an acknowledgement to the probe packet from the receiver;

sixth instructions for expanding the congestion window upon receipt of the acknowledgement to the probe packet and prior to receipt of an acknowledgement to previously transmitted data from the receiver to allow for a greater amount of data to be transmitted; and

seventh instructions for resetting the idle counter to avoid occurrence of the slow-start restart in the communication upon receipt of the acknowledgement.

8. The application of claim 7 , wherein the fourth instructions for transmitting further comprises instructions for transmitting a probe packet that includes an empty payload and a sequence number that is one less than a receiver anticipated sequence number.

9. The application of claim 7 , wherein the fourth instructions for transmitting a probe packet to the receiver further comprises transmitting a probe packet to the receiver repeatedly during the idle period of the connection at a predetermined time interval.

10. The application of claim 7 , wherein the fourth instructions for transmitting a probe packet to the receiver further comprises transmitting the probe packet at a predetermined periodic time interval defined as a median value of the round-trip time (RTT) and the retransmit timeout (RTO).

11. The application of claim 7 , wherein fourth instructions for transmitting a probe packet to the receiver further comprises transmitting the probe packet at a predetermined periodic time interval defined as one-half the retransmit timeout (RTO).

12. An apparatus comprising a controller and a memory storing executable instructions that when executed cause the apparatus to at least:

establish a connection with a client, generate a probe packet, transmit the probe packet to the client, provide for establishing a congestion window at the apparatus that defines a maximum amount of data that is transmittable by the apparatus prior to receipt of an acknowledgement to previously transmitted data from the client, and provide for expanding the congestion window upon receipt of a probe packet acknowledgement from the client and prior to receipt of an acknowledgement to previously transmitted data from the client to allow for a greater amount of data to be transmitted; and

wherein executable instructions when executed further cause the apparatus to reset a counter that is configured to count an idle time that corresponds to an interval between a current time and a time of a last communication with the client upon receipt of the probe packet acknowledgement from the client, to avoid occurrence of the slow-start restart in the connection.

13. A method comprising:

establishing a connection with a receiver;

establishing a congestion window upon establishing the connection, wherein the congestion window defines a maximum amount of data that is transmittable to the receiver prior to receipt of an acknowledgement to previously transmitted data from the receiver;

setting an idle counter that measures an interval between a current time and a time of a last communication with the receiver;

transmitting a probe packet to the receiver;

receiving an acknowledgement to the probe packet from the receiver;

expanding the congestion window upon receipt of the acknowledgement to the probe packet and prior to receipt of an acknowledgement to previously transmitted data from the receiver to allow for a greater amount of data to be transmitted; and

resetting the idle counter to avoid occurrence of the slow-start restart in the communication upon receipt of the acknowledgement.

14. The method of claim 13 , wherein expanding the congestion window comprises expanding the congestion window at a sender device.

15. The method of claim 14 , wherein the sender device comprises a network node comprising a controller configured to expand the congestion window.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Mar 10, 2021
From: CPPIB CREDIT INVESTMENTS INC.
To: CONVERSANT WIRELESS LICENSING S.A R.L.
Reel/Frame 055546/0485 →
AMENDED AND RESTATED U.S. PATENT SECURITY AGREEMENT (FOR NON-U.S. GRANTORS) Recorded Aug 22, 2018
From: CONVERSANT WIRELESS LICENSING S.A R.L.
To: CPPIB CREDIT INVESTMENTS, INC.
Reel/Frame 046897/0001 →
CHANGE OF NAME Recorded Sep 11, 2017
From: CORE WIRELESS LICENSING S.A.R.L.
To: CONVERSANT WIRELESS LICENSING S.A R.L.
Reel/Frame 043814/0125 →
UCC FINANCING STATEMENT AMENDMENT - DELETION OF SECURED PARTY Recorded Aug 30, 2016
From: NOKIA CORPORATION
To: MICROSOFT CORPORATION
Reel/Frame 039872/0112 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2011
From: 2011 INTELLECTUAL PROPERTY ASSET TRUST
To: CORE WIRELESS LICENSING S.A.R.L.
Reel/Frame 027415/0106 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2011
From: NOKIA CORPORATION
To: NOKIA 2011 PATENT TRUST
Reel/Frame 027120/0608 →
CHANGE OF NAME Recorded Oct 26, 2011
From: NOKIA 2011 PATENT TRUST
To: 2011 INTELLECTUAL PROPERTY ASSET TRUST
Reel/Frame 027121/0353 →
SHORT FORM PATENT SECURITY AGREEMENT Recorded Sep 13, 2011
From: CORE WIRELESS LICENSING S.A.R.L.
To: NOKIA CORPORATION; MICROSOFT CORPORATION
Reel/Frame 026894/0665 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2004
From: AHUJA, SADHNA; WU, TAO; DIXIT, SUDHIR
To: NOKIA CORPORATION
Reel/Frame 014623/0253 →